[llvm-dev] The clang for centos6 are need GLIBC_2.14, but we only have GLIB 2.12 by default.
Craig, Ben via llvm-dev
llvm-dev at lists.llvm.org
Wed Jun 29 06:57:27 PDT 2016
While it may be possible to jump through some RPATH tricks to use a
libstdc++ that is local to clang, you would still run into lots of
problems with libclang and friends.
C and C++ library packaging is definitely in the top 10 things I dislike
about Linux.
Historically, on Windows, the C and C++ libraries are just regular
libraries that aren't packaged with the OS. They aren't considered OS
components. It's easy to have multiple installations of the C and C++
library (I think this is / has changed recently?).
On Linux libstdc++ is usually packaged with the OS. System
administrators would not like it if a random package upgraded libstdc++
for the entire system. The flat symbol namespace on Linux makes it
difficult to provide multiple versions without breaking significant use
cases.
On 6/29/2016 8:28 AM, Brian Cain via llvm-dev wrote:
> It is possible to statically link against libstdc++, yes. I don't
> quite know all the pieces to the recipe in order to get that to work.
> It would require changes to the release script in order to get those
> configuration changes all the way through the third phase build.
>
> I don't believe any other tarball release does this, so it would at
> least be an unconventional release.
>
> On Wed, Jun 29, 2016 at 3:47 AM, 罗勇刚(Yonggang Luo)
> <luoyonggang at gmail.com <mailto:luoyonggang at gmail.com>> wrote:
>
> Well, is that possible to include libstdc++4.7 into llvm?
>
> On Wed, Jun 29, 2016 at 2:26 AM, Brian Cain <brian.cain at gmail.com
> <mailto:brian.cain at gmail.com>> wrote:
>
> Sorry if I was unclear, I have no problems building clang
> against a newer gcc for my own purpose. But it doesn't make
> sense to provide a release binary for clang that's hosted on
> llvm.org <http://llvm.org> that's ostensibly for "centos6"
> when it would really be bound to "centos6 plus the SCLO mirror
> which has the dependency for a newer libstdc++".
>
> The glibc 2.14 dependency is a result of the binary being
> built on a platform new enough to have libstdc++4.7 or newer.
> You could eliminate it if you could find a CentOS release that
> has libstdc++4.7 and glibc2.12. But ultimately you're still
> stuck with a runtime dependency on libstdc++ shared objects
> that expect newer GLIBCXX_* symbols.
>
> The newer gcc release is only needed at build-time. Its
> byproduct/side effect of bringing with it a newer libstdc++ is
> what creates a runtime dependency.
>
> It's my position that a CentOS 6.0-6.x release binary for
> clang newer than 3.4.2 is not possible unless CentOS team
> backports libstdc++4.7 release to that CentOS release. I'd be
> happy to learn I'm wrong about that claim BTW.
>
> On Tue, Jun 28, 2016 at 1:13 PM, 罗勇刚(Yonggang Luo)
> <luoyonggang at gmail.com <mailto:luoyonggang at gmail.com>> wrote:
>
> Hell, Brian, I found a way to install Gcc 5.3 on CentOS 6
> without the need to building it from source. You may try
> it on CentOS 6.0
> That's makes clang/llvm won't depends on the newer version
> of glibc 2.14
> The instruction:
>
> vim /etc/yum.repos.d/llvm.repo
>
> The content:
> ```
> [sclo]
> name=SCLO
> baseurl=http://mirror.centos.org/centos/6/sclo/x86_64/rh/
> gpgcheck=0
> enabled=1
> ```
> Installation step:
> ```
> yum clean all
> yum list
> echo y | yum install devtoolset-4
> ```
>
>
> On Wed, Jun 29, 2016 at 1:15 AM, Brian Cain
> <brian.cain at gmail.com <mailto:brian.cain at gmail.com>> wrote:
>
> On Tue, Jun 28, 2016 at 11:50 AM, 罗勇刚(Yonggang Luo)
> <luoyonggang at gmail.com <mailto:luoyonggang at gmail.com>>
> wrote:
>
> So CentOS before 6.7 is not an option after all?
> Is that possible to use clang on CentOS 6.6 and
> before?
>
>
> Not with these binaries, unless you can update your
> libc/libstdc++. In the general sense -- yes, it's
> possible if you build from source. There's a couple
> of potential approaches: build against libc++, build
> against newer libstdc++. If you're more adventurous
> you could also try building with ellcc. That one
> requires patches but will yield a statically linked
> binary.
>
> I built clang trunk/tip a few weeks ago on CentOS
> 6.0. But I first built the gcc6 suite, then used it
> to build clang. I believe clang 3.4.2 is the latest
> version that supports the older libstdc++. I ran into
> challenges with using clang so I stuck with gcc6. The
> resulting binaries depend on the gcc6 libraries so I
> can't really use this procedure to make a new official
> release for centos. If it's helpful I can publish the
> steps I used, but really just followed the build
> instructions.
>
> -Brian
>
>
>
>
> --
> 此致
> 礼
> 罗勇刚
> Yours
> sincerely,
> Yonggang Luo
>
>
>
>
> --
> -Brian
>
>
>
>
> --
> 此致
> 礼
> 罗勇刚
> Yours
> sincerely,
> Yonggang Luo
>
>
>
>
> --
> -Brian
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160629/b3d89f73/attachment.html>
More information about the llvm-dev
mailing list