Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 243510

Summary: app-arch/tardy: CC variable not respected
Product: Gentoo Linux Reporter: Diego Elio Pettenò (RETIRED) <flameeyes>
Component: New packagesAssignee: Marcelo Goes (RETIRED) <vanquirius>
Status: RESOLVED FIXED    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 243502    
Attachments: Patch to extend sed call to address various QA issues in the upstream package

Description Diego Elio Pettenò (RETIRED) gentoo-dev 2008-10-23 23:57:55 UTC
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
Comment 1 William Hubbs gentoo-dev 2009-03-23 05:25:48 UTC
This is fixed, thanks for the report. :-)
Comment 2 William Hubbs gentoo-dev 2009-03-23 05:29:02 UTC
Sorry, wrong bug.
Comment 3 Kevin Pyle 2009-06-13 03:44:51 UTC
Created attachment 194475 [details, diff]
Patch to extend sed call to address various QA issues in the upstream package

Diego, did you mean to use the "CC not respected" template?  I do not see a CC/CXX problem with this package, but I do see it forcing premature stripping by overwriting LDFLAGS with "-s".  There are some other QA issues, too:

- Non-echoed "sleep 1" commands scattered throughout the Makefile.  These were likely added due to some race condition, but with my modifications the package builds clean with MAKEOPTS=-j, so those appear to be fixed.[1]
- Use of $CFLAGS when calling $CXX. <http://blog.flameeyes.eu/2008/08/06/flags-and-flags>
- Uses gcc to build the file, but does so without a -o <output>.  The Makefile then needs a follow-up command to move the output file to its proper home.

To address these issues, I extended the sed call to delete the LDFLAGS line, the useless sleep lines, and the calls to mv.  It changes CFLAGS to CXXFLAGS on any line that starts $(CXX), and adds a -o $@ to the CXX rules so that the mv calls are not needed.

[1] There is one race condition remaining in install, but the ebuild calls make install directly, so install ignores $MAKEOPTS.
Comment 4 Marcelo Goes (RETIRED) gentoo-dev 2009-12-12 15:17:08 UTC
I understand this is fixed along with bug 239921.