This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/12024] New: i386-elf build references nonexistent crt0.o, libsim.a
- From: "dhazeghi at yahoo dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Aug 2003 21:36:22 -0000
- Subject: [Bug bootstrap/12024] New: i386-elf build references nonexistent crt0.o, libsim.a
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12024
Summary: i386-elf build references nonexistent crt0.o, libsim.a
Product: gcc
Version: 3.4
Status: UNCONFIRMED
Keywords: build
Severity: normal
Priority: P2
Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dhazeghi at yahoo dot com
CC: gcc-bugs at gcc dot gnu dot org
With current mainline (combined tree), building cross to i386-elf fails, when configuring
libstdc++-v3. The C compiler check fails:
checking for i386-elf-gcc... (cached) /home/dara/mainline/objdir/gcc/xgcc -B/home/dara/
mainline/objdir/gcc/ -nostdinc -B/home/dara/mainline/objdir/i386-elf/newlib/ -isystem /home/
dara/mainline/objdir/i386-elf/newlib/targ-include -isystem /home/dara/mainline/combined/
newlib/libc/include -B/usr/local/i386-elf/bin/ -B/usr/local/i386-elf/lib/ -isystem /usr/local/
i386-elf/include -isystem /usr/local/i386-elf/sys-include -L/home/dara/mainline/objdir/ld
checking for C compiler default output... configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** [configure-target-libstdc++-v3] Error 1
The part that is failing is:
configure:2352: /home/dara/mainline/objdir/gcc/xgcc -B/home/dara/mainline/objdir/gcc/ -
nostdinc -B/home/dara/mainline/objdir/i386-elf/newlib/ -isystem /home/dara/mainline/objdir/
i386-elf/newlib/targ-include -isystem /home/dara/mainline/combined/newlib/libc/include -B/
usr/local/i386-elf/bin/ -B/usr/local/i386-elf/lib/ -isystem /usr/local/i386-elf/include -isystem /
usr/local/i386-elf/sys-include -L/home/dara/mainline/objdir/ld -O2 -g -O2 -O2 -g -O2
conftest.c >&5
/home/dara/mainline/objdir/gcc/collect-ld: cannot open crt0.o: No such file or directory
collect2: ld returned 1 exit status
However, this can't be worked around like PR12019, because no crt0.o and libsim.a (also needed)
has been build. What has been build (in libgloss) is cygmon-crt0.o and libcygmon.a. Placing those
files in the search path and renaming them (to crt0.o and libsim.a) results in:
configure:2352: /home/dara/mainline/objdir/gcc/xgcc -B/home/dara/mainline/objdir/gcc/ -
nostdinc -B/home/dara/mainline/objdir/i386-elf/newlib/ -isystem /home/dara/mainline/objdir/
i386-elf/newlib/targ-include -isystem /home/dara/mainline/combined/newlib/libc/include -B/
usr/local/i386-elf/bin/ -B/usr/local/i386-elf/lib/ -isystem /usr/local/i386-elf/include -isystem /
usr/local/i386-elf/sys-include -L/home/dara/mainline/objdir/ld -O2 -g -O2 -O2 -g -O2
conftest.c >&5
/home/dara/mainline/objdir/gcc/collect-ld: warning: cannot find entry symbol _start; defaulting
to 08048080
/home/dara/mainline/objdir/gcc/crt0.o(.text+0x1):../../../../combined/libgloss/i386/cygmon-
crt0.S:37: undefined reference to `__stack'
/home/dara/mainline/objdir/gcc/crt0.o(.text+0x16):../../../../combined/libgloss/i386/cygmon-
crt0.S:45: undefined reference to `__bss_end'
/home/dara/mainline/objdir/gcc/crt0.o(.text+0x28):../../../../combined/libgloss/i386/cygmon-
crt0.S:52: undefined reference to `__install_signal_handler'
/home/dara/mainline/objdir/gcc/crt0.o(.text+0x2e):../../../../combined/libgloss/i386/cygmon-
crt0.S:55: undefined reference to `__do_global_dtors'
/home/dara/mainline/objdir/gcc/crt0.o(.text+0x39):../../../../combined/libgloss/i386/cygmon-
crt0.S:59: undefined reference to `__do_global_ctors'
/home/dara/mainline/objdir/gcc/crt0.o(.text+0x43):../../../../combined/libgloss/i386/cygmon-
crt0.S:62: undefined reference to `__get_program_arguments'
/home/dara/mainline/objdir/i386-elf/newlib/libg.a(exit.o)(.text+0x6d): In function `exit':
...
It appears as if i386-elf is considered to be equivalent to cygwin by newlib, but not by gcc.