[cfe-dev] Best low (no?) prerequisite user-directory install method for Clang/libc++?

Mehmet Erol Sanliturk via cfe-dev cfe-dev at lists.llvm.org
Thu Sep 24 12:36:14 PDT 2015

On Thu, Sep 24, 2015 at 10:36 AM, mats petersson via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> It does look like the prebuilt binary (at least for Fedora 22) has a
> libc++ as part of the binary.
> --
> Mats

In prebuilt binary for Fedora , root accessible directories used , but you
can extract it into a user directory , and by using environment variables ,
you may use its binaries to compile your LLVM sources .

I think , you can do the same thing in other BSD/Linux operating systems
also ( if it does not reject to expand tar ball due to in accessible
directory use ) .
I could expand it in Fedora into a user directory .

Another step may be to use an independent computer to download and compile
LLVM sources , and copy obtained binaries to a CD/DVD/USB stick and give it
to the your workers to copy it into their own directories .

It is not necessary for everyone to download and compile LLVM one by one .

Only operating system kinds are sufficient to compile LLVM  .

Mehmet Erol Sanliturk

> On 24 September 2015 at 18:26, mats petersson <mats at planetcatfish.com>
> wrote:
>> Assuming you use cmake, you can/should use the
>> -DCMAKE_INSTALL_PREFIX=someplace-you-want-to-install. I use this for my
>> debug builds of clang + llvm, and it works just as you'd expect (I happened
>> to pick a /usr/local/llvm-debug directory, so I still need `sudo make
>> install` to install it, but it will work similarly using "../blah", from
>> the build directory). I'm reasonably sure you need to build your own
>> version of clang to install in "non-standard location".
>> Of course, if you have an older version of gcc than 4.7 (or clang
>> 3.5-ish), you'll need to do something about that FIRST. You can specify
>> what compiler to build llvm and clang with using the `CC=...` and `CXX=...`
>> enviornment variables before running cmake. Unfortunately, I don't think
>> you can avoid installing a more moden gcc or clang version before compiling
>> the current clang sources, and perhaps also install new C++ library
>> components - whether that means building your own or simply installing it
>> from some arbitrary "ready to use" place depends largely on your choice of
>> OS distribution and what that distribution has available in form of "later
>> versions". Since version 3.5(ish), Clang requires a compiler that is C++11
>> capable (we had exactly this problem where I work some time back).
>> It may be a decent idea to install on a single user's account, and just
>> let everyone else use `~jsmith/llvm/bin` in their path, rather than
>> distributing the compiler into lots of people's home directories.
>> Sorry, I don't have a "simple recipe".
>> --
>> Mats
>> On 24 September 2015 at 18:02, Rocco Moretti via cfe-dev <
>> cfe-dev at lists.llvm.org> wrote:
>>> Hello,
>>> What is the best method for installing Clang (and the corresponding
>>> libc++) to a user's home directory on a *nix-like OS, with the minimal
>>> assumptions about the state of the rest of the operating system and what's
>>> already installed?
>>> I ask because we want to incorporate C++11 features into our codebase,
>>> but our users often don't have administrative control over the systems they
>>> use. These systems may be computational clusters which were built several
>>> years ago and haven't had major updates since, so the default compilers on
>>> these systems are often old (e.g. gcc 4.4 or even 4.1). Getting the
>>> administrators to install an updated compiler may or may not be feasible.
>>> So as a backup, I'm looking into the possibility of having our users (who
>>> may have very limited *nix experience) install an updated compiler in their
>>> home directory. (Again, on a machine where they don't have administrator
>>> access.)
>>> Is there an easy way to install Clang in a user directory when the
>>> system version of the compiler tool-chain may be very out of date? I
>>> noticed the pre-built binaries on http://llvm.org/releases/download.html,
>>> but there's not much instruction on how to use these, and I'm a little
>>> unclear how "self-contained" these are and if they include the libc++
>>> library. (Updating the compiler to support C++11 is only minimally helpful
>>> if the standard library used has no C++11 support.)
>>> If possible, I'd like to avoid complex installation procedures, like a
>>> recent experience I had installing Clang 3.7 on Ubuntu 12.04, where in
>>> order to compile Clang from source, it turned out I needed to download and
>>> compile a recent gcc from source first.
>>> At this point we're just looking for C++11 compiler and standard library
>>> support, so the ability to install even a slightly older version of
>>> clang/libc++ (anything since 3.3, as I read things) should help.
>>> Thanks,
>>> -Rocco
>>> P.S. I apologize if this is the wrong mailing list for this -
>>> http://clang.llvm.org/get_involved.html indicated this is the list for
>>> general Clang-related questions.
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150924/3995c578/attachment.html>

More information about the cfe-dev mailing list