Subject: Re: Heads Up: Migration to gcc4
To: None <current-users@netbsd.org, port-cobalt@netbsd.org,>
From: Markus W Kilbinger <mk@kilbi.de>
List: current-users
Date: 06/02/2006 16:15:56
>>>>> "Allen" == Allen Briggs <briggs@netbsd.org> writes:

    Allen> [...]
    Allen> I encourage you, current-users, to give it a workout sooner
    Allen> rather than later so we can catch any issues as early as
    Allen> possible.

I've tried gcc4 for cobalt/mipsel (cross compiled on i386):

- ./build ... distribution failed in/with:

  #     build  libgcc_s/libgcc_s.so.1.0
  rm -f libgcc_s.so.1.0
  /usr/toolchain-mipsel/bin/mipsel--netbsd-gcc -Wl,-nostdlib -B/usr/cobalt-dest/usr/lib/ -B/usr/cobalt-dest/usr/lib/   -Wl,-rpath-link,/usr/cobalt-dest/lib:/usr/cobalt-dest/usr/lib  -L/usr/cobalt-dest/lib  -Wl,-x -shared -Wl,-soname,libgcc_s.so.1  -nodefaultlibs -Wl,--version-script=/usr/src/gnu/lib/libgcc4/libgcc_s/obj.cobalt/libgcc.map  -o libgcc_s.so.1.0  -Wl,--whole-archive libgcc_s.a  -Wl,--no-whole-archive   -L/usr/cobalt-dest/usr/lib
  /usr/toolchain-mipsel/lib/gcc/mipsel--netbsd/4.1.1/../../../../mipsel--netbsd/bin/ld: /usr/cobalt-dest/usr/lib/crti.o: CALL16 reloc at 0xc not against global symbol
  /usr/cobalt-dest/usr/lib/crti.o: could not read symbols: Bad value
  collect2: ld returned 1 exit status
  
  *** Failed target:  libgcc_s.so.1.0

- Building a cobalt kernel fails with:

  cat ../../../../arch/mips/mips/genassym.cf  |  /usr/toolchain-mipsel/bin/nbgenassym -- /usr/toolchain-mipsel/bin/mipsel--netbsd-gcc  -G 0 -mno-abicalls -msoft-float -ffreestanding   -pipe -O2 -mips2 -mtune=vr5000 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wreturn-type -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wno-sign-compare -Wno-pointer-sign -Wno-attributes  -fno-zero-initialized-in-bss -fno-strict-aliasing    -Dcobalt -I.  -I../../../../../common/include -I../../../../arch  -I../../../.. -nostdinc -DMIPS3 -DMSGMNB="16384" -DMSGSSZ="64" -DMSGTQL="512" -DLKM -DDIAGNOSTIC -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT -I../../../../lib/libkern/../../../common/lib/libc/quad -I../../../../lib/libkern/../../../common/lib/libc/string -I../../../../lib/libkern/../../../common/lib/libc/arch/mips/string  -I../../../../dist/pf   > assym.h.tmp &&  mv -f assym.h.tmp assym.h
  cc1: warnings being treated as errors
  In file included from ./machine/lock.h:3,
                   from ../../../../sys/lock.h:87,
                   from ../../../../sys/ucred.h:37,
                   from ../../../../sys/param.h:127,
                   from /tmp/genassym.1739/assym.c:2:
  ./mips/lock.h: In function '__cpu_simple_lock':
  ./mips/lock.h:100: warning: matching constraint does not allow a register
  ./mips/lock.h:75: warning: matching constraint does not allow a register
  ./mips/lock.h: In function '__cpu_simple_lock_try':
  ./mips/lock.h:129: warning: matching constraint does not allow a register
  ./mips/lock.h:108: warning: matching constraint does not allow a register
  
  *** Failed target:  assym.h

Izumi Tsutsui already mailed a solution for that:

  http://mail-index.netbsd.org/port-cobalt/2006/06/01/0001.html

... which works for me.

Markus.