cross compiling
Daniel Braniss
danny at cs.huji.ac.il
Sat Dec 5 09:06:43 UTC 2015
> On 5 Dec 2015, at 7:32 AM, Warner Losh <imp at bsdimp.com> wrote:
>
>
> On Fri, Dec 4, 2015 at 10:39 AM, Daniel Braniss <danny at cs.huji.ac.il <mailto:danny at cs.huji.ac.il>> wrote:
>
>> On 4 Dec 2015, at 6:33 PM, Warner Losh <imp at bsdimp.com <mailto:imp at bsdimp.com>> wrote:
>>
>>>
>>> On Dec 4, 2015, at 9:31 AM, Daniel Braniss <danny at cs.huji.ac.il <mailto:danny at cs.huji.ac.il>> wrote:
>>>
>>> Hi,
>>> I can cross compile for armv6 (raspberry Pi B), and I do get a working version, and till about July, I was
>>> able to cross compile a module doing something like this:
>>> $ cd $SRC
>>> $ make kernel-toolchain TARGET_ARCH=armv6
>>> $ make buildenv TARGET_ARCH=armv6 BUILDENV_SHELL=/usr/local/bin/shell
>>> $ cd <moduledir>
>>> $ make
>>>
>>> but today, after a fresh svn update of current, I get:
>>>
>>> Warning: Object directory not changed from original /a/fr-05/vol/home/system/danny/src/FreeBSD/ARM/elc/sys/modules/mfrc
>>> cc -O -pipe -mfloat-abi=softfp -DMFRC_DEBUG=8 -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/a/fr-05/vol/home/system/danny/src/FreeBSD/ARM/elc/sys/modules/mfrc/../.. -I. -I@ -I@/contrib/altq -fno-common -ffreestanding -c /a/fr-05/vol/home/system/danny/src/FreeBSD/ARM/elc/sys/modules/mfrc/../../dev/mfrc/mfrc.c -o mfrc.o
>>> cc: error: argument unused during compilation: '-mfloat-abi=softfp'
>>> *** Error code 1
>>>
>>> so, what magic am I missing?
>>
>> What does which cc say?
>>
>
> the host I use to cross compile is running 10.1,
>
> /usr/bin/cc
>
> but I also tried CC=clang
> there is another error, which appeared before, and I solve it by setting MK_FORMAT_EXTENSIONS=no
> (which out it complains … malformed conditional (${MK_FORMAT_EXTENSIONS) == “no”)
>
>
> If which cc returns /usr/bin/cc, then you haven't built the toolchain.
ok, the problem is solved by setting BUILDING_SHELL=/bin/sh
there is still a small problem, apart from the MK_FORMAT issue, in my module directory,
make … symlinks @ and machine to /usr/src/ and /usr/src/sys/arm/include instead of the one from which buildenv was lauchend,
in my case /r+d/vanilla/11/src. setting it by hand gets me a working loadable module.
>
> Warner
More information about the freebsd-hackers
mailing list