Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 May 2013 09:46:41 -0700
From:      Alfred Perlstein <bright@mu.org>
To:        hackers@freebsd.org
Subject:   potential future proofing fix for aicasm build.
Message-ID:  <518146F1.9020609@mu.org>
In-Reply-To: <51814686.2060805@ixsystems.com>
References:  <51814686.2060805@ixsystems.com>

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

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)









Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?518146F1.9020609>