This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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

crosstool-0.17: gcc-3.3/glibc-2.3.2 99% working on sh4


crosstool is a set of scripts for building and testing cross-compilers
based on gcc/glibc/linux.

A new release is ready, and can be downloaded from
     http://kegel.com/crosstool

The big change with this release is that it builds gcc-3.3/glibc-2.3.2
properly on sh4, thanks to patches from Kaz Kojima.
You can see the regression test summaries at
     http://www.kegel.com/crosstool/current/summaries/
They're not entirely pretty for sh4, but at least it's a start.

Changelog:
0.17 4 Aug 2003
     The sh4 toolchain is now in about the same state on glibc-2.3.2 as it was on
     glibc-2.2.5, which is to say a bit shaky compared to ppc405 and ppc750:
     powerpc-750/gcc-3.3/glibc-2.3.2: fails 1 out of 339 glibc tests
     powerpc-750/gcc-3.3/glibc-2.2.5: fails 1 out of 247 glibc tests
     powerpc-405/gcc-3.3/glibc-2.3.2: fails 5 out of 339 glibc tests
     powerpc-405/gcc-3.3/glibc-2.2.5: fails 5 out of 247 glibc tests
     sh4/gcc-3.3/glibc-2.3.2:         fails 19 out of 339 glibc tests
     sh4/gcc-3.3/glibc-2.2.5:         fails 12 out of 247 glibc tests
     Still, at least crosstool can now build sh4/gcc-3.3/glibc-2.3.2, which
     should make it easier for newcomers to verify these test failures and
     perhaps even fix them.

     Thanks to Kaz Kojima for his patient assistance!  This release contains
     three patches he wrote to help me get past dynamic linking problems on SH:

     1. gcc-3.3-patches/sh-spec.patch fixes an early segmentation fault in ld-linux.so
     which caused all dynamically-linked programs to fail on sh4 with glibc-2.3.2.
     It seems gcc on SH has for years been inserting an rpath of /lib
     when you didn't specify one, which runs afoul of the new
       assert (info[DT_RPATH] == NULL);
     at line 161 in glibc-2.3.2/elf/dynamic-link.h.
     Simply removing this default rpath from gcc's spec file cures the crash.

     The following two patches are needed because glibc-2.3.2 (as of Dec
     2002) checks at build time to make sure its shared libraries don't
     need text relocations (which would hurt prelinking).

     2. gcc-3.3-patches/sh-pic-set_fpscr.patch fixes part one cause of
     make[2]: *** [/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
     Without it, check-textrel complains
             libc.so: text relocations used
             linuxthreads/libc.so: text relocations used
             math/libm.so: text relocations used
     because there was no PIC version of set_fpscr().

     3. binutils-2.14.90.0.5-patches/binutils-sh-relocs.patch fixes another cause of:
     make[2]: *** [/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
     Without it, check-textrel complains
             libc.so: text relocations used
             linuxthreads/libc.so: text relocations used
             linuxthreads/libpthread.so: text relocations used
             math/libm.so: text relocations used
             resolv/libresolv.so: text relocations used
     because DT_TEXTREL was set even though there were no text relocations.

Other changes:

     glibc-{2.2.5,2.3.2}-patches/glibc-test-lowram.patch prevents glibc's
     tst-calloc from running out of RAM on 32MB target systems, at the cost of
     weakening the test a bit.  The test should probably check RLIMIT_DATA
     and/or RLIMIT_AS, and use them at runtime to decide how big a test to
     run.  Instead, I've just hardcoded it to be one sixth the original size.

Other notes:

     On sh4, g++'s thread/pthread6.cc test failed with gcc-3.3, but not with
     gcc-ss-3_3-20030714.  Not sure what's going on there yet.

     On sh4, until gcc-3.4, the -mrelax option in gcc is broken,
     and the corresponding test in the binutils test suite fails.
     If you need this to work in gcc-3.3, Kaz says use binutils-2.14.90.0.5 or later,
     and see http://gcc.gnu.org/ml/gcc-patches/2003-03/msg00226.html
     and http://gcc.gnu.org/ml/gcc-patches/2003-03/msg00213.html
     I have not tested these patches yet.
     The error in the binutils test log is
       ERROR: -O -mrelax ...ld/testsuite/ld-sh/sh2.c: compilation failed


-- Dan Kegel http://www.kegel.com http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045




------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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