From owner-freebsd-ports@freebsd.org Tue Jan 30 22:15:33 2018 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09C69EC27AA; Tue, 30 Jan 2018 22:15:33 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B23F184BD8; Tue, 30 Jan 2018 22:15:32 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1354) id AA16119CE9; Tue, 30 Jan 2018 22:15:32 +0000 (UTC) From: Jan Beich To: bob prohaska Cc: Steve Kargl , freebsd-arm@freebsd.org, freebsd-ports@freebsd.org Subject: Re: Use of undeclared identifier 'fpgetmask' References: <20180120222638.GA82875@www.zefox.net> <20180120230421.GA57305@troutmask.apl.washington.edu> <20180121160130.GA85652@www.zefox.net> <20180121173553.GA73646@troutmask.apl.washington.edu> <20180121175840.GA85758@www.zefox.net> <20180121181214.GA73826@troutmask.apl.washington.edu> <20180122164848.GA89314@www.zefox.net> <20180122181426.GA81243@troutmask.apl.washington.edu> <20180130181359.GA22433@www.zefox.net> Date: Tue, 30 Jan 2018 23:15:24 +0100 In-Reply-To: <20180130181359.GA22433@www.zefox.net> (bob prohaska's message of "Tue, 30 Jan 2018 10:13:59 -0800") Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2018 22:15:33 -0000 bob prohaska writes: > On Mon, Jan 22, 2018 at 10:14:26AM -0800, Steve Kargl wrote: > >> On Mon, Jan 22, 2018 at 08:48:48AM -0800, bob prohaska wrote: >> > > What happens if you force inclusion by deleting #ifdef HAVE_IEEEFP_H? >> > > >> > After commenting out the test, running make clean and restarting a single- >> > threaded make the process stops with the same error: >> > >> > src/main.cpp:679:15: error: use of undeclared identifier 'fpgetmask' >> > fpsetmask(fpgetmask() & ~(FP_X_DZ | FP_X_INV)); >> > >> > >> > I've placed a copy of the make log file at >> > http://www.zefox.net/~fbsd/rpi2/inkscape/ieeefp_h_included.log >> > >> >> rpi2 is an ARM based board, right? Compare >> /usr/src/sys/amd64/include/ieeefp.h >> /usr/src/sys/arm/include/ieeefp.h >> It seems that FreeBSD' ARM architecture doesn't implement >> the functions associate with ieeefp.h. You probably need >> to force HAVE_IEEEF_H to 0. > > It looks as if there's no option to set HAVE_IEEEFP_H to zero, > at least not in a straightforward way. Poking around in > /usr/ports/graphics/inkscape/work/inkscape-0.92.2 one finds > a README which describes two manual build procedures, but > those seem to automate the setting of HAVE_IEEEFP_H > > The relevant lines appear to be: > > for ac_header in ieeefp.h > do : > ac_fn_cxx_check_header_mongrel "$LINENO" "ieeefp.h" "ac_cv_header_ieeefp_h" "$ac_includes_default" > if test "x$ac_cv_header_ieeefp_h" = xyes; then : > cat >>confdefs.h <<_ACEOF > #define HAVE_IEEEFP_H 1 > _ACEOF autoconf often supports overriding e.g., CONFIGURE_ENV += ac_cv_header_ieeefp_h=no CONFIGURE_ENV += ac_cv_func_setmask=no except those would be nop due to USES=cmake. > main.cpp:679:15: error: use of undeclared identifier 'fpgetmask' > fpsetmask(fpgetmask() & ~(FP_X_DZ | FP_X_INV)); CMakeScripts/ConfigChecks.cmake has the following line CHECK_FUNCTION_EXISTS(fpsetmask HAVE_FPSETMASK) which is under the following caveat * ``check_function_exists()`` only verifies linking, it does not verify that the function is declared in system headers. suggesting fpsetmask() is actually present on armv6 $ nm -D /lib/libc.so.7 | fgrep fpsetmask 00050dd4 T fpsetmask cf. https://svnweb.freebsd.org/changeset/base/264696