I'm filing this bug (from a template, mind you) because the ebuild I'm reporting it against failed to build once I removed my /usr/bin/{gcc,cc,c++,c99} binaries. This means that the ebuild is relying on gcc or cc as compiler, while it should use "$(tc-getCC)" so that user choices are respected, and cross-compiling works as intended. This usually comes down to one of these tasks: - use emake CC="$(tc-getCC)" for building, to ovewrite make's CC variable (defaults to "cc", some upstream rewrites it); - the above plus replacing explicit "gcc" (or similar) calls with $(CC) so that the variable is actually respected; - tc-export CC in src_compile before eventual econf. For C++, you'd have to replace CC with CXX everywhere above, of course. If your package is a special case on this, please let me know. Thanks, Diego
src_unpack contains the following: find -name Makefile.in -print0 | \ xargs -0 -n1 sed -i "s:\(^CC = \).*:\1$(tc-getCC):" Maybe not the most elegant way, but as far as I can see, it does its job. False positive?
This is how I made it work locally. xcompile too :) checking for C compiler checking for gcc... gcc checking whether the C compiler (gcc -Os -pipe -march=armv4t -mtune=arm920t -marm -mthumb-interwork -fomit-frame-pointer -I/usr/armv4tl-softfloat-linux-gnueabi/usr/include/ -I/usr/armv4tl-softfloat-linux-gnueabi/include/ -Wa,--noexecstack -D_GNU_SOURCE -L/usr/armv4tl-softfloat-linux-gnueabi/lib -L/usr/armv4tl-softfloat-linux-gnueabi/usr/lib -Wl,-z,noexecstack) works... no configure: error: installation or configuration problem: C compiler cannot create executables. !!! Please attach the following file when seeking support: !!! /usr/armv4tl-softfloat-linux-gnueabi/tmp/portage/app-misc/gcal-3.01-r3/work/gcal-3.01/config.log * * ERROR: app-misc/gcal-3.01-r3 failed. .. wizdev gcal # diff -u gcal-3.01-r3.ebuild.orig gcal-3.01-r3.ebuild --- gcal-3.01-r3.ebuild.orig 2009-04-01 17:00:03.000000000 +0000 +++ gcal-3.01-r3.ebuild 2009-04-01 16:59:12.000000000 +0000 @@ -11,7 +11,7 @@ LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86 ~arm" IUSE="ncurses nls" DEPEND="nls? ( >=sys-devel/gettext-0.17 )" @@ -29,6 +29,7 @@ } src_compile() { + tc-export CC append-flags -D_GNU_SOURCE econf $(use_enable nls) $(use_enable ncurses) emake || die ... checking for C compiler checking for gcc... armv4tl-softfloat-linux-gnueabi-gcc checking whether the C compiler (armv4tl-softfloat-linux-gnueabi-gcc -Os -pipe -march=armv4t -mtune=arm920t -marm -mthumb-interwork -fomit-frame-pointer -I/usr/armv4tl-softfloat-linux-gnueabi/usr/include/ -I/usr/armv4tl-softfloat-linux-gnueabi/include/ -Wa,--noexecstack -D_GNU_SOURCE -L/usr/armv4tl-softfloat-linux-gnueabi/lib -L/usr/armv4tl-softfloat-linux-gnueabi/usr/lib -Wl,-z,noexecstack) works... yes checking whether the C compiler (armv4tl-softfloat-linux-gnueabi-gcc -Os -pipe -march=armv4t -mtune=arm920t -marm -mthumb-interwork -fomit-frame-pointer -I/usr/armv4tl-softfloat-linux-gnueabi/usr/include/ -I/usr/armv4tl-softfloat-linux-gnueabi/include/ -Wa,--noexecstack -D_GNU_SOURCE -L/usr/armv4tl-softfloat-linux-gnueabi/lib -L/usr/armv4tl-softfloat-linux-gnueabi/usr/lib -Wl,-z,noexecstack) is a cross-compiler... yes checking whether we are using GNU C... yes checking whether armv4tl-softfloat-linux-gnueabi-gcc accepts -g... yes checking how to run the C preprocessor... armv4tl-softfloat-linux-gnueabi-gcc -E checking whether armv4tl-softfloat-linux-gnueabi-gcc needs -traditional... no
Right. Patching the Makefile cannot cure configure issues. Should be fixed now (using tc-export).