Re: potential future proofing fix for aicasm build.

2013-05-02 Thread Dimitry Andric
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.

2013-05-02 Thread Steven Hartland

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.

2013-05-02 Thread Dimitry Andric

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.

2013-05-02 Thread Steven Hartland
- 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.

2013-05-02 Thread Dimitry Andric

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.

2013-05-02 Thread Steven Hartland
- 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.

2013-05-02 Thread Dimitry Andric

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.

2013-05-02 Thread Xin Li
-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.

2013-05-02 Thread Konstantin Belousov
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.

2013-05-01 Thread Alfred Perlstein


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.

2013-05-01 Thread Steven Hartland

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.

2013-05-01 Thread Alfred Perlstein

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.

2013-05-01 Thread Alfred Perlstein

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.

2013-05-01 Thread Brooks Davis
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.

2013-05-01 Thread Alfred Perlstein

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