[LLVMdev] building llvm-gcc4 with a different target name
Erick Tryzelaar
erickt at dslextreme.com
Sun Jun 3 18:30:14 PDT 2007
Hello,
I've put together a macports version of llvm and llvm-gcc4, but I've run
into a problem with how gcc on the mac works. llvm-gcc4 creates an
executable named:
/opt/local/bin/powerpc-apple-darwin8-gcc-4.0.1
Which happens to be the same executable in /usr/bin. Because I have
/opt/local before /usr/bin, gcc ends up using llvm-gcc4 to build all my
code. Most of the time this isn't a problem, but since llvm-gcc4 doesn't
yet support all the flags of gcc 4 (such as the -compatibility_version
flag flac uses when compiling), it can error out. Anyone know how can I
build llvm-gcc4 so that it has a different exe name, or suggest a better
way to do this?
If this will help, these are the options I'm using to build llvm-gcc4.
It's in tcl, but it hopefully is straight forward enough:
# create a build directory and run out of there
worksrcdir build
pre-configure {
file mkdir ${workpath}/build
}
# ${prefix} is where we install llvm, normally /opt/local
configure.cmd ../llvm-gcc4-${version}.source/configure
configure.args-append --enable-llvm=${prefix}/lib/llvm/obj \
--enable-languages=c,c++,objc,obj-c++ \
--libdir=${prefix}/lib/${name} \
--libexecdir=${prefix}/libexec/${name} \
--includedir=${prefix}/include/${name} \
--infodir=${prefix}/share/info \
--mandir=${prefix}/share/man \
--with-local-prefix=${prefix} \
--program-prefix=llvm- \
--disable-nls
# like rpm, install into a destroot before finally installing
destroot.destdir prefix=${destroot}${prefix} \
libdir=${destroot}${prefix}/lib/${name} \
libexecdir=${destroot}${prefix}/libexec/${name} \
includedir=${destroot}${prefix}/include/${name} \
infodir=${destroot}${prefix}/share/info \
mandir=${destroot}${prefix}/share/man
# if we're on a mac, follow the install rules
variant darwin {
post-extract {
system "rm -rf ${workpath}/llvm-gcc4-${version}.source/libstdc++-v3"
}
configure.args-append --with-gxx-include-dir=/usr/include/c++/4.0.0
}
# use the powerpc triple if on a powerpc
variant powerpc {
set triple powerpc-apple-darwin8
configure.env-append TRIPLE=${triple}
configure.post_args --build=${triple} --host=${triple} --target=${triple}
}
# use the intel triple if on an intel
variant x86 {
set triple i686-apple-darwin8
configure.env-append TRIPLE=${triple} \
TARGETOPTIONS="--with-arch=nocona
--with-tune=generic"
configure.post_args --build=${triple} --host=${triple} --target=${triple}
}
Thanks,
-e
More information about the llvm-dev
mailing list