Erick Tryzelaar
2007-Jun-04 01:30 UTC
[LLVMdev] building llvm-gcc4 with a different target name
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
Owen Anderson
2007-Jun-04 15:05 UTC
[LLVMdev] building llvm-gcc4 with a different target name
Pass "--program-prefix=llvm-" to the llvm-gcc configuration. This will cause the produced executables to be "llvm-gcc" and "llvm-g++" respectively. --Owen On Jun 3, 2007, at 6:30 PM, Erick Tryzelaar wrote:> 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 > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Erick Tryzelaar
2007-Jun-12 03:11 UTC
[LLVMdev] building llvm-gcc4 with a different target name
Erick Tryzelaar wrote:> 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?Just a bump as I haven't figured out how to get gcc's build system to generate the darwin target compiler named something like this: /opt/local/bin/powerpc-apple-darwin8-llvm-gcc-4.0.1 Is this possible? Thanks again, -e
Maybe Matching Threads
- [LLVMdev] trouble compiling llvm-gcc4 1.9
- [LLVMdev] trouble compiling llvm-gcc4 1.9
- [LLVMdev] llvm-gcc frontend 4 on intel darwin produces intel assembler
- [LLVMdev] llvm-gcc frontend 4 on intel darwin produces intel assembler
- [LLVMdev] llvm-gcc compile failure on darwin8.8