[LLVMdev] README: Build Environment Changes

Jeff Cohen jeffc at jolt-lang.org
Tue Dec 21 22:35:14 PST 2004

Starting a FreeBSD build now...

Reid Spencer wrote:

>If you're not working from the CVS "head", you can ignore this.
>Otherwise, please read it!
>I have committed changes to CVS head that require changes to your build
>environment. This is part of PR432. The changes involve getting the CFE
>to build an executable named llvm-gcc instead of gcc. The hyphenated
>name was chosen to be consistent with other LLVM tools, it is also
>needed on some platforms so that llvm-nm can be found in the path when
>the CFE is configuring the libstdc++ (don't ask why!).
>Quick Fix:
>1. Put the $CFEINSTALL/bin directory into your PATH variable
>2. Remove $CFEINSTALL/bin/*
>3. Remove shell aliases for "llvmgcc" and "llvmgxx" or change them to 
>    invoke llvm-gcc and llvm-gxx. 
>4. Rebuild llvm with "make tools-only"
>5. Rebuild the CFE with --program-prefix=llvm-
>6. Rebuild llvm with "make"
>More Details:
>1. Put the $CFEINSTALL/bin directory into your PATH variable. We're
>    going to configure the CFE so it produces llvm-gcc, not "gcc" so
>    putting $CFEINSTALL/bin in your path is okay as it won't conflict
>    with your "native" GCC compiler.
>2. Remove $CFEINSTALL/bin/*. This ensures that any old "gcc" or "g++"
>    CFE executables won't get found while we rebuild.
>3. Remove shell aliases for "llvmgcc" and "llvmgxx" or change them to 
>    invoke llvm-gcc and llvm-gxx. These aliases are not needed any more
>    since the tools built by CFE will be named llvm-gcc and llvm-g++
>4. update your tree to latest CVS
>5. make "tools-only' to get the latest gccas. When llvmgcc gets 
>    reconfigured, it will expect, for some reason, that gccas can handle
>   the --traditional-format option. This support has been put into gccas
>   but you need to rebuild gccas before rebuilding the CFE.
>6. reconfigure your CFE as usual, but make sure you add the option
>   --program-prefix=llvm- (note the trailing dash) to the end of the
>   configure command. This is CRITICAL!
>7. rebuild the CFE with "make all ; make install"
>8. rebuild llvm with "make all"
>9. run "make check" to make sure everything is working. You should get:
>    # of expected passes            940
>    # of expected failures          30
>What Happened:
>1. CFE should now be configured with --program-prefix=llvm- (note the
>   trailing dash). This causes the $CFEINSTALL/bin directory to get
>   populated with llvm-gcc and llvm-g++ instead of just gcc and g++
>2. The LLVM configure script was changed to just locate llvm-gcc and
>   llvm-g++ in the path. 
>3. The LLVMGCCDIR variable is now set to the path based on llvm-gcc
>    being found and working correctly. Its not an error to not find
>   llvm-gcc but you can't build the runtime libs in that case.
>4. The --with-llvmgccdir= for LLVM's configure is now removed as its
>   not needed. It is inferred by where llvm-gcc is found.
>5. The various LLVM makefiles were adjusted to accommodate this.
>Yet To Be Done:
>The CFEBuildInstrs.html and GettingStarted.html documents need to be
>updated to account for this.
>1. All the nightly testers will fail until the CFE they use is 
>    brought up to date.
>2. Configuring LLVM will succeed but LLVMGCCDIR won't be set and
>   consequently the runtime directory build will fail. "make tools-only"
>   will still work though.
>3. The changes have passed on Linux. Testing is underway on Solaris
>    and Cygwin. It would be good if someone could pitch in and validate
>    PPC and FreeBSD too.
>LLVM Developers mailing list
>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu

More information about the llvm-dev mailing list