Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Apr 2016 21:25:37 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, freebsd-arm <freebsd-arm@freebsd.org>
Subject:   11.0: head/lib/libsysdecode/Makefile for . . ./libsoft/usr/include uses CPP when XCPP needed?
Message-ID:  <D8803949-18C1-4B17-981F-DAD5A2DEDCE8@dsl-only.net>

next in thread | raw e-mail | index | archive | help

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D8803949-18C1-4B17-981F-DAD5A2DEDCE8>