Makoto MATSUSHITA wrote:
> tlambert2> It still breaks. See bsd.orig.mk; you _can't_ use a
> tlambert2> compiler other than one installed in the default location,
> tlambert2> or it will override the compiler defaults which tell it
> tlambert2> where the correct header and crt0 files live. Really.
>
> ???
>
> If you run 'chroot /vol1/FreeBSD /bin/sh', you'll get an environment
> that /vol1/FreeBSD is /; Compiler is in /usr/bin/cc. Headers are in
> /usr/include. Crt* files are in /usr/lib. All files are located as it
> should be.
>
> If it doesn't work as you have said, "make release' also _doesn't_
> work; we cannot make a distribution. Obviously, it's wrong:)
I think you are missing the facts:
o I am using a non-default compiler installation, so
that mu C++ include directory is in /usr/local/include
o DESTDIR is set
o Look in /usr/share/bsd.prog.mk for ".if defined(DESTDIR)";
it overrides my compiler defaults for the values of CFLAGS
and CXXINCLUDES. This makes them _WRONG_:
.if defined(DESTDIR)
CFLAGS+= -I${DESTDIR}/usr/include
CXXINCLUDES+= -I${DESTDIR}/usr/include/g++
.endif
o Look in /usr/share/bsd.lib.mk: it does the same thing:
.if defined(DESTDIR)
CFLAGS+= -I${DESTDIR}/usr/include
CXXINCLUDES+= -I${DESTDIR}/usr/include/g++
.endif
Specifically, you get the _WRONG_ <rtti> and other C++ header
files, which makes exceptions and run time type information
_NOT WORK_.
See also:
http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/mk/bsd.prog.mk?rev=1.86.2.3&content-type=text/x-cvsweb-markup
http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/mk/bsd.lib.mk?rev=1.91.2.1&content-type=text/x-cvsweb-markup
The /usr/include/g++ files are _WRONG_...
The /usr/local/include/g++ are _RIGHT_...
The BSD .mk files insist on using the wrong .mk files; I don't
know how much clearer I can make it?!?
-- Terry
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message