Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 513474 - sys-devel/gcc-4.8.3 - /usr/include/cairo/cairo-features.h:13:3: error: #error "abi_x86_32 not supported by the package."
Summary: sys-devel/gcc-4.8.3 - /usr/include/cairo/cairo-features.h:13:3: error: #error...
Status: RESOLVED DUPLICATE of bug 509556
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Multilib team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-16 13:17 UTC by Ivan Iraci
Modified: 2014-06-21 06:48 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gcc-build-logs.tar.bz2 (gcc-build-logs.tar.bz2,135.20 KB, application/x-bzip-compressed-tar)
2014-06-16 13:19 UTC, Ivan Iraci
Details
GCC build logs, compressed. (gcc-build-logs.tar.bz2,381.96 KB, application/x-bzip2)
2014-06-16 19:19 UTC, Ivan Iraci
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Iraci 2014-06-16 13:17:28 UTC
sys-devel/gcc-4.8.3 fails to build.

I tried both with CFLAGS="-O2 -march=generic -pipe" and with CFLAGS="-O2 -march=native -pipe".

You'll find the build log in attachment.
Comment 1 Ivan Iraci 2014-06-16 13:19:03 UTC
Created attachment 379024 [details]
gcc-build-logs.tar.bz2
Comment 2 Harris Landgarten 2014-06-16 14:39:05 UTC
Same here
Comment 3 Ryan Hill (RETIRED) gentoo-dev 2014-06-16 18:36:14 UTC
Well, yeah, -march=generic isn't a valid option.  Can I get your logs with -march=native?
Comment 4 Ivan Iraci 2014-06-16 19:19:07 UTC
Comment on attachment 379024 [details]
gcc-build-logs.tar.bz2

Wrong builds log.
Comment 5 Ivan Iraci 2014-06-16 19:19:57 UTC
Created attachment 379062 [details]
GCC build logs, compressed.
Comment 6 Ivan Iraci 2014-06-16 19:22:13 UTC
Uploaded a new builds log, corresponding to a failed build with CFLAGS="-O2 -march=native -pipe".
Comment 7 Ryan Hill (RETIRED) gentoo-dev 2014-06-16 23:54:13 UTC
The error you're getting is:

/usr/include/cairo/cairo-features.h:13:3: error: #error "abi_x86_32 not supported by the package."
Comment 8 Ryan Hill (RETIRED) gentoo-dev 2014-06-17 00:05:17 UTC
Why did we enable multilib java again?

You can probably work around this for now by disabling USE=awt, or USE=gcj.
Comment 9 Arfrever Frehtes Taifersar Arahesis 2014-06-17 07:12:05 UTC
I had the same error.
A solution / workaround is to reinstall x11-libs/cairo.

multilib-build.eclass contains a workaround:

$ cvs log -r1.47 multilib-build.eclass

RCS file: /var/cvsroot/gentoo-x86/eclass/multilib-build.eclass,v
Working file: multilib-build.eclass
head: 1.56
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 56;    selected revisions: 1
description:
----------------------------
revision 1.47
date: 2014-05-07 19:33:49 +0200;  author: mgorny;  state: Exp;  lines: +9 -1;  commitid: 3a6a536a6e7c4567;
Use amd64 headers for i686 when USE=-abi_x86_32 to maintain compatibility with current state of emul-linux. Fixes bug #509556.
$ cvs di -r1.{46,47} multilib-build.eclass
Index: multilib-build.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multilib-build.eclass,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- multilib-build.eclass       1 May 2014 09:52:27 -0000       1.46
+++ multilib-build.eclass       7 May 2014 17:33:49 -0000       1.47
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multilib-build.eclass,v 1.46 2014/05/01 09:52:27 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multilib-build.eclass,v 1.47 2014/05/07 17:33:49 mgorny Exp $
 
 # @ECLASS: multilib-build.eclass
 # @MAINTAINER:
@@ -454,6 +454,14 @@
                                        # Note: match a space afterwards to avoid collision potential.
                                        sed -e "/${abi_flag} /s&error.*&include <${CHOST}${f}>&" \
                                                -i "${ED}/tmp/multilib-include${f}" || die
+
+                                       # Hack for emul-linux-x86 compatibility.
+                                       # It assumes amd64 will come after x86, and will use amd64
+                                       # headers if no specific x86 headers were installed.
+                                       if [[ ${ABI} == amd64 ]]; then
+                                               sed -e "/abi_x86_32 /s&error.*&include <${CHOST}${f}>&" \
+                                                       -i "${ED}/tmp/multilib-include${f}" || die
+                                       fi
                                fi
                        done
                fi
Comment 10 Ivan Iraci 2014-06-17 11:20:57 UTC
(In reply to Ryan Hill from comment #8)
> Why did we enable multilib java again?
> 
> You can probably work around this for now by disabling USE=awt, or USE=gcj.

Same problem with gcc-4.7.3-r1.

I cannot disble these USE flags, because I need them.
Comment 11 Ivan Iraci 2014-06-17 11:24:52 UTC
(In reply to Arfrever Frehtes Taifersar Arahesis from comment #9)

> I had the same error.
> A solution / workaround is to reinstall x11-libs/cairo.

I really don't understand how rebuilding cairo could fix gcc compilation, but I'll try...
Comment 12 Arfrever Frehtes Taifersar Arahesis 2014-06-17 12:10:37 UTC
(In reply to Ivan Iraci from comment #11)

Rebuilding of x11-libs/cairo will change content of /usr/include/cairo/cairo-features.h, which is a wrapper header generated by multilib-build.eclass.
Comment 13 Ivan Iraci 2014-06-17 13:18:16 UTC
(In reply to Ivan Iraci from comment #10)
> > You can probably work around this for now by disabling USE=awt, or USE=gcj.
> I cannot disble these USE flags, because I need them.

USE="-awt -gcj" works as a temporary workaround, I can confirm it.
Comment 14 Ivan Iraci 2014-06-17 13:20:39 UTC
(In reply to Arfrever Frehtes Taifersar Arahesis from comment #12)
> Rebuilding of x11-libs/cairo will change content of
> /usr/include/cairo/cairo-features.h, which is a wrapper header generated by
> multilib-build.eclass.

I recompiled cairo, but I have no time to rebuild gcc at the moment.

I'll try it out in the next days.
Comment 15 Harris Landgarten 2014-06-17 15:19:03 UTC
rebuilding cairo fixed the error for me
Comment 16 SpanKY gentoo-dev 2014-06-17 18:22:44 UTC
bad header generation by an eclass that breaks packages that use those libs isn't the fault of the breaking package

i'm guessing this is a dupe, so assigning to the multilib peeps to close out
Comment 17 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2014-06-21 06:48:52 UTC

*** This bug has been marked as a duplicate of bug 509556 ***