[LLVMdev] [cfe-dev] 3.6.2-rc1 has been tagged. Testers needed. (original) (raw)

Dan Liew dan at su-root.co.uk
Mon Jul 6 20:35:05 PDT 2015


Hi Ben,

Thanks for taking the time to look at this.

It's not necessary for CMake to be installed when building with the Autoconf/Makefile build system. If you look in the build directory after a build has been performed you should see in cmake/modules

```_ _LLVMBuildExports.cmake LLVMConfig.cmake LLVMConfigVersion.cmake_ _LLVMExports.cmake Makefile_ _```` I have these for the test-release build, but only in the *.obj directory, not the install directory.

Okay. So that means the files are being generated during the build but not installed for some reason

The LLVMConfig.cmake and LLVMConfigExports.cmake file are generated by the build in this directory and are later installed (along with a bunch of other files). When I do a build of LLVM on Arch Linux and install it in the install directory there is a share/llvm/cmake/ directory and it contains the following files (this is LLVM trunk rather than 3.6.2 but it should be very similar).

_ _AddLLVM.cmake AddOCaml.cmake ChooseMSVCCRT.cmake_ _FindOCaml.cmake GetSVN.cmake HandleLLVMStdlib.cmake_ _LLVMConfig.cmake LLVMExports.cmake TableGen.cmake_ _AddLLVMDefinitions.cmake AddSphinxTarget.cmake CrossCompile.cmake_ _FindSphinx.cmake HandleLLVMOptions.cmake LLVM-Config.cmake_ _LLVMConfigVersion.cmake LLVMProcessSources.cmake_ _ I have these in the install directory of my cmake based trunk build.

Yes those will definitely existing if you build LLVM using the CMake build system but since LLVM 3.5 the Autoconf/Makefile build system also generates and installs CMake files into the LLVM install tree. Perhaps you could do a clean build of LLVM using the Autoconf/Makefile build system outside of your chroot to see if there's something about your chroot environment causing the problem?

You're going to have to do some debugging on your end because I cannot reproduce what ends up your tarball. I guess a first step would be to try building LLVM in your chroot but outside of the test-release.sh script. You could then try...

1. After doing a complete build have the cmake/modules/LLVMConfig.cmake and cmake/modules/LLVMExports.cmake files been generated in the build directory? If the CMake files are missing if you run make in the cmake/modules/ directory the files should be generated. Running this manually should not be necessary though, it should happen automatically. SIDENOTE: After doing an initial configure the cmake/modules directory (and it's corresponding Makefile) will not exist if the build is out of source. The directory and the makefile will exist after doing a successful build. Yeah, I have those.

Okay and those existed after a build without you needing to run make inside the cmake/modules/ directory in the build tree?

2. Assuming the cmake/modules/LLVMConfig.cmake and cmake/modules/LLVMExports.cmake files were generated in the previous step, what happens when you run make install in the cmake/modules directory? Do the files actually get installed? Now I have the share/llvm/cmake directory with 18 files.

Okay so I am right in understanding that after completing a build...

?

In fact, I ran install from the root of the build directory and not a load of .a and a few .so files appeared in *.install/lib

I don't quite understand what you mean. Could you explain that again? Are you saying that you ran make install again in the root of the build tree and additional libraries were installed?

If so that doesn't good. Sounds like a bug.

@Eric : Have you ever seen anything like this before?

Thanks, Dan.



More information about the llvm-dev mailing list