[Libclc-dev] [PATCH] LLVM 3.5 and newer use llvm-config.h instead of config.h

Niels Ole Salscheider niels_ole at salscheider-online.de
Sun Aug 10 02:07:44 PDT 2014


On Saturday 09 August 2014, 18:46:23, Jan Vesely wrote:
> On Sun, 2014-08-10 at 00:17 +0200, Niels Ole Salscheider wrote:
> > On Saturday 09 August 2014, 23:02:37, Jeroen Ketema wrote:
> > > As far as I can tell the current llvm trunk defines both, and config.h
> > > includes llvm-config.h. Is there any particular failure you’re seeing
> > > when
> > > building libclc?
> > 
> > For me the build fails with:
> > 
> > ./utils/prepare-builtins.cpp:13:10: fatal error: 'llvm/Config/config.h'
> > file not found
> > #include "llvm/Config/config.h"
> > 
> >          ^
> > 
> > Makefile:8: recipe for target 'utils/prepare-builtins.o' failed
> > 
> > The CMake-based build system does not install the config.h header anymore
> > since "r210766 - CMake: don't install the internal config.h header".
> 
> ra itno this failure too when I did a clean build.
> 
> > Kind regards,
> > 
> > Ole
> > 
> > > Best,
> > > 
> > >  Jeroen
> > > 
> > > On 09 Aug 2014, at 11:43, Niels Ole Salscheider <niels_ole at salscheider-
> > 
> > online.de> wrote:
> > > > Signed-off-by: Niels Ole Salscheider <niels_ole at salscheider-online.de>
> > > > ---
> > > > configure.py               | 3 +++
> > > > utils/prepare-builtins.cpp | 5 +++++
> > > > 2 files changed, 8 insertions(+)
> > > > 
> > > > diff --git a/configure.py b/configure.py
> > > > index 768a6ad..f28c847 100755
> > > > --- a/configure.py
> > > > +++ b/configure.py
> > > > @@ -73,6 +73,9 @@ llvm_core_libs = llvm_config(['--libs', 'core',
> > > > 'bitreader', 'bitwriter']) + ' '>
> > > > 
> > > >                  llvm_config(['--ldflags'])
> > > > 
> > > > llvm_cxxflags = llvm_config(['--cxxflags']) + ' -fno-exceptions
> > > > -fno-rtti'
> > > > 
> > > > +if (int(llvm_version[0]) == 3 and int(llvm_version[1]) >= 5) or
> > > > int(llvm_version[0]) > 3: +    llvm_cxxflags = llvm_cxxflags + '
> > > > -DLLVM_NEW_CONFIG_INCLUDE'
> > > > +
> > > > llvm_clang = os.path.join(llvm_bindir, 'clang')
> > > > llvm_link = os.path.join(llvm_bindir, 'llvm-link')
> > > > llvm_opt = os.path.join(llvm_bindir, 'opt')
> > > > diff --git a/utils/prepare-builtins.cpp b/utils/prepare-builtins.cpp
> > > > index ce84148..20fcd1b 100644
> > > > --- a/utils/prepare-builtins.cpp
> > > > +++ b/utils/prepare-builtins.cpp
> > > > @@ -10,7 +10,12 @@
> > > > #include "llvm/Support/raw_ostream.h"
> > > > #include "llvm/Support/ErrorOr.h"
> > > > #include "llvm/Support/ToolOutputFile.h"
> > > > +
> > > > +#ifdef LLVM_NEW_CONFIG_INCLUDE
> > > > +#include "llvm/Config/llvm-config.h"
> > > > +#else
> > > > #include "llvm/Config/config.h"
> > > > +#endif
> 
> The conditional define for llvm 3.5+ is few lines down, and it already
> handles few includes. config.h could be handled the same way and you
> don't need the configure.py changes.

Unfortunately, this won't work because LLVM_VERSION_MAJOR and 
LLVM_VERSION_MINOR are defined in config.h and llvm-config.h, respectively...

> > > > #define LLVM_350_AND_NEWER \
> > > > 
> > > >   (LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 &&
> > > >   LLVM_VERSION_MINOR >= 5))
> > 
> > _______________________________________________
> > Libclc-dev mailing list
> > Libclc-dev at pcc.me.uk
> > http://www.pcc.me.uk/cgi-bin/mailman/listinfo/libclc-dev
> 
> --
> Jan Vesely <jan.vesely at rutgers.edu>





More information about the Libclc-dev mailing list