Subject: setting COPTS+=-mcpu=ultrasparc breaks build
To: None <port-sparc64@NetBSD.org>
From: None <sigsegv@rambler.ru>
List: port-sparc64
Date: 03/13/2005 14:02:21
Greetings, I set COPTS+=-mcpu=ultrasparc in my mk.conf and then 
attempted to build release from CURRENT source tree.

cd /opt/src && ./build.sh -j 1 -u -m sparc64 -x -X /opt/xsrc \
         -O /opt/obj.sparc64 -T /opt/tools.sparc64 \
         release 2>&1 | tee /scripts/log.sparc64

It failed when building src/lib/libm/src/e_pow.c
Looking at the error message, it seems to complain about floating point 
registers or something. Is this a bug?


#   compile  libm/e_pow.o
/opt/tools.sparc64/bin/sparc64--netbsd-gcc -O2 -Wall -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wno-traditional 
-Wno-uninitialized  -Werror  -mcpu=ultrasparc -Os -pipe   -D_MULTI_LIBM 
-D_POSIX_MODE -DLIBM_SCCS   -nostdinc -isystem 
/opt/obj.sparc64/destdir.sparc64/usr/include -c 
/opt/src/lib/libm/src/e_pow.c -o e_pow.o.tmp
{standard input}: Assembler messages:
{standard input}:316: Error: Illegal operands: There are only 32 single 
precision f registers; [0-31]
*** [e_pow.o] Error code 1
1 error

nbmake: stopped in /opt/src/lib/libm
*** [dependall] Error code 2
1 error

nbmake: stopped in /opt/src/lib/libm

*** Failed target:  dependall-libm
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; 
shift; case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) 
this="lib/"; real="/opt/src/lib" ;; *) this="lib/${dir}/"; 
real="/opt/src/lib/${dir}" ;; esac; show=${this:-.}; echo "${target} 
===> ${show%/}${1:+ (with: $@)}"; cd "${real}" && 
/opt/tools.sparc64/bin/nbmake _THISDIR_="${this}" "$@" ${target}; }; 
_makedirtarget libm dependall
*** Error code 2

Stop.