Port-m68k archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Userland build fails with GCC48



Hi!

I fear there are still some problems with PIC code to resolve, before we
can switch m68k to GCC48. A normal build works, but as soon as you add
MKDEBUG=YES or DBG=-g, some 16-bit PC-relative references are getting out
of range.

For example while building libgcc_s.so:

---8<---
#     build  libgcc_s/libgcc_s.so.1.0
rm -f libgcc_s.so.1.0
/home/frank/netbsd/current/src/objamiga/tooldir.NetBSD-6.1.5-amd64/bin/m68k--netbsdelf-gcc -nodefaultlibs -Wl,-x -shared -Wl,-soname,libgcc_s.so.1 -Wl,--warn-shared-textrel -Wl,-Map=libgcc_s.so.1.map   --sysroot=/home/frank/netbsd/current/src/objamiga/destdir.amiga -nodefaultlibs -Wl,--version-script=/home/frank/netbsd/current/src/objamiga/external/gpl3/gcc/lib/libgcc/libgcc_s/libgcc.map  -o libgcc_s.so.1.0  -Wl,-rpath,/lib  -L=/lib  -Wl,--whole-archive libgcc_s_pic.a  -Wl,--no-whole-archive  
libgcc_s_pic.a(_float.pico):(.text+0x8): relocation truncated to fit: R_68K_PC16 against symbol `$_exception_handler' defined in .text section in libgcc_s_pic.a(_floatex.pico)
libgcc_s_pic.a(_float.pico):(.text+0x18): relocation truncated to fit: R_68K_PC16 against symbol `$_exception_handler' defined in .text section in libgcc_s_pic.a(_floatex.pico)
---8<---

There was a 16-bit bra in the PICJUMP macro, which I fixed like this:

--- lb1sf68.S   1 Mar 2014 08:41:47 -0000       1.1.1.1
+++ lb1sf68.S   26 Jan 2015 11:05:16 -0000
@@ -215,7 +215,7 @@
        lea     \addr-.-8,a0
        jmp     pc@(a0)
 #else
-       bra     \addr
+       jbra    \addr
 #endif
        .endm


But there are more problems. Now it hangs here:

---8<---
#   compile  lib/sqlite3.pico
/home/frank/netbsd/current/src/objamiga/tooldir.NetBSD-6.1.5-amd64/bin/m68k--netbsdelf-gcc -g -DNDEBUG   -std=gnu99    -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare  -Wno-traditional  -Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Wno-uninitialized -Wno-maybe-uninitialized -Werror -Wno-shadow -Wno-unused     -DHAVE_GMTIME_R=1  -DHAVE_INTTYPES_H=1  -DHAVE_LOCALTIME_R=1  -DHAVE_READLINE=1  -DHAVE_STDINT_H=1  -DHAVE_STRERROR_R=1  -DHAVE_USLEEP=1  -DSQLITE_ENABLE_COLUMN_METADATA  -DSQLITE_ENABLE_FTS3_PARENTHESIS  -DSQLITE_ENABLE_FTS4  -DSQLITE_ENABLE_LOAD_EXTENSION  -DSQLITE_ENABLE_UNLOCK_NOTIFY  -DSQLITE_HAVE_ISNAN --sysroot=/home/frank/netbsd/current/src/objamiga/destdir.amiga  -c    -fPIC -g /home/frank/netbsd/current/src/external/public-domain/sqlite/lib/../dist/sqlite3.c -o sqlite3.pico
/var/tmp//ccy5rdtq.s: Assembler messages:
/var/tmp//ccy5rdtq.s:102623: Warning: .word .L5817-.L5697+0 didn't fit
/var/tmp//ccy5rdtq.s:102623: Warning: .word .L6372-.L5697+0 didn't fit
/var/tmp//ccy5rdtq.s:102623: Warning: .word .L5817-.L5697+0 didn't fit
/var/tmp//ccy5rdtq.s:102623: Warning: .word .L6372-.L5697+0 didn't fit
---8<---


Is my fix of PICJUMP correct? I did the same for GCC45, and there it was
sufficient to build the whole userland with MKDEBUG and DBG options.

-- 
Frank Wille


Home | Main Index | Thread Index | Old Index