[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gcc fails to build on debian-mipsel



On Mon, Apr 02, 2001 at 01:39:08PM -0400, Ben Collins wrote:
> On Mon, Apr 02, 2001 at 07:08:01PM +0200, Florian Lohoff wrote:
> >  gencheck.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac `  ` case "" in ?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac ` 
> > /usr/lib/crt1.o: In function `__start':
> > /usr/lib/crt1.o(.text+0x28): undefined reference to `atexit'
> > /usr/lib/crt1.o: In function `nofini':
> > /usr/lib/crt1.o(.text+0x7c): undefined reference to `__libc_init_first'
> > /usr/lib/crt1.o(.text+0xd8): undefined reference to `atexit'
> > /usr/lib/crt1.o(.text+0x138): undefined reference to `exit'
> 
> Looks like you are mixing some libc things here. Are you sure you have a
> pure 2.0.6 install with no glibc 2.2.x things laying around?
> 

I have reinstalled the glibc 2.0.6 and stuff again just to be shure - And
yes - I am pure 2.0.6

repeat:/lib# readelf -s libc.so.6  | grep atexit
   321: 600dbe3c     0 OBJECT  GLOBAL DEFAULT  ABS __start___libc_atexit
   322: 600dbe40     0 OBJECT  GLOBAL DEFAULT  ABS __stop___libc_atexit
   328: 60005480   112 FUNC    GLOBAL DEFAULT  PRC atexit
  1646: 600dbe3c     4 OBJECT  LOCAL  DEFAULT   13 __elf_set___libc_atexit_element__cleanup__
  3360: 600dbe3c     0 OBJECT  GLOBAL DEFAULT  ABS __start___libc_atexit
  3575: 600dbe40     0 OBJECT  GLOBAL DEFAULT  ABS __stop___libc_atexit
  3990: 60005480   112 FUNC    GLOBAL DEFAULT  PRC atexit

Both sections .dynsym and .symtab contain the symbol atexit

repeat:/usr/lib# readelf -s /usr/lib/crt1.o  | grep atexit
     9: 00000000     0 OBJECT  GLOBAL DEFAULT  UND atexit

By adding "-lc" to the gcc the bug disappears - 

flo@repeat:~/gcc-2.95-2.95.3.ds5/build-native/gcc$ stage1/xgcc -v -Bstage1/ -B/usr/mipsel-linux/bin/  -DIN_GCC     -g -O2   -DHAVE_CONFIG_H  -o gencheck gencheck.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac `  ` case "" in ?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac `
Reading specs from stage1/specs
gcc version 2.95.3 20010315 (Debian release)
 stage1/collect2 -Y P,/usr/lib -dynamic-linker /lib/ld.so.1 -o gencheck /usr/lib/crt1.o /usr/lib/crti.o stage1/crtbegin.o -Lstage1 gencheck.o obstack.o -lgcc -lgcc stage1/crtend.o /usr/lib/crtn.o
/usr/lib/crt1.o: In function `__start':
/usr/lib/crt1.o(.text+0x28): undefined reference to `atexit'
/usr/lib/crt1.o: In function `nofini':
/usr/lib/crt1.o(.text+0x7c): undefined reference to `__libc_init_first'
/usr/lib/crt1.o(.text+0xd8): undefined reference to `atexit'
/usr/lib/crt1.o(.text+0x138): undefined reference to `exit'
gencheck.o: In function `usage':
/home/flo/gcc-2.95-2.95.3.ds5/src-native/gcc/gencheck.c:34: undefined reference to `_IO_stderr_'
/home/flo/gcc-2.95-2.95.3.ds5/src-native/gcc/gencheck.c:34: undefined reference to `fprintf'
gencheck.o: In function `main':
/home/flo/gcc-2.95-2.95.3.ds5/src-native/gcc/gencheck.c:50: undefined reference to `exit'
/home/flo/gcc-2.95-2.95.3.ds5/src-native/gcc/gencheck.c:53: undefined reference to `printf'
/home/flo/gcc-2.95-2.95.3.ds5/src-native/gcc/gencheck.c:56: undefined reference to `printf'
gencheck.o: In function `no symbol':
/home/flo/gcc-2.95-2.95.3.ds5/src-native/gcc/gencheck.c:58: undefined reference to `printf'
stage1/libgcc.a(__main.o): In function `no symbol':
/home/flo/gcc-2.95-2.95.3.ds5/src-native/gcc/libgcc2.c(.text+0x154): undefined reference to `atexit'
collect2: ld returned 1 exit status

flo@repeat:~/gcc-2.95-2.95.3.ds5/build-native/gcc$ stage1/xgcc -v -Bstage1/ -B/usr/mipsel-linux/bin/  -DIN_GCC     -g -O2   -DHAVE_CONFIG_H  -lc -o gencheck gencheck.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac `  ` case "" in ?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac `
Reading specs from stage1/specs
gcc version 2.95.3 20010315 (Debian release)
 stage1/collect2 -Y P,/usr/lib -dynamic-linker /lib/ld.so.1 -o gencheck /usr/lib/crt1.o /usr/lib/crti.o stage1/crtbegin.o -Lstage1 -lc gencheck.o obstack.o -lgcc -lgcc stage1/crtend.o /usr/lib/crtn.o

Flo
-- 
Florian Lohoff                  flo@rfc822.org             +49-5201-669912
     Why is it called "common sense" when nobody seems to have any?



Reply to: