Date: Mon, 11 Mar 2002 15:09:27 +0200 From: Ruslan Ermilov <ru@freebsd.org> To: Luigi Rizzo <rizzo@icir.org>, "George V. Neville-Neil" <gnn@neville-neil.com> Cc: current@freebsd.org Subject: Re: can someone explain this change to bsd.lib.mk ? Message-ID: <20020311130927.GB4678@sunbay.com> In-Reply-To: <20020308111346.A12303@iguana.icir.org> References: <20020308111346.A12303@iguana.icir.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Mar 08, 2002 at 11:13:46AM -0800, Luigi Rizzo wrote:
> The attached portion of the 1.100 -> 1.101 patch to src/share/mk/bsd.lib.mk
> (and a similar one in bsd.prog.mk 1.103 -> 1.104) broke cross builds
> of PicoBSD, specifically preventing the cross-environment header
> files to be found when building libraries/programs. You can reproduce
> this by doing
>
> picobsd --src HEAD/src --init -n -v
>
> on a recently cvsupped HEAD tree.
>
> I wonder, how does a "make world" get around this problem
> (so i can try to reproduce the 'fix' in the picobsd script) ?
>
> @@ -37,11 +37,6 @@ SHLIB_NAME?= lib${LIB}.so.${SHLIB_MAJOR}
> .endif
> .endif
>
> -.if defined(DESTDIR) && !defined(BOOTSTRAPPING)
> -CFLAGS+= -I${DESTDIR}/usr/include
> -CXXINCLUDES+= -I${DESTDIR}/usr/include/g++
> -.endif
> -
> .if defined(DEBUG_FLAGS)
> CFLAGS+= ${DEBUG_FLAGS}
> .endif
DESTDIR has been abused for build purposes for a long time while, by design,
it should have only affected the installation. `buildworld' builds special
(cross) versions of compiler and tools that look things up under TOOLS_PREFIX.
As indicated in the commitlog for a relevant change to Makefile.inc1,v 1.240:
: (Attempt to move the "-nostdinc -I..." part of CFLAGS into the new CINCLUDES
: (modeled after a similar CXXINCLUDES) eventually failed because hard-coding
: ${WORLDTMP}/usr/include to be the first in the include list does not always
: work, e.g. lib/libbind.)
Because building of special versions of compiler and tools may not be easy
in picobsd, the following patch works around the problem in libbind and
should make things happy again:
Index: release/picobsd/build/picobsd
===================================================================
RCS file: /home/ncvs/src/release/picobsd/build/picobsd,v
retrieving revision 1.22
diff -u -p -r1.22 picobsd
--- release/picobsd/build/picobsd 8 Mar 2002 02:24:21 -0000 1.22
+++ release/picobsd/build/picobsd 11 Mar 2002 12:29:38 -0000
@@ -151,15 +151,15 @@ create_includes_and_libraries() {
mkdir -p ${l_usrtree}/share/misc # a few things go here
mkdir -p ${l_usrtree}/lib # libraries
mkdir -p ${l_usrtree}/sbin # some binaries
- (cd ${SRC}; INCOWN=`id -un` BINOWN=`id -un` DESTDIR=${SRC}/.. \
+ (cd ${SRC}; INCOWN=`id -un` BINOWN=`id -un` DESTDIR=${l_usrtree}/.. \
make -m ${SRC}/share/mk includes ) || fail $? includes
- # libraries already have the include path in the Makefile
- CFLAGS="-nostdinc" ; export CFLAGS
+ # Pick up the correct headers for libraries.
+ CFLAGS="-nostdinc -I${l_usrtree}/include" ; export CFLAGS
(cd ${SRC}
# $e is the invocation of make with correct environment
e="MAKEOBJDIRPREFIX=${l_objtree}/picobsd/libraries \
- INCOWN=`id -un` BINOWN=`id -un` DESTDIR=${SRC}/.. \
+ INCOWN=`id -un` BINOWN=`id -un` DESTDIR=${l_usrtree}/.. \
make -m ${SRC}/share/mk \
-DNOHTML -DNOINFO -DNOMAN -DNOSHARE -DNOFSCHG "
# need to 'make obj' in a few places. This is very
Index: lib/libbind/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libbind/Makefile,v
retrieving revision 1.5
diff -u -p -r1.5 Makefile
--- lib/libbind/Makefile 30 Nov 1999 04:40:54 -0000 1.5
+++ lib/libbind/Makefile 11 Mar 2002 12:29:38 -0000
@@ -2,9 +2,6 @@
BIND_DIR=${.CURDIR}/../../contrib/bind
-# contrib/bind/include/* must not override any real system includes
-CFLAGS+= -I${BIND_DIR}/port/freebsd/include -I${BIND_DIR}/include
-
LIB= bind
WANT_IRS= for now
@@ -86,3 +83,6 @@ NOPIC= true
INTERNALSTATICLIB= true
.include <bsd.lib.mk>
+
+# XXX contrib/bind/include/* must not override any real system includes
+CFLAGS:= -I${BIND_DIR}/port/freebsd/include -I${BIND_DIR}/include ${CFLAGS}
Cheers,
--
Ruslan Ermilov Sysadmin and DBA,
ru@sunbay.com Sunbay Software AG,
ru@FreeBSD.org FreeBSD committer,
+380.652.512.251 Simferopol, Ukraine
http://www.FreeBSD.org The Power To Serve
http://www.oracle.com Enabling The Information Age
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020311130927.GB4678>
