[llvm-dev] Include all the things
Zachary Turner via llvm-dev
llvm-dev at lists.llvm.org
Wed Dec 9 09:58:25 PST 2015
On Wed, Dec 9, 2015 at 7:58 AM David Blaikie <dblaikie at gmail.com> wrote:
> On Wed, Dec 9, 2015 at 7:11 AM, Russell Wallace via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Rather than including llvm header files piecemeal on an ongoing basis,
>> I'm looking for a way to include all such header files once and for all.
>>
>
> That's really going to hurt your compile time, btw... if you're interested
> in building a tool to help here, a tool that uses Clang to find and suggest
> headers to include (or to remove, to keep the include set minimal to avoid
> bloating compile time) would probably be good & I know there are some
> people working on such a thing. But it is more work, of course. (& may
> benefit from/need C++ modules support)
>
>
>> To that end, I wrote a Python script to generate include directives for
>> all .h files in llvm/include and its subdirectories. This almost works, but
>> getting two error messages:
>>
>> In file included from src\main.cpp:1:
>> In file included from src/../llvm.h:254:
>> In file included from
>> \llvm\include\llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h:13:
>> In file included from
>> \llvm\include\llvm/DebugInfo/PDB/IPDBEnumChildren.h:13:
>> \llvm\include\llvm/DebugInfo/PDB/PDBTypes.h(444,3) : error: redefinition
>> of enumerator 'Unknown'
>> Unknown,
>> ^
>> \llvm\include\llvm/CodeGen/CallingConvLower.h(189,16) : note: previous
>> definition is here
>> typedef enum { Unknown, Prologue, Call } ParmContext;
>>
> Try changing PDB_VariantType to be enum class instead of enum. Everything
else in that file is an enum class, it's possible this one just ended up as
an enum by accident.
> ^
>> In file included from src\main.cpp:1:
>> In file included from src/../llvm.h:298:
>> In file included from
>> \llvm\include\llvm/DebugInfo/PDB/DIA/DIADataStream.h:13:
>> \llvm\include\llvm/DebugInfo/PDB/DIA/DIASupport.h(30,10) : fatal error:
>> 'cvconst.h' file not found
>> #include <cvconst.h>
>>
>> Are there known fixes for these, or is there something I should be doing
>> differently?
>>
>
> The first one's probably an outright ODR violation (Zach - perhaps you
> could take a look at that)
>
> The second is probably because you're including a header that's only
> conditionally usable, when you have the right 3rd party package installed
> (at least I assume that's the case - Zach?)
>
> Did we actually install that header onto a system without the package
> available? Or are you pointing your build at an LLVM source tree?
>
I'm not sure how the source tarball works, but did you run CMake yourself
or does the source tarball come with pre-generated CMake build files? It's
only supposed to compile the DIA stuff if it finds DIA is installed on your
machine at CMake gen time.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151209/41884a51/attachment.html>
More information about the llvm-dev
mailing list