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>