Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Jul 2012 14:44:59 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        David Chisnall <theraven@FreeBSD.org>
Cc:        toolchain@FreeBSD.org, Andriy Gapon <avg@FreeBSD.org>
Subject:   Re: gcc46 header search path
Message-ID:  <E3F8219C-EF7F-4AB5-A00B-5BD251ECEFFE@bsdimp.com>
In-Reply-To: <714BF622-A1B3-4A4A-A8BC-DCA82B4434A2@FreeBSD.org>
References:  <4FF60A9E.5070503@FreeBSD.org> <4FF6DB51.40904@FreeBSD.org> <508B8B4E-DF5E-412B-BD2B-86F21EBF4C8C@bsdimp.com> <4FF700CF.2000206@FreeBSD.org> <1DED79CC-CACD-4D22-9F1F-E3EB17938EB6@bsdimp.com> <4FF7182A.9070803@FreeBSD.org> <714BF622-A1B3-4A4A-A8BC-DCA82B4434A2@FreeBSD.org>

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

On Jul 6, 2012, at 1:11 PM, David Chisnall wrote:

> On 6 Jul 2012, at 17:54, Andriy Gapon wrote:
>=20
>> Yeah.  Honestly speaking I myself was not aware of what is written in =
that link
>> and I thought that our gcc ports (from ports) added =
/usr/local/include to the
>> default search path by some mistake.  And if somebody asked me what I =
thought
>> about the idea of adding /usr/local/include to the default path, I'd =
say that it
>> was a stupid idea.
>=20
> Why?  The number one question I get from developers new FreeBSD is 'I =
wanted to use libfoo from ports, I stalled it, and now [gcc,clang] =
doesn't find the headers, why not?'  No one has yet provided me with a =
sane reason why our system compiler would not look in the standard =
locations where we install headers and libraries.

Because they aren't standard locations.  Or at least didn't used to be =
standard locations.  At this point, I'd say it is likely better to =
include the new path than not, since it has become standard since =
FreeBSD started tracking gcc.

>  Running configure scripts on FreeBSD is a colossal pain because of =
this - you often need to explicitly say =
-with-foo-include=3D/usr/local/include -with-foo-lib=3D/usr/local/lib =
for an arbitrary number of values of foo, depending on the library.
>=20
> Please, please, please, can we put our standard library and header =
paths in the compiler standard header or library paths, or can someone =
give me a good reason other than 'it's a stupid idea' why we should =
force every single program that anyone compiles on FreeBSD to do =
CFLAGS=3D-I/usr/local/include LDFLAGS=3D-L/usr/local/lib?

The reasons are that /usr/local/include superceds anything in =
/usr/include.  This is dangerous.  Users should get just the system =
default libraries and headers when they compile unless they ask for =
more.  That's what makes it stupid.

However, regardless of my opinion, I think this may be a case where the =
avalanche has started, and it is too late for the snow flakes to vote.

Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E3F8219C-EF7F-4AB5-A00B-5BD251ECEFFE>