Search code examples
macoscompiler-constructionenvironment-variablesllvm

setting environment variables for LLVM on OS X


I am learning to build a compiler using LLVM as back end.

I followed the steps on getting started with the LLVM system until setting up your environment

What is the specific location for [/path/to/your/bitcode/libs] ?

Was this mistake cause the command not found when I type in lli in a Terminal?

//I am trying to build a hello world to see through the total compiling procedure


Solution

  • You can put LLVM_LIB_SEARCH_PATH wherever you want. For now, you probably don't need to worry about it at all; as the documentation says, it is optional. Later, you may create bitcode (i.e. compiled VM code) functions which you would like to link into the bitcode your compiler produces. For example, you may need to create some kind of standard library and runtime environment for your executables.

    That has nothing to do with the lli not found error, which is the result of the LLVM binaries either not having been installed, or having been installed somewhere which is not in your $PATH.

    By default, the llvm package will configure itself for installation under the prefix /usr/local, which means that after you gmake install you should find lli and friends in places like /usr/local/bin/lli. That may or may not be in your $PATH; to find out, type

    echo "$PATH"
    

    and see if it has :/usr/local/bin: somewhere in it. If it doesn't, then you could change your PATH:

    export PATH="/usr/local/bin:$PATH"
    

    To make that permanent, you'll have to add it to your bash startup files.

    But you might not want it to be installed there. I usually install software I'm playing with in my local directory tree, so that I don't have to sudo all the time. You can change the root of the installation directory tree with the --prefix argument to ./configure. (You have to do that before you build LLVM.) ./configure --help will provide some more information about configure options, but --prefix is certainly the most important one.

    Whatever you do, don't do it blindly. Make sure you understand what this all means before doing it. If you plan on making a compiler, you'll need to understand some of the details of a typical build- and runtime- environment; PATH and configure scripts are on the unfortunately long list of things you should at least be somewhat familiar with.

    As I understand it, some version of LLVM is already installed on Mac OS X, so you'll need to be careful that your installation doesn't interfere. The fact that bash is report that lli can't be found probably indicates that not all the tools are installed, which will make things less complicated.

    I'm afraid that I don't really have any experience with installing LLVM on a Mac, but if you run into specific problems (like "my compiler doesn't work after I install LLVM") then you could ask a specific question with appropriate tags.