11.0: head/lib/libsysdecode/Makefile for . . ./libsoft/usr/include uses CPP when XCPP needed?
Mark Millard
markmi at dsl-only.net
Mon Apr 4 04:25:41 UTC 2016
For an amd64 -> armv7a (rpi2 targeting) cross-compile the code
> # $FreeBSD: head/lib/libsysdecode/Makefile 295931 2016-02-23 20:00:55Z jhb $
>
> . . .
> ioctl.c: mkioctls
> env MACHINE=${MACHINE} CPP="${CPP}" \
> /bin/sh ${.CURDIR}/mkioctls ${DESTDIR}${INCLUDEDIR} > ${.TARGET}
(with its use of CPP instead of the XCPP) got:
> --- all_subdir_lib/libsysdecode ---
> --- ioctl.c ---
> env MACHINE=arm CPP="/usr/bin/clang-cpp" /bin/sh /usr/src/lib/libsysdecode/mkioctls /usr/obj/clang/arm.armv6/usr/src/libsoft/usr/include > ioctl.c
> . . .
> --- all_subdir_lib/libsysdecode ---
> In file included from <stdin>:17:
> In file included from /usr/obj/clang/arm.armv6/usr/src/libsoft/usr/include/dev/nvme/nvme.h:36:
> In file included from /usr/obj/clang/arm.armv6/usr/src/libsoft/usr/include/sys/param.h:135:
> In file included from /usr/obj/clang/arm.armv6/usr/src/libsoft/usr/include/machine/param.h:49:
> /usr/obj/clang/arm.armv6/usr/src/libsoft/usr/include/machine/acle-compat.h:182:4: error: Unable to determine architecture version.
> # error Unable to determine architecture version.
> ^
In my case I had the following in the in-use src.conf in order to control the cross compile specifics:
> XCC=/usr/bin/clang -target ${TO_TYPE}--freebsd11.0-gnueabi -march=armv7a -mcpu=cortex-a7 -mno-unaligned-access
> XCXX=/usr/bin/clang++ -target ${TO_TYPE}--freebsd11.0-gnueabi -march=armv7a -mcpu=cortex-a7 -mno-unaligned-access
> XCPP=/usr/bin/clang-cpp -target ${TO_TYPE}--freebsd11.0-gnueabi -march=armv7a -mcpu=cortex-a7 -mno-unaligned-access
(I've been doing such for a long time but only just progressed to a 11.0 source vintage with libsoft involved.)
Even if I'm out of bounds for technique in some way I expect that
> ioctl.c: mkioctls
> env MACHINE=${MACHINE} CPP="${CPP}" \
> /bin/sh ${.CURDIR}/mkioctls ${DESTDIR}${INCLUDEDIR} > ${.TARGET}
is not doing everything it should to have the full context needed for . . ./machine/acle-compat.h .
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-toolchain
mailing list