This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos 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]

Toolchain compile segfault when using -msoft-float


Hi all,

I'm attempting to compile a cross toolchain to build eCos. The target platform is sparc, and the host system is cygwin.

I've followed the instructions as per the recommended method on the site, but am running into a strange issue while gcc is building libraries. The problem is that the cross compiler segfaults at a point in the process.

It attempts to build three versions of libiberty. One version each under "v8", "soft" and "soft/v8". I'm not entirely sure what the differences are between these three. The first two, "v8" and "soft" are built fine, however, the problem arises when it gets to building the libraries for "soft/v8". The only difference when it's doing this "version" of the libiberty library is that it uses the -msoft-float option. The intermediate cross compiler that gets built, xgcc, segaults on the file libiberty/regex.c.  

I'm building with binutils-2.19, gcc-3.2.1 and newlib-1.11.0.

GCC was configured like so (verbose output from the cross compiler):

xgcc.exe -v      
Using built-in specs.
Configured with: /home/jules/scratch/rachael-toolchain/gcc-3.2.1/configure --target=sparc-elf --prefix=/home/jules/scratch/rachael-toolchain/sparc-elf --with-gnu-as --with-gnu-ld --disable-nls --with-newlib --enable-languages=c,c++ --disable-shared --with-gxx-include-dir=/home/jules/scratch/rachael-toolchain/sparc-elf/sparc-elf/include -v
Thread model: single
gcc version 3.2.1


Here is the offending command and resulting output that crashes the compile:

/home/jules/scratch/rachael-toolchain/b-gcc/gcc/xgcc -B/home/jules/scratch/rachael-toolchain/b-gcc/gcc/ -nostdinc -B/home/jules/scratch/rachael-toolchain/b-gcc/sparc-elf/newlib/ -isystem /home/jules/scratch/rachael-toolchain/b-gcc/sparc-elf/newlib/targ-include -isystem /home/jules/scratch/rachael-toolchain/gcc-3.2.1/newlib/libc/include -B/home/jules/scratch/rachael-toolchain/sparc-elf/sparc-elf/bin/ -B/home/jules/scratch/rachael-toolchain/sparc-elf/sparc-elf/lib/ -isystem /home/jules/scratch/rachael-toolchain/sparc-elf/sparc-elf/include -c -DHAVE_CONFIG_H -O2 -g -O2  -msoft-float -mcpu=v8 -I. -I/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/../include  -W -Wall -Wtraditional -pedantic /home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c
In file included from /home/jules/scratch/rachael-toolchain/gcc-3.2.1/include/xregex.h:26,
                 from /home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:195:
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/include/xregex2.h:551: warning: ISO C89 does not support `static' or type qualifiers in parameter array declarators
In file included from /home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:649:
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c: In function `byte_regex_compile':
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:2527: warning: implicit declaration of function `free'
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:2588: warning: function `free' was previously declared within a block
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:2621: warning: function `free' was previously declared within a block
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:2728: warning: function `free' was previously declared within a block
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:3731: warning: function `free' was previously declared within a block
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:4238: warning: function `free' was previously declared within a block
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c: In function `byte_compile_range':
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:4602: warning: signed and unsigned type in conditional expression
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:4612: warning: signed and unsigned type in conditional expression
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:4612: warning: signed and unsigned type in conditional expression
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c: In function `byte_re_compile_fastmap':
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:4952: warning: implicit declaration of function `abort'
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c: In function `byte_re_match_2_internal':
/home/jules/scratch/rachael-toolchain/gcc-3.2.1/libiberty/regex.c:7630: internal error: Segmentation fault

I understand that this post might be better suited to a gcc mailing list, but seeing as this is an old version of gcc and is recommended to be used when compiling eCos I thought perhaps others might know about these kinds of strange things with this version.

I've seen the cross compiler get used with the -msoft-float option earlier in the compile process without error, so I'm at a loss as to why it's doing it here. I'm sure it's not to do with running out of memory or disk space.

Thanks in advance for any assistance.



--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


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