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

Bug 262174

Summary: dev-util/boost-build-1.34.1 wouldn't build with '-combine' gcc flag
Product: Gentoo Linux Reporter: Alexander Bezrukov <phmagic>
Component: [OLD] DevelopmentAssignee: Tiziano Müller (RETIRED) <dev-zero>
Status: RESOLVED OBSOLETE    
Severity: normal CC: cpp+disabled, esigra, SebastianLuther, tove
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: The patch which fixes few compilation problems in the code
Updated variant of the patch

Description Alexander Bezrukov 2009-03-11 18:46:25 UTC
Compilation errors in the said package prevent the ebuild if $CFLAGS contains -combine. The errors are caused by violation of the ODR and indeed are bugs in the code.

This problem is different from the one described in bug #252287.



Reproducible: Always

Steps to Reproduce:
1. Make sure that your compiler version supports '-combine'.
2. Add '-combine' to CFLAGS, if not already there.
3. emerge =dev-util/boost-build-1.34.1

Actual Results:  
make1.c: In function ‘alloc_state’:
make1.c:131: error: incompatible implicit declaration of function ‘profile_memory’
debug.c:64: error: previous definition of ‘profile_memory’ was here
make1.c: In function ‘call_timing_rule’:
make1.c:706: error: incompatible implicit declaration of function ‘evaluate_rule’
compile.c:910: error: previous definition of ‘evaluate_rule’ was here
make1.c: In function ‘make1cmds’:
make1.c:963: warning: format not a string literal and no format arguments
newstr.c: In function ‘newstr’:
newstr.c:130: error: incompatible implicit declaration of function ‘profile_memory’
debug.c:64: error: previous definition of ‘profile_memory’ was here
variable.c: In function ‘var_string_to_file’:
variable.c:405: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
variable.c:406: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
variable.c:446: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
variable.c:447: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
builtins.c: In function ‘append_if_exists’:
builtins.c:679: error: incompatible implicit declaration of function ‘timestamp’
timestamp.c:73: error: previous definition of ‘timestamp’ was here
native.c: In function ‘declare_native_rule’:
native.c:27: error: incompatible implicit declaration of function ‘lol_build’
builtins.c:1574: error: previous definition of ‘lol_build’ was here
modules/set.c: At top level:
modules/set.c:34: warning: conflicting types for ‘init_set’
builtins.c:342: warning: previous implicit declaration of ‘init_set’ was here
modules/path.c:25: warning: conflicting types for ‘init_path’
builtins.c:343: warning: previous implicit declaration of ‘init_path’ was here
modules/regex.c:90: warning: conflicting types for ‘init_regex’
builtins.c:344: warning: previous implicit declaration of ‘init_regex’ was here
modules/property-set.c:102: warning: conflicting types for ‘init_property_set’
builtins.c:345: warning: previous implicit declaration of ‘init_property_set’ was here
modules/sequence.c:34: warning: conflicting types for ‘init_sequence’
builtins.c:346: warning: previous implicit declaration of ‘init_sequence’ was here
modules/order.c:136: warning: conflicting types for ‘init_order’
builtins.c:347: warning: previous implicit declaration of ‘init_order’ was here
 *
 * ERROR: dev-util/boost-build-1.34.1 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2755:  Called die
 * The specific snippet of code:
 *           LIBS=${LDFLAGS} CC=$(tc-getCC) ./build.sh ${toolset} $(use_with python) || die "building bjam failed";
 *  The die message:
 *   building bjam failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/tmp/portage/dev-util/boost-build-1.34.1/temp/build.log'.
 * The ebuild environment file is located at '/tmp/portage/dev-util/boost-build-1.34.1/temp/environment'.
 *


Expected Results:  
>>> Source compiled.
>>> Test phase [not enabled]: dev-util/boost-build-1.34.1

>>> Install boost-build-1.34.1 into /tmp/portage/dev-util/boost-build-1.34.1/image/ category dev-util
>>> Completed installing boost-build-1.34.1 into /tmp/portage/dev-util/boost-build-1.34.1/image/

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -R .comment
   usr/bin/bjam

>>> Installing dev-util/boost-build-1.34.1
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.


I am in process of preparation of a patch which would fix the problem.
Comment 1 Alexander Bezrukov 2009-03-11 18:56:49 UTC
Created attachment 184724 [details, diff]
The patch which fixes few compilation problems in the code

As promised, added a patch.
Comment 2 Alexander Bezrukov 2009-03-12 02:20:08 UTC
Created attachment 184772 [details, diff]
Updated variant of the patch
Comment 3 Sebastian Luther (few) 2009-11-24 18:15:01 UTC
Please file an upstream bug about this and add a reference here.
Comment 4 Alexander Bezrukov 2012-08-27 09:42:21 UTC
I think this bug is no more actual as '-combine' option has been removed from gcc 4.6 in the process of LTO redesign.

I am closing it with RESOLVED/OBSOLETE.