This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

LTO with static libraries


Hello,

when I run the GCC testsuite for RTEMS and the ARM EABI target, then I get this:

Running /home/sh/archive/gcc-4.6-20111021-work/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ...
FAIL: gcc.c-torture/execute/builtins/20010124-1.c compilation, -O2 -flto -flto-partition=none


This is due to:

/home/sh/b-arm-gcc/gcc/xgcc -B/home/sh/b-arm-gcc/gcc/ /home/sh/archive/gcc-4.6-20111021-work/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c /home/sh/archive/gcc-4.6-20111021-work/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c /home/sh/archive/gcc-4.6-20111021-work/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c gcc_tg.o -w -O2 -flto -flto-partition=none -DSTACK_SIZE=2048 -isystem /home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib/targ-include -isystem /home/sh/archive/gcc-4.6-20111021-work/newlib/libc/include -mcpu=arm7tdmi -B/home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/ -specs bsp_specs -qrtems -B/home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib/ -L/home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib /home/sh/b-arm-gcc/rtems_gcc_main.o -Wl,-wrap,exit -Wl,-wrap,_exit -Wl,-wrap,main -Wl,-wrap,abort -lm -o /home/sh/b-arm-gcc/gcc/testsuite/gcc/20010124-1.x6 -Wl,-Map,map.txt -save-temps
[Leaving LTRANS /tmp/cc0vFDjO.args]
/tmp/ccTLtFeu.lto.o: In function `memcpy':
20010124-1.o:(.text+0x4): multiple definition of `memcpy'
/home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib/libc.a(lib_a-memcpy.o):/home/sh/archive/gcc-4.6-20111021-work/newlib/libc/string/memcpy.c:79: first defined here
collect2: ld returned 1 exit status


In the linker map file I have this:

LOAD /home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/start.o
LOAD /home/sh/b-arm-gcc/gcc/crti.o
LOAD /home/sh/b-arm-gcc/gcc/crtbegin.o
LOAD 20010124-1.o
LOAD /tmp/ccTLtFeu.lto.o
LOAD /home/sh/b-arm-gcc/gcc/libgcc.a
LOAD /home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/librtemsbsp.a
LOAD /home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/librtemscpu.a
LOAD /home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib/libc.a
LOAD /home/sh/b-arm-gcc/gcc/libgcc.a
LOAD 20010124-1-lib.o
LOAD main.o
LOAD gcc_tg.o
LOAD /home/sh/b-arm-gcc/rtems_gcc_main.o
LOAD /home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib/libm.a
START GROUP
LOAD /home/sh/b-arm-gcc/gcc/libgcc.a
START GROUP
LOAD /home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/librtemsbsp.a
LOAD /home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/librtemscpu.a
LOAD /home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib/libc.a
LOAD /home/sh/b-arm-gcc/gcc/libgcc.a
END GROUP

The problem seems to be that this "/tmp/ccTLtFeu.lto.o" file pulls in memcpy() from libc.a and later 20010124-1-lib.o defines also memcpy(). I never used the LTO before and now I am not sure where to search for the error in this case. Is it probably in the linker command file? Who produces this "/tmp/ccTLtFeu.lto.o" and what is its purpose (it is not preserved with -save-temps)?

The linker map file without LTO looks like this:

LOAD /home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/start.o
LOAD /home/sh/b-arm-gcc/gcc/crti.o
LOAD /home/sh/b-arm-gcc/gcc/crtbegin.o
LOAD 20010124-1.o
LOAD 20010124-1-lib.o
LOAD main.o
LOAD gcc_tg.o
LOAD /home/sh/b-arm-gcc/rtems_gcc_main.o
LOAD /home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib/libm.a
START GROUP
LOAD /home/sh/b-arm-gcc/gcc/libgcc.a
START GROUP
LOAD /home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/librtemsbsp.a
LOAD /home/sh/install-4.6-20111021/arm-rtemseabi4.11/edb7312/lib/librtemscpu.a
LOAD /home/sh/b-arm-gcc/arm-rtemseabi4.11/./newlib/libc.a
LOAD /home/sh/b-arm-gcc/gcc/libgcc.a
END GROUP

--
Sebastian Huber, embedded brains GmbH

Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone   : +49 89 18 90 80 79-6
Fax     : +49 89 18 90 80 79-9
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]