Subject: compiling sparc fails...
To: None <current-users@netbsd.org>
From: Kurt Schreiner <ks@ub.uni-mainz.de>
List: current-users
Date: 10/07/2007 14:49:32
Hi,

cross-compiling on i386 (if it matters) for sparc fails
building libc.so with USE_JEMALLOC !=no (the default):

./build.sh -o -u -N 1 -x -U -m sparc -O /u/NetBSD/hshutti/sparc/obj -D /u/Net
BSD/hshutti/sparc/dest -T /u/NetBSD/hshutti/sparc/TOOLS distribution
...
...
...
do-lib-libc ===> .
dependall ===> lib/libc
     create  libc/tags
      build  libc/libc.so.12.153
libc_pic.a(__clone.so): In function `__clone':
/u/NetBSD/src/lib/libc/arch/sparc/sys/__clone.S:(.text+0x60): relocation truncated to fit: R_SPARC_G
OT13 against symbol `_exit' defined in .text section in libc_pic.a(_exit.so)
libc_pic.a(sigsetjmp.so): In function `__sigsetjmp14':
/u/NetBSD/src/lib/libc/arch/sparc/gen/sigsetjmp.S:(.text+0x2c): relocation truncated to fit: R_SPARC
_GOT13 against symbol `_setjmp' defined in .text section in libc_pic.a(_setjmp.so)
libc_pic.a(compat_sigsetjmp.so): In function `sigsetjmp':
/u/NetBSD/src/lib/libc/compat/arch/sparc/gen/compat_sigsetjmp.S:(.text+0x2c): relocation truncated t
o fit: R_SPARC_GOT13 against symbol `_setjmp' defined in .text section in libc_pic.a(_setjmp.so)
collect2: ld returned 1 exit status

*** Failed target:  libc.so.12.153
*** Failed command: /u/NetBSD/hshutti/sparc/TOOLS/bin/sparc--netbsdelf-gcc -Wl,-nostdlib -B/u/NetBSD
/hshutti/sparc/dest/usr/lib/ -B/u/NetBSD/hshutti/sparc/dest/usr/lib/ -Wl,-rpath-link,/u/NetBSD/hshut
ti/sparc/dest/lib:/u/NetBSD/hshutti/sparc/dest/usr/lib -R/lib -L/u/NetBSD/hshutti/sparc/dest/lib -Wl
,-x -shared -Wl,-soname,libc.so.12 -Wl,--warn-shared-textrel -o libc.so.12.153 -Wl,--whole-archive l
ibc_pic.a -Wl,--no-whole-archive -L/u/NetBSD/hshutti/sparc/dest/usr/lib
*** Error code 1

Stop.
nbmake: stopped in /u/NetBSD/src/lib/libc

setting USE_JEMALLOC=no in /etc/mk.conf and redoing build.sh as above yields:

....
do-lib-libc ===> .
dependall ===> lib/libc
     create  libc/calloc.d
     create  libc/malloc.d
     create  libc/.depend
     create  libc/tags
    compile  libc/calloc.ln
    compile  libc/calloc.o
    compile  libc/calloc.po
    compile  libc/calloc.so
    compile  libc/malloc.ln
/u/NetBSD/src/lib/libc/stdlib/malloc.c(404): warning: conversion from 'unsigned long' to 'unsigned i
nt' may lose accuracy [132]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(444): warning: conversion from 'long' to 'int' may lose accur
acy [132]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(517): warning: conversion from 'unsigned long' to 'unsigned i
nt' may lose accuracy [132]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(524): warning: semantics of '<<=' change in ANSI C; use expli
cit cast [118]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(645): warning: conversion from 'unsigned long' to 'int' may l
ose accuracy [132]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(660): warning: conversion from 'unsigned long' to 'unsigned s
hort' may lose accuracy [132]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(745): warning: conversion from 'long' to 'int' may lose accur
acy [132]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(839): warning: semantics of '<<' change in ANSI C; use explic
it cast [118]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(1024): warning: semantics of '<<' change in ANSI C; use expli
cit cast [118]
/u/NetBSD/src/lib/libc/stdlib/malloc.c(1032): warning: semantics of '<<' change in ANSI C; use expli
cit cast [118]
    compile  libc/malloc.o
    compile  libc/malloc.po
    compile  libc/malloc.so
      build  libc/libc.a
      build  libc/libc_p.a
      build  libc/libc_pic.a
      build  libc/libc.so.12.153
    compile  libc/llib-lc.ln
Lint pass2:
install ===> lib/libc
    install  /u/NetBSD/hshutti/sparc/dest/usr/lib/libc.a
    install  /u/NetBSD/hshutti/sparc/dest/usr/lib/libc_p.a
    install  /u/NetBSD/hshutti/sparc/dest/usr/lib/libc_pic.a
    install  /u/NetBSD/hshutti/sparc/dest/lib/libc.so.12.153
    install  /u/NetBSD/hshutti/sparc/dest/usr/libdata/lint/llib-lc.ln
    install  /u/NetBSD/hshutti/sparc/dest/usr/share/man/man3/__builtin_object_size.3
...

as expected.

Kurt