[cfe-dev] [3.5 Release] Release Candidate 1 Sources and Binaries Available

Larry Evans cppljevans at suddenlink.net
Tue Jul 29 11:07:54 PDT 2014


On 07/29/2014 09:16 AM, Ben Pope wrote:
> On Tuesday, July 29, 2014 09:32 PM, Larry Evans wrote:
>> On 07/29/2014 08:09 AM, Larry Evans wrote:
>>> On 07/23/2014 02:05 AM, Bill Wendling wrote:
>>>> The binaries are coming in from our testers. There are also sources,
>>>> so you can compile them yourselves. Please visit this webpage and
>>>> try out the binaries! File PRs for any issues you found. (Please CC
>>>> me on the PR and mark it as a release blocker.)
>>>>
>>>>     http://llvm.org/pre-releases/3.5/
>>>>
>>>> -bw
>>>>
>>>>
>>> Hi Bill,
>>>
>>> I downloaded:
>>>
>>>
>>> http://llvm.org/pre-releases/3.5/rc1/cfe.src-3.5rc1.src.tar.gz
>>> http://llvm.org/pre-releases/3.5/rc1/llvm.src-3.5rc1.src.tar.gz
>>> http://llvm.org/pre-releases/3.5/rc1/compiler-rt.src-3.5rc1.src.tar.gz
>>>
>>> as well as the .sig files.  The signatures all checked.
>>>
>>> I then unzipped and untarred all.  Then, noting there were symlinks:
>>>
>>> ~/dwnlds/llvm/3.5rc1 $ ls -ld llvm.src/tools/clang
>>> lrwxrwxrwx   1 evansl         evansl         13 2014-07-22 21:19
>>> llvm.src/tools/clang -> ../../cfe.src
>>> ~/dwnlds/llvm/3.5rc1 $ ls -ld llvm.src/projects/compiler-rt
>>> lrwxrwxrwx   1 evansl         evansl         21 2014-07-22 21:19
>>> llvm.src/projects/compiler-rt -> ../../compiler-rt.src
>>> ~/dwnlds/llvm/3.5rc1 $
>>>
>>> I figured all I needed to do was the:
>>>
>>>    Building Clang and Working with the Code
>>>    On Unix-like Systems
>>>    6. Build LLVM and Clang:
>>>
>>> step as documented here:
>>>
>>>    http://clang.llvm.org/get_started.html
>>>
>>> However, when make was run, I got:
>>>
>>> make[1]: Entering directory
>>> `/home/evansl/dwnlds/llvm/3.5rc1/build/lib/IR'
>>> llvm[1]: Building Intrinsics.gen.tmp from Intrinsics.td
>>> /home/evansl/dwnlds/llvm/3.5rc1/build/Release+Asserts/bin/llvm-tblgen:
>>> /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not
>>> found (required by
>>> /home/evansl/dwnlds/llvm/3.5rc1/build/Release+Asserts/bin/llvm-tblgen)
>>> make[1]: ***
>>> [/home/evansl/dwnlds/llvm/3.5rc1/build/lib/IR/Release+Asserts/Intrinsics.gen.tmp]
>>>
>>> Error 1
>>> make[1]: Leaving directory
>>> `/home/evansl/dwnlds/llvm/3.5rc1/build/lib/IR'
>>> make: *** [all] Error 1
>>> Tue Jul 29 07:45:47 2014
>>>
>>> I've got the missing GLIBCXX; however, instead of being in /usr/lib,
>>> it's in /usr/local/lib*:
>>>
>>> /usr/local/lib64 $ strings libstdc++.so.6.0.20|grep GLIBCXX
>>> GLIBCXX_3.4
>>> GLIBCXX_3.4.1
>>> GLIBCXX_3.4.2
>>> GLIBCXX_3.4.3
>>> GLIBCXX_3.4.4
>>> GLIBCXX_3.4.5
>>> GLIBCXX_3.4.6
>>> GLIBCXX_3.4.7
>>> GLIBCXX_3.4.8
>>> GLIBCXX_3.4.9
>>> GLIBCXX_3.4.10
>>> GLIBCXX_3.4.11
>>> GLIBCXX_3.4.12
>>> GLIBCXX_3.4.13
>>> GLIBCXX_3.4.14
>>> GLIBCXX_3.4.15
>>> GLIBCXX_3.4.16
>>> GLIBCXX_3.4.17
>>> GLIBCXX_3.4.18
>>> GLIBCXX_3.4.19
>>> GLIBCXX_3.4.20
>>> GLIBCXX_DEBUG_MESSAGE_LENGTH
>>> /usr/local/lib64 $
>>>
>>> Is there something I should pass to the configure call to make the build
>>> step look in the right place for GLIBCXX_3.4.20?
>>>
>>> My operating system is ubuntu 14.04LTS:
>>>
>>> uname -a
>>> Linux lje-OptiPlex-9020 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15
>>> 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
>>>
>>>
>>> TIA.
>>>
>>> -regards,
>>> Larry
>>>
>> Setting LD_LIBRARY_PATH environment variable got me past that problem:
>>
>> -*- mode: compilation; default-directory: "~/dwnlds/llvm/3.5rc1/" -*-
>> Compilation started at Tue Jul 29 08:27:20
>>
>> make -f my.mk
>> LD_LIBRARY_PATH=/usr/local/lib64 make --directory=./build
>> make[1]: Entering directory `/home/evansl/dwnlds/llvm/3.5rc1/build'
>> make[2]: Entering directory
>> `/home/evansl/dwnlds/llvm/3.5rc1/build/lib/Support'
>> make[2]: Nothing to be done for `all'.
>> ..
>> ..
>> ..
>> make[2]: Entering directory
>> `/home/evansl/dwnlds/llvm/3.5rc1/build/lib/IR'
>> llvm[2]: Building Intrinsics.gen.tmp from Intrinsics.td
>> llvm[2]: Updated Intrinsics.gen because Intrinsics.gen.tmp changed
>> significantly.
>> llvm[2]: Compiling AsmWriter.cpp for Release+Asserts build
>> llvm[2]: Compiling Attributes.cpp for Release+Asserts build
>> ..
>> ..
>> ..
>>
>>
>> Still, it would be nice to know what to pass to configure
>> so that one wouldn't have to set LD_LIBRARY_PATH.
> 
> My guess is you're building with g++-4.9, so:
> 
> CC=gcc-4.8 CXX=g++-4.8 ./configure <stuff>
> 
> Ben
Yes:

~/dwnlds/llvm/3.5rc1 $ which gcc
/usr/local/bin/gcc
~/dwnlds/llvm/3.5rc1 $ gcc --version
gcc (GCC) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

~/dwnlds/llvm/3.5rc1 $ /usr/bin/gcc --version
gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

~/dwnlds/llvm/3.5rc1 $

So, using the gcc defined in /usr/local/bin, caused some object
fields to require the GLIBCXX in /usr/local/lib64; however,
the clang Makefiles only made provision for looking in /usr/lib64?
And changing the CC to /usr/bin/gcc would then cause the object
files to require the GLIBCXX in /usr/lib64, and that's what
the clang Makefiles expect?  Is that how it works?
Just trying understand what's going on :(

Thank for the help.

-regards,
Larry

to und




More information about the cfe-dev mailing list