[cfe-dev] 3.6.2-rc1 has been tagged. Testers needed.
Ben Pope
benpope81 at gmail.com
Mon Jul 6 20:49:47 PDT 2015
On Tuesday, July 07, 2015 11:35 AM, Dan Liew wrote:
> 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?
OK, I'll have a look, but it will have to be later.
>>> 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...
>
> - When you ran ``make install`` from the root of the build tree the
> CMake files are not installed into ``share/llvm/cmake``.
> - After trying the above you ran ``make install`` in the
> ``cmake/modules`` directory in the build tree and the CMake files were
> installed to ``share/llvm/cmake``
>
> ?
>
>> 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.
Sorry. After I ran test-release, I didn't have the share/llvm/cmake
directory. When I ran make install from the root of the build
directory, I got that directory and files.
It looks like it touched the .a and .so files, but I don't think new
ones were created.
Ben
More information about the cfe-dev
mailing list