potential future proofing fix for aicasm build.
Steven Hartland
killing at multiplay.co.uk
Thu May 2 07:47:18 UTC 2013
I just remembered I had an issue with aicasm when compiling our kernel that didn't
have ahc or ahd on an 8.3 box. The fix was to manually delete the kernel obj
directory before compiling after doing a full make buildworld.
For some reason there was some cruft left in there that running make buildkernel
wasn't cleaning out, could you be suffering from a similar issue?
----- Original Message -----
From: "Dimitry Andric" <dimitry at andric.com>
To: "Alfred Perlstein" <alfred at ixsystems.com>
Cc: <hackers at freebsd.org>
Sent: Thursday, May 02, 2013 8:19 AM
Subject: Re: potential future proofing fix for aicasm build.
> On May 1, 2013, at 18:44, Alfred Perlstein <alfred at ixsystems.com> wrote:
>> I took a shot at fixing this issue with building aicasm as part of "buildkernel" of an older 9.0 src on a machine running HEAD.
>>
>> aicasm.o: In function `__getCurrentRuneLocale': > /usr/include/runetype.h:96: undefined reference to `_ThreadRuneLocale'
>
> I don't understand this error message... It seems like a linker error, but it also seems to refer to an incorrect include file?
> Is this during linking or compiling?
>
>
>> The issue seems to be two-fold:
>>
>> 1) Paths are not fully set to pick up the bootstrap tools needed to build.
>
> What do you mean, exactly? In r230622 I explicitly set the PATH to ${BPATH}:${PATH}, which should be enough to pick up the
> bootstrap tools. This is exactly the same path used to build the bootstrap-tools stage itself. The kernel bootstrap tools
> (only aicasm, really) should be built by the host compiler, not the cross-tools compiler.
>
>
>> 2) include files use the host's instead of the build trees.
>>
>> The first problem is fixed by changing setting of PATH from "${BPATH}:${PATH}" to ${TMPPATH}.
>>
>> The second is fixed by using -nostdinc and setting strict include paths using -I directives to the compiler:
>>
>> CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm"
>
> I don't think this is correct, as aicasm should be compiled by the host compiler, and linked with the host libc. So if you
> start including headers from the source directory, there will be a mismatch between what those headers declare, and what is
> available in the host libc.
>
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
>
================================================
This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it.
In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337
or return the E.mail to postmaster at multiplay.co.uk.
More information about the freebsd-hackers
mailing list