[prev in list] [next in list] [prev in thread] [next in thread] 

List:       llvm-dev
Subject:    [LLVMdev] Ideas for making llvm-config --cxxflags more useful
From:       tom () stellard ! net
Date:       2015-07-30 20:04:38
Message-ID: 20150730200438.GA10392 () yyz
[Download RAW message or body]

Hi,

My understanding of llvm-config --cxxflags is that it is supposed to report
which flags are necessary to compile a program that will include LLVM's
headers and link against its libraries.  What it currently reports is
all of the flags which were used to compile LLVM.  This is not very useful,
because users are required in most cases to filter out flags they don't
want.

I would like to try to fix this so that it reports only the bare minimum
of required flags.  As an example here all the flags that it reports in
my autoconf build of llvm:

-I/usr/local/llvm/3.8/include
-D_DEBUG
-D_GNU_SOURCE
-D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS
-O3
-fomit-frame-pointer
-std=c++11
-fvisibility-inlines-hidden
-fno-exceptions
-fno-rtti
-fPIC
-ffunction-sections
-fdata-sections
-Wcast-qual

Of these flags the only ones that are really required are (c++ experts
please correct me if I'm wrong here):

-I/usr/local/llvm/3.8/include
-D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS
-std=c++11

Technically the -D__STDC* macros are only required if you include
Support/DataTypes.h, but I think that is hard to avoid.

As I understand, The rest of the flags are not required in 100% of the
use cases.

My proposal for fixing this is to remove everything but the 5 options listed
above.

For flags like -fno-rtti (are there others?) that are required in some cases
(I think -fno-rtti is required only if you sub-class LLVM objects), I would propose
adding a separate flag like --uses-rtti.  This would give users more fine-grained
control over which flags they use, and also would let them choose the correct
flag since, for example, -fno-rtti is not understood by MSVC.

How do people feel about this proposal?

Thanks,
Tom
_______________________________________________
LLVM Developers mailing list
LLVMdev@cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic