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.