[LLVMdev] Question about circular dependency checker

Talin viridia at gmail.com
Wed Jun 4 00:12:44 PDT 2008

So I decided to bundle up the small amount of work I've done on 
generating source-level debugging info into a DebugInfoBuilder class 
like I described earlier. I went and added a new file to the "Support" 
directory (in include and lib). However, when I try to compile it, it 
complains of a circular dependency error between libCore and libSupport:

    find-cycles.pl: Circular dependency between *.a files:
    find-cycles.pl:   libLLVMCore.a libLLVMSupport.a

The odd part is, that no other file in LLVM even references my header, 
so I'm not sure where the cycle is.

The headers that I am including in my .cpp file are:

    #include <llvm/DerivedTypes.h>
    #include <llvm/Constants.h>
    #include <llvm/GlobalVariable.h>
    #include <llvm/Module.h>
    #include <llvm/CodeGen/MachineModuleInfo.h>
    #include <llvm/Support/Dwarf.h>
    #include <llvm/System/Path.h>

My .h file uses forward declarations for everything and needs no headers 

I need MachineMouleInfo.h to get LLVMDebugVersion, and I use Path to 
split the module directory name from the file name.

Any ideas? Am I going to have to put my .cpp file in some library other 
than Support?

-- Talin

More information about the llvm-dev mailing list