Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 133303 - app-portage/portage-utils-0.1.17 can fail to build because compiler defines sparc=1
Summary: app-portage/portage-utils-0.1.17 can fail to build because compiler defines s...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: Sparc Linux
: High minor (vote)
Assignee: Thomas Cort (RETIRED)
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2006-05-14 09:56 UTC by Ferris McCormick (RETIRED)
Modified: 2006-05-14 10:57 UTC (History)
4 users (show)

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


Attachments
qimlate-avoid-sym-conflicts.patch (qimlate-avoid-sym-conflicts.patch,3.16 KB, patch)
2006-05-14 10:09 UTC, solar (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ferris McCormick (RETIRED) gentoo-dev 2006-05-14 09:56:26 UTC
On my SB1000, gcc-3.4.6-r1 system, portage-utils-0.1.17 will not build without help, because the compiler seems to define the symbol sparc=1, and then qimlate.c will not compile because of an enum {unknown = 0, ..., sparc, ... };

(With earlier versions of portage-utils, there is no qimlate.c to cause the compiler grief.)

As a test case, this tiny program:
================================
#include <stdio.h>
main() {
        printf("sparc=%d\n",sparc);
        return sparc;
}
================================
prints "sparc=1"
(With gcc-3.3.5-xxx compilers, sparc is not defined at all, so this seems to be a change in the compiler.)
==================================
Here's the 'emerge --info' info.
==============================
==============================
Portage 2.1_rc1-r1 (default-linux/sparc/sparc64/2006.0, gcc-3.4.6, glibc-2.3.6-r3, 2.6.15-gentoo-r4-SB1000 sparc64)
=================================================================
System uname: 2.6.15-gentoo-r4-SB1000 sparc64 sun4u
Gentoo Base System version 1.6.14
distcc 2.18.3 sparc-unknown-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [enabled]
dev-lang/python:     2.3.5-r2, 2.4.2
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  0.4.2
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1-r2
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r4
ACCEPT_KEYWORDS="sparc"
AUTOCLEAN="yes"
CBUILD="sparc-unknown-linux-gnu"
CFLAGS="-O2 -pipe -mcpu=ultrasparc3"
CHOST="sparc-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/X11/xkb /usr/share/config /usr/spool/PBS /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/eselect/compiler /etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"
CXXFLAGS="-O2 -pipe -mcpu=ultrasparc3"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache confcache cvs distlocks metadata-transfer parallel-fetch sandbox sfperms strict"
GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/ http://gentoo.chem.wisc.edu/gentoo/ http://mirror.phy.olemiss.edu/mirror/gentoo"
LC_ALL="en_US.utf8"
MAKEOPTS="-j2"
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'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="sparc X Xaw3d apache2 avi berkdb bitmap-fonts bzip2 cairo cli crypt cscope cups dba dlloader dri eds encode esd examples fbcon firebird foomaticdb fortran gcc64 gd gdbm gif glx graphviz gstreamer gtk gtk2 imlib jpeg kerberos libwww lzw-tiff mad mikmod motif mpeg mysql ncurses nls nptl ogg opengl oss pam pcre pdf pdflib perl png python qt readline reflection ruby ruby18 sdl session spell spl sqlite ssl stroke tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts udev vorbis xml xmms xorg xv zlib elibc_glibc input_devices_evdev input_devices_keyboard input_devices_mouse kernel_linux userland_GNU video_cards_dummy video_cards_fbdev video_cards_sunffb"
Unset:  ASFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS

===============================
Comment 1 solar (RETIRED) gentoo-dev 2006-05-14 10:09:37 UTC
Created attachment 86755 [details, diff]
qimlate-avoid-sym-conflicts.patch

tcort, 
Perhaps something like this would do the trick?
Comment 2 Thomas Cort (RETIRED) gentoo-dev 2006-05-14 10:32:56 UTC
(In reply to comment #0)
> the compiler seems to define the symbol sparc=1

Weird, usually the compiler only defines __arch. gcc-3.4.6-r1 on my alpha defines __alpha, but not alpha. Anyway, thanks for the clear explaination of the problem. solar, thanks for the patch! It has been reviewed, tested, and applied.
Comment 3 Harald van Dijk (RETIRED) gentoo-dev 2006-05-14 10:57:09 UTC
On x86, gcc 4.1.0 defines both i386 and __i386 when compiling with -std=gnu[89]9 (or the default), but compiling with -std=c[89]9 (or -ansi) makes sure i386 does not get defined. Similarly with unix and linux. Perhaps it would be a good idea to compile with that (-std=c99), even if in this particular case the problem is worked around already?