[LLVMdev] [cfe-dev] 3.6.2-rc1 has been tagged. Testers needed.

Dan Liew
Mon, 06 Jul 2015 19:45:46 -0000

On 6 July 2015 at 10:34, Ben Pope <benpope81 at gmail.com>
wrote:
> On 7 July 2015 at 01:12, Dan Liew <dan at su-root.co.uk> wrote:
>>
>>
>> @Ben Pope: Your uploaded binary tarball is the odd one out. Any idea
>> as to why the CMake files are missing and why the root directory name
>> inside the tarball is not consistent with the uploaded tarballs for
>> other platforms?
>>
>> [1]
>>
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150629/285597.html
>
>
> Well, I rename the tarball to include the distro, should I be attacking
that
> by passing an argument to the test-release script?

AFAICT from reading ``test-release.sh`` the value passed to the
``-triple`` option controls the tarball name **ONLY**,
``-build-triple`` actually controls the target triple passed to the
configure script. I think that's kind of confusing, ``-triple``
probably ought to be called something like ``-tarballsuffix``.

So I guess when you run ``test-release.sh`` you should pass ``-triple
x86_64-linux-gnu-ubuntu-14.04`` instead of  ``-triple
x86_64-linux-gnu``.

> No idea why the cmake files aren't being packaged, I build in a pretty
basic
> chroot, should cmake be installed there?

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
````

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
```

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.

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?

Thanks,
Dan.