[PATCH] D11963: Create a __config_site file to capture configuration decisions.

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 12 09:00:59 PDT 2015


EricWF added a reviewer: EricWF.
EricWF added a comment.

@jroelofs Thanks for this patch. I've needed this for a while.


================
Comment at: include/__config:19
@@ -18,1 +18,3 @@
+#include <__config_site>
+
 #ifdef __GNUC__
----------------
jroelofs wrote:
> jroelofs wrote:
> > mclow.lists wrote:
> > > espositofulvio wrote:
> > > > mclow.lists wrote:
> > > > > I'm reluctant to do this; because every include file slows down compilation - for every program that we compile.
> > > > > 
> > > > > However, this may be the right thing to do.
> > > > I'm with Jonathan here, having config params dealt with this way it's easier and make things more manageable while the price of a slowdown, I think, shouldn't be substantial.
> > > I just realized that this will complicate life for libc++ developers. Today, I can make a change in the checked-out directory, and test it by using `clang -I <path to libcxx>`.  Now, I'll have to actually build and install the headers some where to test.  [ Especially when testing against an installed compiler whose libc++ does not have a __config_site file ]
> > Another option would be to rename `__config` to `__config.in`, and put the `#cmakedefine` lines in here. Then the include tree isn't changed.
> > Now, I'll have to actually build and install the headers some where to test.
> 
> Just building is sufficient. The headers get copied to the build directory, along with this new file.
> 
> 
> > [ Especially when testing against an installed compiler whose libc++ does not have a __config_site file ]
> 
> Why does your workflow rely on testing libcxx binaries against installed headers from a _different_ build of the library? That seems very dicey.
> Just building is sufficient. The headers get copied to the build directory, along with this new file.

Except in "exceptional" configurations the  `__config_site` file should essentially remain empty. We could put an empty `__config_site` file in the source directory and telling CMake to ignore it. This would prevent the need to rebuild libc++ as frequently for the majority of developers. 

 


http://reviews.llvm.org/D11963





More information about the cfe-commits mailing list