[LLVMdev] README: Build Environment Changes

Reid Spencer reid at x10sys.com
Tue Dec 21 22:17:43 PST 2004


LLVMers,

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.

Impact:
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20041221/accea881/attachment.sig>


More information about the llvm-dev mailing list