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

mats petersson via cfe-dev cfe-dev at lists.llvm.org
Thu Sep 24 10:26:24 PDT 2015


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150924/b5c034cc/attachment.html>


More information about the cfe-dev mailing list