Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

llvm 3.6.1 failure with python llvmlite install. #41320

Closed
defjaf opened this issue Jul 3, 2015 · 9 comments
Closed

llvm 3.6.1 failure with python llvmlite install. #41320

defjaf opened this issue Jul 3, 2015 · 9 comments

Comments

@defjaf
Copy link

defjaf commented Jul 3, 2015

When I try to install (via pip) the latest version of the python package llvmlite 0.6.0 with homebrew llvm 3.6.1, after setting LLVM_CONFIG=/usr/local/Cellar/llvm/3.6.1/bin/llvm-config I get the following error:

    initfini.cpp:9:10: fatal error: 'llvm/Config/config.h' file not found
    #include "llvm/Config/config.h"

It appears that /usr/local/Cellar/llvm/3.6.1/include/llvm/Config/llvm-config.h exists, but not config.h. This can be fixed with a soft link in that Cellar directory, but I don't know if this an error in the homebrew installation/formula for llvm, or the initfini.cpp in the llvmlite python package (this error is reported there, too.)

@DomT4
Copy link
Member

DomT4 commented Jul 3, 2015

It exists in the llvm36 formula in Versions:

/usr/local/Cellar/llvm36/3.6.1/lib/llvm-3.6/include/clang/Config/config.h
/usr/local/Cellar/llvm36/3.6.1/lib/llvm-3.6/include/llvm/Config/config.h
/usr/local/Cellar/llvm36/3.6.1/lib/llvm-3.6/include/llvm/Config/llvm-config.h
/usr/local/Cellar/llvm36/3.6.1/lib/llvm-3.6/include/polly/Config/config.h

The differences between LLVM36 in Versions and the LLVM in core are:

  • Python bindings are built by default
  • Clang is built by default
  • The build still uses configure rather than CMake.

One of those variables is likely to be the difference.

@pitrou
Copy link

pitrou commented Jul 4, 2015

I'm almost 100% sure this is due to cmake vs. configure.

@DomT4
Copy link
Member

DomT4 commented Jul 4, 2015

CC @tamird

@tamird
Copy link
Contributor

tamird commented Jul 5, 2015

OK, I've got to the bottom of this. TL;DR: use llvm-config.h; config.h is never supposed to be present in LLVM distributions.

Specifically llvm-mirror/llvm@90c2949#diff-b67911656ef5d18c4ae36cb6741b7965R30 added an intentional deletion of config.h at distribution time. Since LLVM has pretty much abandoned non-cmake builds, it's probably just a bug that config.h survives to the end of the build.

I would close this issue; numba/llvmlite#76 should be fixed appropriately.

@pitrou
Copy link

pitrou commented Jul 6, 2015

The issue is now fixed in the llvmlite repo.

@DomT4
Copy link
Member

DomT4 commented Jul 6, 2015

@pitrou Any timetable on cutting a new release? No pressure; we can backport the fix otherwise, but I don't want to tee up a backport PR here if there's a release imminent.

@pitrou
Copy link

pitrou commented Jul 6, 2015

We usually sync llvmlite and numba releases, so probably a month and a half from now. Thought if there are other bugs we could cut a release earlier.

@DomT4
Copy link
Member

DomT4 commented Jul 6, 2015

Cool. Will backport that shortly then. Thanks for the quick fix!

@DomT4
Copy link
Member

DomT4 commented Jul 6, 2015

Oh, It's not something we package. Alright, off I go to drink more ☕ and actually wake up my brain. Closing as fixed upstream.

@DomT4 DomT4 closed this as completed Jul 6, 2015
@Homebrew Homebrew locked and limited conversation to collaborators Jul 10, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants