Subject: 64-bit status?
To: None <port-sparc64@netbsd.org>
From: Sam Erde <samerde@eudoramail.com>
List: port-sparc64
Date: 06/16/2002 00:23:12
Since one week or two, build.sh fails on a SIGSEGV, always at the same point: just before building c libraries (when running ranlib?)
building standard c library
*** Signal 11
Stop.
nbmake: stopped in /usr/src/lib/libc
*** Error code 1
When started over (with an extra -o), it runs exactly one step ahead and stops on the same signal:
building standard c library
/bulk/snapshots/20020612/tooldir/bin/sparc64--netbsd-ranlib libc.a
building profiled c library
*** Signal 11
Stop.
nbmake: stopped in /usr/src/lib/libc
*** Error code 1
and then one more time when restarted again:
building profiled c library
/bulk/snapshots/20020612/tooldir/bin/sparc64--netbsd-ranlib libc_p.a
building shared object c library
*** Signal 11
Stop.
nbmake: stopped in /usr/src/lib/libc
*** Error code 1
Launched an other time, it proceeds without any other problem:
building shared object c library
/bulk/snapshots/20020612/tooldir/bin/sparc64--netbsd-ranlib libc_pic.a
building shared c library (version 12.84)
/bulk/snapshots/20020612/tooldir/bin/sparc64--netbsd-ld -nostdlib -x -shared -soname libc.so.12 -o libc.so.12.84 /bulk/snapshots/20020612/destdir/usr/lib/crtbeginS.o --whole-archive libc_pic.a --no-whole-archive -L/bulk/snapshots/20020612/destdir/usr/lib -L/bulk/snapshots/20020612/destdir/usr/lib -R/usr/lib -R/usr/lib /bulk/snapshots/20020612/destdir/usr/lib/crtendS.o
[...]
This happens on a sparc64 hardware (Netra X1) running a 64-bit kernel (roughly GENERIC) and a 64-bit userland, wether they were natively build, cross-build or fetched from releng. Everything is alright when build.sh, targeting sparc64, is a cross-building process (e.g. on an i386). And build.sh goes its way successfully when the 64-bit hardware runs a GENERIC32 kernel and a 32-bit (e.g. sun4m) userland (this is somehow a cross-build)...
So, here is the point: what is the now-days status of 64-bit compilers/linkers/loaders/libraries/programs, native sparc64 or cross-to-other-arch, running on sparc64 systems?
They seem mostly operative but with strange weirdnesses: large negative size or counters, etc.
--SE
P.S.: If useful for anybody, here is a way to plug a 32-bit environment on a 64-bit machine:
- build or fetch a sparc (sun4m) userland (binary/sets/*.tgz are fine)
- build a 32-bit sparc64 kernel and boot files (cross-build is safer?)
- install them
- populate /dev with a 64-bit MAKEDEV, not the sparc (sun4m) one.
Beware of anything relying on uname ((1) or (3)) which still return a sparc64 machine. For example, when trying to build a 32-bit X11 on a sparc64 hardware: imake tells the c compiler to use 64-bit options which are rejected by the 32-bit compiler. Either build X11 on a sparc (sun4m) hardware or, dirtier, patch imake to force a -D__sparc__ instead of -D__%s__ uts.machine...
---
Sam Erde @ Donf
"bin ich auch eine GmbH: keine Haftung..."
Join 18 million Eudora users by signing up for a free Eudora Web-Mail account at http://www.eudoramail.com