Run-Time Loader Build Failures v2

Joel Sherrill joel.sherrill at oarcorp.com
Thu Nov 6 19:41:21 UTC 2014


Hi

Chris' patch to rtems-tools changed the breakage landscape so I am
posting a v2 of the status.

+ I posted a patch for a typo in libdl which lets the MIPS build libdl.
Both dl01
and dl02 now fail with:

mips-rtems4.11-gcc -B../../../../../csb350/lib/ -specs bsp_specs -qrtems
-mips32 -G0 -msoft-float -O2 -g -Wall -Wmissing-prototypes
-Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs
-mips32 -G0 -msoft-float \
-o dl02.exe init.o dl-load.o dl-tar.o dl-sym.o
dl-sym.o: In function `rtems__rtl_base_globals':
rld--v1baaa.c:(.rodata+0x2753): undefined reference to `__memsize'

on mips/csb350 and some others.

+ mips/hurricane fails with this which sees to indicate a big/little
endian issue:

mips-rtems4.11-gcc -B../../../../../hurricane/lib/ -specs bsp_specs
-qrtems -mips3 -G0 -EL -O2 -g -fomit-frame-pointer -Wall
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -mips3 -G0 -EL \
-o dl01.exe init.o dl-load.o dl-tar.o dl-sym.o
/users/joel/rtems-4.11-work/tools/lib/gcc/mips-rtems4.11/4.9.2/../../../../mips-rtems4.11/bin/ld:
dl-sym.o: compiled for a big endian system and target is little endian
/users/joel/rtems-4.11-work/tools/lib/gcc/mips-rtems4.11/4.9.2/../../../../mips-rtems4.11/bin/ld:
dl-sym.o: endianness incompatible with that of the selected emulation
/users/joel/rtems-4.11-work/tools/lib/gcc/mips-rtems4.11/4.9.2/../../../../mips-rtems4.11/bin/ld:
failed to merge target specific data of file dl-sym.o
collect2: error: ld returned 1 exit status

+ Most (40) PowerPC BSPs seem ok but some (15 with mpc5566evb for one)
end with this:

powerpc-rtems4.11-gcc -B../../../../../mpc5566evb/lib/ -specs bsp_specs
-qrtems -mcpu=8540 -meabi -msdata=sysv -fno-common -msoft-float
-D__ppc_generic -mstrict-align -O2 -g -fno-keep-inline-functions -Wall
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -mcpu=8540 -meabi -msdata=sysv -fno-common -msoft-float
-D__ppc_generic -mstrict-align \
-o dl01.exe init.o dl-load.o dl-tar.o dl-sym.o
/users/joel/rtems-4.11-work/tools/lib/gcc/powerpc-rtems4.11/4.9.2/../../../../powerpc-rtems4.11/bin/ld:
dl-sym.o: the target (rtems__rtl_base_globals_size) of a R_PPC_SDAREL16
relocation is in the wrong output section (.rodata)
dl-sym.o: In function `rtems_rtl_base_global_syms_init':
rld--Yxiaaa.c:(.text+0x2): relocation truncated to fit: R_PPC_SDAREL16
against `rtems__rtl_base_globals_size'


+ rtems-tools now has a a warning:

./linkers/rtems-syms.cpp: In function ‘int main(int, char**)’:
../linkers/rtems-syms.cpp:319:25: warning: variable ‘warnings’ set but
not used [-Wunused-but-set-variable]
bool warnings = false;

+ bfin BSPs all fail linking dl01 with:

rtems-syms -e -c "-O2 -g -Wall -Wmissing-prototypes
-Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs" -o
dl-sym.o dl01.pre.exe
bfin-rtems4.11-gcc -B../../../../../bf537Stamp/lib/ -specs bsp_specs
-qrtems -O2 -g -Wall -Wmissing-prototypes
-Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs \
-o dl01.exe init.o dl-load.o dl-tar.o dl-sym.o
dl-sym.o: In function `rtems_rtl_base_global_syms_init':
/tmp/rld--wnbaaa.c:(.text+0x2): undefined reference to
`rtems__rtl_base_globals_size'
/tmp/rld--wnbaaa.c:(.text+0xa): undefined reference to
`rtems__rtl_base_globals'
/tmp/rld--wnbaaa.c:(.text+0xe): undefined reference to
`rtems__rtl_base_globals_size'
/tmp/rld--wnbaaa.c:(.text+0x12): undefined reference to
`rtems__rtl_base_globals'

+ lm32 gcc 4.9.2 ICEs

+ nios2 BSP fails with this:

nios2-rtems4.11-gcc --pipe -DHAVE_CONFIG_H -I..
-I../../cpukit/../../../nios2_iss/lib/include -DRTEMS_RTL_RAP_LOADER=1
-DRTEMS_RTL_ELF_LOADER=1 -mno-hw-mul -mno-hw-div -O0 -g -Wall
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -MT libdl_a-rtl-mdreloc-nios2.o -MD -MP -MF
.deps/libdl_a-rtl-mdreloc-nios2.Tpo -c -o libdl_a-rtl-mdreloc-nios2.o
`test -f 'rtl-mdreloc-nios2.c' || echo
'../../../../../../rtems/c/src/../../cpukit/libdl/'`rtl-mdreloc-nios2.c
mv -f .deps/libdl_a-rtl-trace.Tpo .deps/libdl_a-rtl-trace.Po
mv -f .deps/libdl_a-rtl-shell.Tpo .deps/libdl_a-rtl-shell.Po
mv -f .deps/libdl_a-rtl-sym.Tpo .deps/libdl_a-rtl-sym.Po
../../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-nios2.c:27:1:
error: conflicting types for 'rtems_rtl_elf_relocate_rela'
rtems_rtl_elf_relocate_rela (rtems_rtl_obj_t* obj,
^
In file included from
../../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-nios2.c:15:0:
../../../../../../rtems/c/src/../../cpukit/libdl/rtl-elf.h:102:6: note:
previous declaration of 'rtems_rtl_elf_relocate_rela' was here
bool rtems_rtl_elf_relocate_rela (const rtems_rtl_obj_t* obj,
^
../../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-nios2.c:37:1:
error: conflicting types for 'rtems_rtl_elf_relocate_rel'
rtems_rtl_elf_relocate_rel (rtems_rtl_obj_t* obj,
^
In file included from
../../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-nios2.c:15:0:
../../../../../../rtems/c/src/../../cpukit/libdl/rtl-elf.h:81:6: note:
previous declaration of 'rtems_rtl_elf_relocate_rel' was here
bool rtems_rtl_elf_relocate_rel (const rtems_rtl_obj_t* obj,
^


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985




More information about the devel mailing list