T. P. Saravanan wrote: > Hi, > > When I try to build glibc-2.3.3 on mips linux - it breaks as shown below: > > . > . > . > sara@eyeore: [over] ~/build/glibc/objdir3$ make > make -r PARALLELMFLAGS="" CVSOPTS="" -C ../glibc-2.3.3 objdir=`pwd` all > make[1]: Entering directory `/home/sara/build/glibc/glibc-2.3.3' > make -C csu subdir_lib > . > . > . > make -C gmon subdir_lib > make[2]: Entering directory `/home/sara/build/glibc/glibc-2.3.3/gmon' > make[2]: Leaving directory `/home/sara/build/glibc/glibc-2.3.3/gmon' > make[2]: Entering directory `/home/sara/build/glibc/glibc-2.3.3/gmon' > gcc -mabi=32 mcount.c -c -std=gnu99 -O2 -Wall -Winline > -Wstrict-prototypes -Wwrite-strings -g -mips32 > -fno-omit-frame-pointer -I../include -I. > -I/home/sara/build/glibc/objdir3/gmon -I.. -I../libio > -I/home/sara/build/glibc/objdir3 -I../sysdeps/mips/elf > -I../linuxthreads/sysdeps/unix/sysv/linux/mips > -I../linuxthreads/sysdeps/unix/sysv/linux > -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread > -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix > -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips/mips32 > -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux > -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman > -I../sysdeps/unix/inet -I../sysdeps/unix/sysv > -I../sysdeps/unix/mips/mips32 -I../sysdeps/unix/mips -I../sysdeps/unix > -I../sysdeps/posix -I../sysdeps/mips/mips32 -I../sysdeps/mips > -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 > -I../sysdeps/wordsize-32 -I../sysdeps/mips/fpu -I../sysdeps/ieee754 > -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem > /home/sara/usr/local/lib/gcc/mipsel-unknown-linux-gnu/3.4.2/include > -isystem /home/sara/build/linux/linux-2.4.25mips/include > -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -o > /home/sara/build/glibc/objdir3/gmon/mcount.o -MD -MP -MF > /home/sara/build/glibc/objdir3/gmon/mcount.o.dt > In file included from mcount.c:40: > ../sysdeps/mips/machine-gmon.h:91:3: #error "Unknown ABI" > mcount.c:180: error: parse error before "PTR_SUBU_STRING" > make[2]: *** [/home/sara/build/glibc/objdir3/gmon/mcount.o] Error 1 > make[2]: Leaving directory `/home/sara/build/glibc/glibc-2.3.3/gmon' > make[1]: *** [gmon/subdir_lib] Error 2 > make[1]: Leaving directory `/home/sara/build/glibc/glibc-2.3.3' > make: *** [all] Error 2 > > > > System details: > > Host type: mipsel-unknown-linux-gnu > System: Linux eyeore 2.4.25 #20 Wed Sep 29 09:01:29 IST 2004 mips unknown > Architecture: mips > > Addons: linuxthreads > Build CFLAGS: -mips32 -O2 -g > Build CC: gcc > Compiler version: 3.4.2 > Kernel headers: 2.4.25 > Symbol versioning: yes > Build static: yes > Build shared: yes > Build pic-default: yes > Build profile: yes > Build omitfp: no > Build bounded: no > Build static-nss: no > > sara@eyeore: [over] ~/tmp$ cat /proc/cpuinfo > system type : ITE QED-4N-S01B > processor : 0 > cpu model : Nevada V3.1 FPU V3.0 > BogoMIPS : 299.00 > wait instruction : yes > microsecond timers : yes > tlb_entries : 48 > extra interrupt vector : yes > hardware watchpoint : no > VCED exceptions : not available > VCEI exceptions : not available > sara@eyeore: [over] ~/tmp$ > > > > Some experimentation with "gcc -E" revealed that in the compiler I am using > (by default), > > _MIPS_SIM is set to 1 > _ABI032 is set to 1 > _ABIN32 is not defined > _ABI64 is not defined > > I tried compiling a "hello world" program with "gcc -mabi=32" and it works. > > If I try "gcc -mabi=n32" it breaks at the linking stage as below: > > sara@eyeore: [over] ~/tmp$ gcc -mabi=n32 -o v v.c > /home/sara/usr/local/lib/gcc/mipsel-unknown-linux-gnu/3.4.2/../../../../mipsel-unknown-linux-gnu/bin/ld: > /tmp/ccnz0jlk.o: ABI is incompatible with that of the selected emulation > /home/sara/usr/local/lib/gcc/mipsel-unknown-linux-gnu/3.4.2/../../../../mipsel-unknown-linux-gnu/bin/ld: > failed to merge target specific data of file /tmp/ccnz0jlk.o > /home/sara/usr/local/lib/gcc/mipsel-unknown-linux-gnu/3.4.2/../../../../mipsel-unknown-linux-gnu/bin/ld: > BFD 2.15 assertion fail elfxx-mips.c:1899 > collect2: ld returned 1 exit status > sara@eyeore: [over] ~/tmp$ > > What should I do to fix the build? get the most recent machine-gmon.h from glibc CVS. You will probably find a problem linking libc at a later step. But the newer machine-gmon.h will fix this problem. I have sucessfully build with gcc-3.3.1, still working on 3.4.2 David Daney.