This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/78478] Compile Error for i386-rtems
- From: "joel at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 18 Jan 2017 18:00:48 +0000
- Subject: [Bug target/78478] Compile Error for i386-rtems
- Auto-submitted: auto-generated
- References: <bug-78478-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78478
--- Comment #14 from Joel Sherrill <joel at gcc dot gnu.org> ---
(In reply to H.J. Lu from comment #13)
> The problem is config/i386/rtemself.h has
>
> #define LONG_DOUBLE_TYPE_SIZE (TARGET_80387 ? 80 : 64)
>
> XFmode isn't available with -msoft-float even when -mlong-double-80 is used.
> IA MCU defaults long double to double and XFmode is available with
> -mlong-double-80.
I had no idea how that got there so did a git blame.
8a3edb334 (uros 2013-11-05 16:08:30 +0000 31)
8a3edb334 (uros 2013-11-05 16:08:30 +0000 32) #undef LONG_DOUBLE_TYPE_SIZE
8a3edb334 (uros 2013-11-05 16:08:30 +0000 33) #define LONG_DOUBLE_TYPE_SIZE
(TARGET_80387 ? 80 : 64)
Anyway, removing that let it get to libgfortran for i386-rtems and fail with
this:
=================
libtool: compile: /home/joel/test-gcc/b-i386-rtems4.12-gcc/./gcc/xgcc
-B/home/joel/test-gcc/b-i386-rtems4.12-gcc/./gcc/ -nostdinc
-B/home/joel/test-gcc/b-i386-rtems4.12-gcc/i386-rtems4.12/newlib/ -isystem
/home/joel/test-gcc/b-i386-rtems4.12-gcc/i386-rtems4.12/newlib/targ-include
-isystem /home/joel/test-gcc/gcc/newlib/libc/include
-B/home/joel/test-gcc/install-master/i386-rtems4.12/bin/
-B/home/joel/test-gcc/install-master/i386-rtems4.12/lib/ -isystem
/home/joel/test-gcc/install-master/i386-rtems4.12/include -isystem
/home/joel/test-gcc/install-master/i386-rtems4.12/sys-include -DHAVE_CONFIG_H
-I. -I../../../../gcc/libgfortran -iquote../../../../gcc/libgfortran/io
-I../../../../gcc/libgfortran/../gcc
-I../../../../gcc/libgfortran/../gcc/config
-I../../../../gcc/libgfortran/../libquadmath -I../../.././gcc
-I../../../../gcc/libgfortran/../libgcc -I../../libgcc
-I../../../../gcc/libgfortran/../libbacktrace -I../../libbacktrace
-I../libbacktrace -std=gnu11 -Wall -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -Wextra -Wwrite-strings
-Werror=implicit-function-declaration -Werror=vla -fcx-fortran-rules
-ffunction-sections -fdata-sections -g -O2 -msoft-float -MT fpu.lo -MD -MP -MF
.deps/fpu.Tpo -c ../../../../gcc/libgfortran/runtime/fpu.c -o fpu.o
In file included from ../../../../gcc/libgfortran/runtime/fpu.c:29:0:
./fpu-target.h: In function 'set_fpu_except_flags':
./fpu-target.h:110:7: error: impossible constraint in 'asm'
__asm__ __volatile__ ("fdiv\t{%y0, %0|%0, %y0}" : "+t" (f));
^~~~~~~
./fpu-target.h:130:7: error: impossible constraint in 'asm'
__asm__ __volatile__ ("fdivs\t%1" : "+t" (f) : "m" (g));
^~~~~~~
./fpu-target.h:158:7: error: impossible constraint in 'asm'
__asm__ __volatile__ ("fdivs\t%1" : "+t" (f) : "m" (g));
^~~~~~~
make[6]: *** [fpu.lo] Error 1
=================
Has anyone built i386-elf? What embedded target can I build as a comparable?
I tried to build i386-elf but it failed because there was no crt0.o. This was
in libbacktrace.
======================
configure:2999: /home/joel/test-gcc/b-i386-elf-gcc/./gcc/xgcc
-B/home/joel/test-gcc/b-i386-elf-gcc/./gcc/ -nostdinc
-B/home/joel/test-gcc/b-i386-elf-gcc/i386-elf/newlib/ -isystem
/home/joel/test-gcc/b-i386-elf-gcc/i386-elf/newlib/targ-include -isystem
/home/joel/test-gcc/gcc/newlib/libc/include
-B/home/joel/test-gcc/b-i386-elf-gcc/i386-elf/libgloss/i386
-L/home/joel/test-gcc/b-i386-elf-gcc/i386-elf/libgloss/libnosys
-L/home/joel/test-gcc/gcc/libgloss/i386
-B/home/joel/test-gcc/install-master/i386-elf/bin/
-B/home/joel/test-gcc/install-master/i386-elf/lib/ -isystem
/home/joel/test-gcc/install-master/i386-elf/include -isystem
/home/joel/test-gcc/install-master/i386-elf/sys-include -g -O2 conftest.c
>&5
/home/joel/test-gcc/install-master/i386-elf/bin/ld: cannot find crt0.o: No such
file or directory
collect2: error: ld returned 1 exit status
======================