Re: potential future proofing fix for aicasm build.
On May 1, 2013, at 18:44, Alfred Perlstein alf...@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@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
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 dimi...@andric.com To: Alfred Perlstein alf...@ixsystems.com Cc: hack...@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 alf...@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@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@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 postmas...@multiplay.co.uk. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
On 2013-05-02 09:47, Steven Hartland wrote: 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? Well, a way to reproduce the problem would be nice. I tried running make buildkernel in a stable/9 tree on a 10.0 machine, and building aicasm went just fine. So it works for me... ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
- Original Message - From: Dimitry Andric dimi...@andric.com On 2013-05-02 09:47, Steven Hartland wrote: 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? Well, a way to reproduce the problem would be nice. I tried running make buildkernel in a stable/9 tree on a 10.0 machine, and building aicasm went just fine. So it works for me... I think what I did was the following:- 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm 2. make buildworld -j10 # Realised I'd forgotten to build world 3. make buildkernel -j10 # still failed due to aicasm 4. rm -rf /usr/obj/usr/src/sys/MYCONF 5. make buildkernel -j10 # worked So I think the mistake that triggered it was I didn't build world before building kernel, however I've not tried reproducing. Regards Steve 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 postmas...@multiplay.co.uk. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
On 2013-05-02 11:54, Steven Hartland wrote: From: Dimitry Andric dimi...@andric.com ... Well, a way to reproduce the problem would be nice. I tried running make buildkernel in a stable/9 tree on a 10.0 machine, and building aicasm went just fine. So it works for me... I think what I did was the following:- 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm And this is what I cannot reproduce. Works just fine, either with or without -j. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
- Original Message - From: Dimitry Andric dimi...@andric.com On 2013-05-02 11:54, Steven Hartland wrote: From: Dimitry Andric dimi...@andric.com ... Well, a way to reproduce the problem would be nice. I tried running make buildkernel in a stable/9 tree on a 10.0 machine, and building aicasm went just fine. So it works for me... I think what I did was the following:- 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm And this is what I cannot reproduce. Works just fine, either with or without -j. Have just confirmed this reproduces the issue with a recent head source on 8.3-RELEASE machine. 1. rm -rf /usr/obj 2. make buildkernel KERNCONF=MYCONF -j10 # Fails with:- cc1: warnings being treated as errors aicasm_gram.c:1539: warning: no previous prototype for 'yyparse' 3. make buildworld 4. make buildkernel KERNCONF=MYCONF -j10 # Still fails with:- cc1: warnings being treated as errors aicasm_gram.c:1539: warning: no previous prototype for 'yyparse' Fix is: 1. rm -rf /usr/obj/usr/src/sys/MYCONF 2. make buildkernel KERNCONF=MYCONF -j10 # Now works Regards Steve 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 postmas...@multiplay.co.uk. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
On 2013-05-02 13:55, Steven Hartland wrote: From: Dimitry Andric dimi...@andric.com On 2013-05-02 11:54, Steven Hartland wrote: From: Dimitry Andric dimi...@andric.com ... I think what I did was the following:- 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm And this is what I cannot reproduce. Works just fine, either with or without -j. Have just confirmed this reproduces the issue with a recent head source on 8.3-RELEASE machine. Note this is the other way around; the original poster was talking about building an older 9.0 src on a machine running HEAD. 1. rm -rf /usr/obj 2. make buildkernel KERNCONF=MYCONF -j10 # Fails with:- cc1: warnings being treated as errors aicasm_gram.c:1539: warning: no previous prototype for 'yyparse' Yes, this is because r243906 removed the prototype, since newer versions of yacc generate the prototype for yyparse themselves. Here, lex and yacc should really be (also) built as part of the kernel's bootstrap tools. Currently, they are only part of the bootstrap tools for buildworld, which explains the events below. 3. make buildworld So here the correct versions of lex and yacc are built... 4. make buildkernel KERNCONF=MYCONF -j10 # Still fails with:- cc1: warnings being treated as errors aicasm_gram.c:1539: warning: no previous prototype for 'yyparse' However, since the .c file is newer than the .y file, it does not get regenerated... Fix is: 1. rm -rf /usr/obj/usr/src/sys/MYCONF 2. make buildkernel KERNCONF=MYCONF -j10 # Now works And with this, you have forced regeneration of the aicasm_gram.c file, so now it builds correctly. E.g., I think you might get away with just rm'ing all the generated aicasm*.c files. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 On 05/02/13 00:19, Dimitry Andric wrote: On May 1, 2013, at 18:44, Alfred Perlstein alf...@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? This is because the locale code being a macro: #if defined(__NO_TLS) || defined(__RUNETYPE_INTERNAL) extern const _RuneLocale *__getCurrentRuneLocale(void); #else extern _Thread_local const _RuneLocale *_ThreadRuneLocale; static __inline const _RuneLocale *__getCurrentRuneLocale(void) { if (_ThreadRuneLocale) return _ThreadRuneLocale; if (_CurrentRuneLocale) return _CurrentRuneLocale; return _DefaultRuneLocale; } #endif /* __NO_TLS || __RUNETYPE_INTERNAL */ What really puzzles me is that why the build picks up headers from the running system. Cheers, - -- Xin LI delp...@delphij.nethttps://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -BEGIN PGP SIGNATURE- iQEcBAEBCgAGBQJRgqkDAAoJEG80Jeu8UPuzwvUH/2M+HDzKA9neXXYb6SKzrNX2 DVqw66ygatDj6QqwmMvZvU4+kGLNR6KEOQGNF4f0mMJmfg+GLzDFE5s769J/Be+1 4WMr1luWwgwrYlYhMrA8/CXYUWI2O9mhNfhLQHD8z3lJ6yxJgPy3h9J3jwzmU/W8 p58Dp8raABgKcK9DKE47QSXiiEXHuJUdSJXBPCoEFg09s+PnhrduQ1Vd9vfK9As0 G1HUmn+S/LWxRCB2wzZAC3FjZQHblXEvmfZzxCqUZr5AP3jtlHTHDUtJTCxxclgg sGLmdvqnn6/3BBXIhcxXVka3CKzbuCyIeGCBhTsSbLnuKB+FXbid9ibSrIlFA2s= =vdoK -END PGP SIGNATURE- ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
On Thu, May 02, 2013 at 10:57:23AM -0700, Xin Li wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA512 On 05/02/13 00:19, Dimitry Andric wrote: On May 1, 2013, at 18:44, Alfred Perlstein alf...@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? This is because the locale code being a macro: #if defined(__NO_TLS) || defined(__RUNETYPE_INTERNAL) extern const _RuneLocale *__getCurrentRuneLocale(void); #else extern _Thread_local const _RuneLocale *_ThreadRuneLocale; static __inline const _RuneLocale *__getCurrentRuneLocale(void) { if (_ThreadRuneLocale) return _ThreadRuneLocale; if (_CurrentRuneLocale) return _CurrentRuneLocale; return _DefaultRuneLocale; } #endif /* __NO_TLS || __RUNETYPE_INTERNAL */ What really puzzles me is that why the build picks up headers from the running system. Because the utitily being build is intended to be run on the running system. pgpuuWI9Zum8E.pgp Description: PGP signature
potential future proofing fix for aicasm build.
Hey folks, 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' The issue seems to be two-fold: 1) Paths are not fully set to pick up the bootstrap tools needed to build. 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 Can I get review on this patch? https://gist.github.com/anonymous/5493734 Inline: diff --git a/Makefile.inc1 b/Makefile.inc1 index e850cda..785e3180 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -830,17 +830,18 @@ buildkernel: @echo stage 2.3: build tools @echo -- cd ${KRNLOBJDIR}/${_kernel}; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \ + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS=-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm \ -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile # XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case. .if !defined(MODULES_WITH_WORLD) !defined(NO_MODULES) exists(${KERNSRCDIR}/modules) .for target in obj depend all + @echo aicasm: ${target} cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target} + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS=-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm ${target} .endfor .endif .if !defined(NO_KERNELDEPEND) ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
I don't believe aicasm is actually needed if you don't have a driver which requires e.g. ahd or ahc. It would be good to get that fixed too. Regards Steve - Original Message - From: Alfred Perlstein bri...@mu.org To: hack...@freebsd.org Sent: Wednesday, May 01, 2013 5:46 PM Subject: potential future proofing fix for aicasm build. Hey folks, 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' The issue seems to be two-fold: 1) Paths are not fully set to pick up the bootstrap tools needed to build. 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 Can I get review on this patch? https://gist.github.com/anonymous/5493734 Inline: diff --git a/Makefile.inc1 b/Makefile.inc1 index e850cda..785e3180 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -830,17 +830,18 @@ buildkernel: @echo stage 2.3: build tools @echo -- cd ${KRNLOBJDIR}/${_kernel}; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \ + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS=-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm \ -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile # XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case. .if !defined(MODULES_WITH_WORLD) !defined(NO_MODULES) exists(${KERNSRCDIR}/modules) .for target in obj depend all + @echo aicasm: ${target} cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target} + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS=-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm ${target} .endfor .endif .if !defined(NO_KERNELDEPEND) ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@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 postmas...@multiplay.co.uk. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
On 5/1/13 9:57 AM, Steven Hartland wrote: I don't believe aicasm is actually needed if you don't have a driver which requires e.g. ahd or ahc. It would be good to get that fixed too. True, but a challenge I don't currently have time for. I'm about to kick-off a universe build with my changes in aicasm, but I was hoping someone could tell me if I was going in the right direction here. -Alfred ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
potential future proofing fix for aicasm build.
Hey folks, 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' The issue seems to be two-fold: 1) Paths are not fully set to pick up the bootstrap tools needed to build. 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 Can I get review on this patch? https://gist.github.com/anonymous/5493734 Inline: diff --git a/Makefile.inc1 b/Makefile.inc1 index e850cda..785e3180 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -830,17 +830,18 @@ buildkernel: @echo stage 2.3: build tools @echo -- cd ${KRNLOBJDIR}/${_kernel}; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \ + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS=-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm \ -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile # XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case. .if !defined(MODULES_WITH_WORLD) !defined(NO_MODULES) exists(${KERNSRCDIR}/modules) .for target in obj depend all + @echo aicasm: ${target} cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target} + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS=-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm ${target} .endfor .endif .if !defined(NO_KERNELDEPEND) ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: potential future proofing fix for aicasm build.
On Wed, May 01, 2013 at 09:44:54AM -0700, Alfred Perlstein wrote: Hey folks, 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' The issue seems to be two-fold: 1) Paths are not fully set to pick up the bootstrap tools needed to build. 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 This seems basically ok. Can I get review on this patch? The line wrapping bugs should have been fixed before posting, but it otherwise looks fine. I do wonder why we don't just install aicasm in the base and bootstrap it in the unlikely event that it changes in an important way. A quick scan of svn log suggests that gibbs fixed a bug in mid-2010 and the last non-build system or portability change was circa 2003 so I don't think we'd break old-style kernel builds at a rate worth worrying about. -- Brooks pgpykEQkvJNjQ.pgp Description: PGP signature
Re: potential future proofing fix for aicasm build.
On 5/1/13 2:38 PM, Brooks Davis wrote: On Wed, May 01, 2013 at 09:44:54AM -0700, Alfred Perlstein wrote: Hey folks, 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' The issue seems to be two-fold: 1) Paths are not fully set to pick up the bootstrap tools needed to build. 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 This seems basically ok. Can I get review on this patch? The line wrapping bugs should have been fixed before posting, but it otherwise looks fine. I do wonder why we don't just install aicasm in the base and bootstrap it in the unlikely event that it changes in an important way. A quick scan of svn log suggests that gibbs fixed a bug in mid-2010 and the last non-build system or portability change was circa 2003 so I don't think we'd break old-style kernel builds at a rate worth worrying about. It looks sort of like a shortcut was taken so that changes to the tool can be picked up by a kernel compile instead of needing another step. That was probably convenient at the time, but now is somewhat of a problem. If I have time I will see about moving it to base. Thank you for the review. I will fix the white space and give make universe a whirl now. -Alfred ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org