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

Bug 208080

Summary: dev-util/boost-build-1.34.1 fails to compile w/ CFLAGS="-combine"
Product: Gentoo Linux Reporter: John R. Graham <john_r_graham>
Component: [OLD] LibraryAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: VERIFIED INVALID    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Patch adds missing function prototypes and/or header file includes.
Modified ebuild applies the new patch.
Ebuild comments updated for posterity.

Description John R. Graham gentoo-dev 2008-01-29 18:54:32 UTC
This must've compiled on some version of gcc; perhaps gcc 4.2.0 is pickier.  Error messages are:
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
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
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:35: warning: conflicting types for ‘init_set’
builtins.c:342: warning: previous implicit declaration of ‘init_set’ was here
modules/path.c:26: warning: conflicting types for ‘init_path’
builtins.c:343: warning: previous implicit declaration of ‘init_path’ was here
modules/regex.c:91: warning: conflicting types for ‘init_regex’
builtins.c:344: warning: previous implicit declaration of ‘init_regex’ was here
modules/property-set.c:103: warning: conflicting types for ‘init_property_set’
builtins.c:345: warning: previous implicit declaration of ‘init_property_set’ was here
modules/sequence.c:35: warning: conflicting types for ‘init_sequence’
builtins.c:346: warning: previous implicit declaration of ‘init_sequence’ was here
modules/order.c:137: 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 1701:  Called dyn_compile
 *                   ebuild.sh, line 1039:  Called qa_call 'src_compile'
 *                   ebuild.sh, line   44:  Called src_compile
 *   boost-build-1.34.1.ebuild, line   56:  Called die
 * The specific snippet of code:
 *      CC=$(tc-getCC) ./build.sh ${toolset} || die "building bjam failed"
 *  The die message:
 *   building bjam failed
 *

And my emerge --info is:
Portage 2.1.3.19 (default-linux/x86/2007.0/desktop, gcc-4.2.0, glibc-2.6.1-r0, 2.6.20-reiser4-r8 i686)
=================================================================
System uname: 2.6.20-reiser4-r8 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz
Timestamp of tree: Tue, 29 Jan 2008 18:00:01 +0000
app-shells/bash:     3.2_p17-r1
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r6
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=prescott -mtune=prescott -msse2  -frename-registers -fweb -pipe -fomit-frame-pointer -funit-at-a-time -freorder-blocks -fno-ident -combine"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=prescott -mtune=prescott -msse2  -frename-registers -fweb -pipe -fomit-frame-pointer -funit-at-a-time -freorder-blocks -fno-ident -combine -fvisibility-inlines-hidden"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://www.gtlib.gatech.edu/pub/gentoo http://open-systems.ufl.edu/mirrors/gentoo http://mirror.datapipe.net/gentoo http://gentoo.mirrors.pair.com/"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,--hash-style=gnu"
LINGUAS="en en_US en_GB"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/emacs /usr/local/overlays/conrad /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl acpi alsa arts berkdb bitmap-fonts branding bzip2 cairo cdr cli cracklib crypt cups dbus doc dri dvd dvdr dvdread eds emacs emboss encode esd evo fam firefox gdbm gif gpm gstreamer hal iconv isdnlog java jpeg kde kerberos ldap mad midi mikmod mmx mp3 mpeg mudflap ncurses nls nptl nptlonly nsplugin ogg opengl openmp pam pcre pdf perl png pppd python qt3 quicktime readline real reflection sdl session spell spl ssl subversion svg tcpd tiff toolkit-scroll-bars truetype truetype-fonts type1-fonts unicode userlocales utempter vorbis win32codecs x86 xml xorg xv zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US en_GB" USERLAND="GNU" VIDEO_CARDS="i810"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

The attached patch and -r1 ebuild fix the bug.
Comment 1 John R. Graham gentoo-dev 2008-01-29 18:56:10 UTC
Created attachment 142140 [details, diff]
Patch adds missing function prototypes and/or header file includes.
Comment 2 John R. Graham gentoo-dev 2008-01-29 18:56:40 UTC
Created attachment 142141 [details, diff]
Modified ebuild applies the new patch.
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2008-01-29 21:10:12 UTC
(In reply to comment #0)
> CXXFLAGS="-O2 -march=prescott -mtune=prescott -msse2  -frename-registers -fweb
> -pipe -fomit-frame-pointer -funit-at-a-time -freorder-blocks -fno-ident
> -combine -fvisibility-inlines-hidden"

Reopen once you've reproduces this with *sane* C[XX]FLAGS.

http://devmanual.gentoo.org/ebuild-writing/functions/src_compile/build-environment/index.html
Comment 4 John R. Graham gentoo-dev 2008-01-29 21:38:24 UTC
Jakub,

It's reproducible with CFLAGS/CXXFLAGS set to just "-O2 -combine", so I guess it comes down to whether Gentoo currently considers "-combine" to be sane.  What say you?

- John
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2008-01-29 21:43:11 UTC
No, we don't support stuff like -combine at all.
Comment 6 John R. Graham gentoo-dev 2008-01-29 22:36:39 UTC
Created attachment 142167 [details]
Ebuild comments updated for posterity.

The ebuild comments have been updated to show that the patch is only necessary when experimenting with the unsupported -combine compiler flag.

- John
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2008-01-29 23:06:38 UTC
If you want this fixed, take it upstream. Thanks.
Comment 8 John R. Graham gentoo-dev 2008-01-30 14:46:27 UTC
Will do it.  Thanks, Jakub.

- John

P.S.:  -combine is CFLAGS, not CXXFLAGS.