Still blowing up -- RPI2 crossbuild
Ian Lepore
ian at freebsd.org
Sat May 21 16:29:01 UTC 2016
On Sat, 2016-05-21 at 11:10 -0500, Karl Denninger wrote:
> From an AMD64 machine using the "mk" script, now that hardware
> floating-point has turned into the default it appears that at the
> same
> time an include file has gone missing.
>
> I get:
>
> --- flt_rounds.So ---
> cc -fpic -DPIC -O -pipe -I/pics/CrossBuild/src/lib/libc/include
> -I/pics/CrossBuild/src/lib/libc/../../include
> -I/pics/CrossBuild/src/lib/libc/arm -DNLS -D__DBINTERFACE_PRIVATE
> -I/pics/CrossBuild/src/lib/libc/../../contrib/gdtoa
> -I/pics/CrossBuild/src/lib/libc/../../contrib/libc-vis -DINET6
> -I/pics/CrossBuild/obj/arm.armv6/pics/CrossBuild/src/lib/libc
> -I/pics/CrossBuild/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE
> -I/pics/CrossBuild/src/lib/libc/../libmd
> -I/pics/CrossBuild/src/lib/libc/../../contrib/jemalloc/include
> -I/pics/CrossBuild/src/lib/libc/../../contrib/tzcode/stdtime
> -I/pics/CrossBuild/src/lib/libc/stdtime
> -I/pics/CrossBuild/src/lib/libc/locale -DBROKEN_DES -DPORTMAP
> -DDES_BUILTIN -I/pics/CrossBuild/src/lib/libc/rpc -DYP -DNS_CACHING
> -DSYMBOL_VERSIONING -MD -MF.depend.flt_rounds.So -MTflt_rounds.So
> -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k
> -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body
> -Wno-string-plus-int -Wno-unused-const-variable
> -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality
> -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef
> -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter
> -Qunused-arguments -I/pics/CrossBuild/src/lib/libutil
> -I/pics/CrossBuild/src/lib/msun/arm
> -I/pics/CrossBuild/src/lib/msun/src
> -c /pics/CrossBuild/src/lib/libc/arm/gen/flt_rounds.c -o
> flt_rounds.So
> /pics/CrossBuild/src/lib/libc/arm/gen/flt_rounds.c:34:10: fatal
> error:
> 'softfloat-for-gcc.h' file not found
> #include "softfloat-for-gcc.h"
> ^
> 1 error generated.
> *** [flt_rounds.So] Error code 1
>
> The code in question in flt_rounds.c is:
>
> #include <fenv.h>
> #include <float.h>
>
> #ifndef __ARM_PCS_VFP
> #include "softfloat-for-gcc.h"
> #include "milieu.h"
> #include "softfloat.h"
> #endif
>
> And indeed in src/lib/libc/arm/softfloat that file is not there (the
> other two are)
>
> Adding "#define __ARM_PCS_VFP" (so the test for those three
> includes
> always fails) appears to work.
>
> But then the crossbuild blows up here:
>
> --- kerberos5/lib/libhdb__L ---
> hdb-sqlite.So: In function `hdb_sqlite_make_database':
> /pics/CrossBuild/src/kerberos5/lib/libhdb/../../../crypto/heimdal/lib
> /hdb/hdb-sqlite.c:(.text+0x480):
> undefined reference to `__aeabi_dcmpeq'
> cc: error: linker command failed with exit code 1 (use -v to see
> invocation)
> *** [libhdb.so.11] Error code 1
>
> bmake[4]: stopped in /pics/CrossBuild/src/kerberos5/lib/libhdb
> 1 error
>
> bmake[4]: stopped in /pics/CrossBuild/src/kerberos5/lib/libhdb
> *** [kerberos5/lib/libhdb__L] Error code 2
>
> Will see what I can find later on this...
>
If that mk script is adding -DNO_CLEAN for you, that might be the
problem. I've had no problems doing a crossbuild after updating to the
armv6hf->armv6 change, but I started with "rm -rf obj/*" in my build
sandbox to be sure I got a new crosscompiler built first.
-- Ian
More information about the freebsd-arm
mailing list