This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


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

Fixing MIPS target under GLIBC....


Greetings.

I would like to quantify the exact problems with building GLIBC
on MIPS out of CVS. Below are the test cases that I have done.
Some one suggested specifying '-lpthread' when building GLIBC
which IMHO is a hack. After grep'ing through the sources I am
inclined to place the blame on GCC or GLIBC for the 'atexit'
issue. If someone disagrees with this conclusion, please state
why and some proof. I would very much like to quantify the
exact problem. I am more than happy to implement and test the
fix, but I need to better understand things. Thank you.

-Steve

P.S. I sent the below to Andreas, but he is on travel. He gives
     his blessing to continue addressing this issue.

SUCCESSFUL BUILD
----------------
binutils-02092001
gcc-02092001
glibc-2.2.2 release

Using the binutils and gcc from February 9,2001 and the released
glibc-2.2.2 version works just fine.

FAILED BUILD
------------
binutils-latest-cvs
gcc-latest-cvs
glibc-latest-cvs AND glibc-2.2.2

I can successfully build binutils and gcc from CVS for MIPS with
no problems. I then try to build the latest glibc from CVS and get
the following (I posted this previously on the mailing list):

make[2]: Entering directory `/data/cvs/libc/iconv'
mipsel-linux-gcc -nostdlib -nostartfiles -o
/data/build/build-glibc/iconv/iconv_prog 
-Wl,-dynamic-linker=/opt/toolchains/mips/mipsle/mipsel-linux//lib/ld.so.1  
/data/build/build-glibc/csu/crt1.o /data/build/build-glibc/csu/crti.o
`mipsel-linux-gcc --print-file-name=crtbegin.o`
/data/build/build-glibc/iconv/iconv_prog.o
/data/build/build-glibc/iconv/iconv_charmap.o
/data/build/build-glibc/iconv/charmap.o
/data/build/build-glibc/iconv/charmap-dir.o
/data/build/build-glibc/iconv/linereader.o
/data/build/build-glibc/iconv/dummy-repertoire.o
/data/build/build-glibc/iconv/simple-hash.o
/data/build/build-glibc/iconv/xstrdup.o /data/build/build-glibc/iconv/xmalloc.o 
-Wl,-rpath-link=/data/build/build-glibc:/data/build/build-glibc/math:/data/build/build-glibc/elf:/data/build/build-glibc/dlfcn:/data/build/build-glibc/nss:/data/build/build-glibc/nis:/data/build/build-glibc/rt:/data/build/build-glibc/resolv:/data/build/build-glibc/crypt:/data/build/build-glibc/linuxthreads
/data/build/build-glibc/libc.so.6 /data/build/build-glibc/libc_nonshared.a -lgcc
`mipsel-linux-gcc --print-file-name=crtend.o` /data/build/build-glibc/csu/crtn.o
/opt/toolchains/mips/mipsle/lib/gcc-lib/mipsel-linux/3.1/libgcc.a(__main.o): In
function `no symbol':
/data/cvs/gcc/gcc/libgcc2.c(.text+0x18c): undefined reference to `atexit'
collect2: ld returned 1 exit status
make[2]: *** [/data/build/build-glibc/iconv/iconv_prog] Error 1
make[2]: Leaving directory `/data/cvs/libc/iconv'
make[1]: *** [iconv/others] Error 2
make[1]: Leaving directory `/data/cvs/libc'
make: *** [all] Error 2


Next I tried using the same binutils and gcc from CVS to build GLIBC-2.2.2
release and get this error during the the configure stage:

sjhill@beast:/data/build/build-glibc2$ BUILD_CC=gcc CC=mipsel-linux-gcc
AR=mipsel-linux-ar AS=mipsel-linux-as RANLIB=mipsel-linux-ranlib
../../looking/glibc-2.2.2/configure
--prefix=/opt/toolchains/mips/mipsle/mipsel-linux/ mipsel-linux
--build=i686-pc-linux-gnu --enable-add-ons --with-elf --disable-profile
--with-headers=/opt/toolchains/mips/mipsle/mipsel-linux/include/
creating cache ./config.cache
checking host system type... mipsel-unknown-linux-gnu
checking sysdep dirs... sysdeps/mips/elf linuxthreads/sysdeps/unix/sysv/linux
linuxthreads/sysdeps/pthread linuxthreads/sysdeps/unix/sysv
linuxthreads/sysdeps/unix linuxthreads/sysdeps/mips sysdeps/unix/sysv/linux/mips
sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman
sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/mips sysdeps/unix sysdeps/posix
sysdeps/mips/mipsel sysdeps/mips/fpu sysdeps/mips sysdeps/wordsize-32
sysdeps/ieee754/flt-32 sysdeps/ieee754/dbl-64 sysdeps/ieee754
sysdeps/generic/elf sysdeps/generic
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for pwd... /bin/pwd
checking build system type... i686-pc-linux-gnu
checking for mipsel-linux-gcc... mipsel-linux-gcc
checking version of mipsel-linux-gcc... 3.1, bad
checking for gnumake... no
checking for gmake... gmake
checking version of gmake... 3.79.1, ok
checking for gnumsgfmt... no
checking for gmsgfmt... no
checking for msgfmt... msgfmt
checking version of msgfmt... 0.10.35, ok
checking for makeinfo... makeinfo
checking version of makeinfo... 4.0, ok
checking for gsed... no
checking for sed... sed
checking version of sed... 3.02, ok
checking whether the C compiler (mipsel-linux-gcc  ) works... no
checking whether the C compiler (mipsel-linux-gcc  ) is a cross-compiler...
(cached) yes
checking whether we are using GNU C... yes
checking build system type... i686-pc-linux-gnu
checking for gcc... gcc
checking how to run the C preprocessor... /lib/cpp
checking whether
/opt/toolchains/mips/mipsle/lib/gcc-lib/mipsel-linux/3.1/../../../../mipsel-linux/bin/as
is GNU as... yes
checking whether
/opt/toolchains/mips/mipsle/lib/gcc-lib/mipsel-linux/3.1/../../../../mipsel-linux/bin/ld
is GNU ld... yes
checking for mipsel-linux-mig... mig
configure: error:
*** Some critical program is missing or too old.

-- 
 Steven J. Hill - Embedded SW Engineer
 Public Key: 'http://www.cotw.com/pubkey.txt'
 FPR1: E124 6E1C AF8E 7802 A815
 FPR2: 7D72 829C 3386 4C4A E17D


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