Bug 105155 - gcc 3.3.5 and 3.3.6 fails to compile windowmaker with -Os in CFLAGS
|
Bug#:
105155
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: x86
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: metalgod@gentoo.org
|
Reported By: gentoobugs@mysteryvortex.com
|
|
Component: Applications
|
|
|
URL:
|
|
Summary: gcc 3.3.5 and 3.3.6 fails to compile windowmaker with -Os in CFLAGS
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2005-09-07 07:47 0000
|
When compiling x11-wm/windowmaker-0.91.0-r1 with
sys-devel/gcc-3.3.5.20050130-r1
or sys-devel/gcc-3.3.6 with the -Os flag, the error below results. Removing
-Os
from the cflags allows the emerge to complete with no errors. I can't
reproduce
the error with sys-devel/gcc-3.3.4-r1 installed on a different system.
Reproducible: Always
Steps to Reproduce:
1.add -Os to your cflags
2.emerge windowmaker
Actual Results:
/bin/sh ../libtool --mode=compile i586-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.
-I../src -I/usr/include -Os -march=k6-2 -pipe -fomit-frame-pointer -c
save.c
i586-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../src -I/usr/include -Os
-march=k6-2 -pipe -fomit-frame-pointer -c save.c -fPIC -DPIC -o .libs/save.o
i586-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../src -I/usr/include -Os
-march=k6-2 -pipe -fomit-frame-pointer -c save.c -o save.o >/dev/null 2>&1
/bin/sh ../libtool --mode=compile i586-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.
-I../src -I/usr/include -Os -march=k6-2 -pipe -fomit-frame-pointer -c
gradient.c
i586-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../src -I/usr/include -Os
-march=k6-2 -pipe -fomit-frame-pointer -c gradient.c -fPIC -DPIC -o
.libs/gradient.o
{standard input}: Assembler messages:
{standard input}:1587: Error: value of ffffffffffffff7e too large for field of
1
bytes at 0000000000000f5a
make[1]: *** [gradient.lo] Error 1
make[1]: Leaving directory
`/var/tmp/portage/windowmaker-0.91.0-r1/work/WindowMaker-0.91.0/wrlib'
make: *** [all-recursive] Error 1
!!! ERROR: x11-wm/windowmaker-0.91.0-r1 failed.
!!! Function src_compile, Line 101, Exitcode 2
!!! windowmaker: make has failed
!!! If you need support, post the topmost build error, NOT this status message.
Expected Results:
emerge windowmaker should complete with no errors
Gentoo Base System version 1.6.13
Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.5-r1,
2.6.12.5 i686)
=================================================================
System uname: 2.6.12.5 i686 AMD Athlon(tm) 64 Processor 3000+
dev-lang/python: 2.3.5
sys-apps/sandbox: 1.2.12
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils: 2.15.92.0.2-r10
sys-devel/libtool: 1.5.18-r1
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i586-pc-linux-gnu"
CFLAGS="-Os -march=k6-2 -pipe -fomit-frame-pointer"
CHOST="i586-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-Os -march=k6-2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks maketest sandbox sfperms strict test"
GENTOO_MIRRORS="ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 3dnow X aalib alsa apm avi berkdb bitmap-fonts crypt cups curl
directfb
eds emboss encode fam flac foomaticdb fortran gd gdbm ggi gif gnome gpm
gstreamer gtk gtk2 imlib ipv6 java jpeg kde libg++ libwww mad mikmod mmx motif
mp3 mpeg ncurses nls nptl offensive ogg oggvorbis opengl oss pam pdflib perl
png
python qt quicktime readline samba sdl slang speex spell ssl svga tcltk tcpd
test tiff truetype truetype-fonts type1-fonts vorbis xine xml2 xmms xv zlib
userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Could you humor me and try (with gcc-3.3.5/6):
CFLAGS="-Os -pipe"
and then if that works / fails:
CFLAGS="-Os -pipe -march=k6-2"
and then if that works / fails:
CFLAGS="-Os -pipe -fomit-frame-pointer"
... and report back if any of those succeeded / failed.
These don't work:
CFLAGS="-Os -march=k6-2 -pipe -fomit-frame-pointer"
CFLAGS="-Os -march=k6-2 -fomit-frame-pointer"
These work:
CFLAGS="-Os -fomit-frame-pointer"
CFLAGS="-O2 -march=k6-2 -pipe -fomit-frame-pointer"
CFLAGS="-march=k6-2 -pipe -fomit-frame-pointer"
CFLAGS="-Os -pipe"
CFLAGS="-Os -pipe -march=k6-2"
CFLAGS="-Os -pipe -fomit-frame-pointer"
This is a new gentoo system built from stage 1, all other packages build
correctly with the original CFLAGS.
It seems that removing any one flag (besides -pipe which shouldn't effect output
anyway) allows it to emerge correctly. Note that even replaing -Os with -O2 works.
I'll be transferring the setup to an actual k6-2 soon, and will post a comment
indicating it's success in compiling on that system soon.
The same error occurs when compiling on a real k6-2. That eliminates the
possibility of some strange amd64 issue.
wait wait -- are you running this on an amd64 machine or a k6-2? k6-2's are
the
early AMD chips...
Please confirm what machine this actually is ... maybe a `cat /proc/cpuinfo`
would do.
The error occurs on all the machines I have tried it on. That would be an
Athlon64 and a K6-2. I also tried it inside VMWare on the Athlon64 and got the
same error. Notice the original emerge info shows Athlon64.
From the Athlon64:
$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 31
model name : AMD Athlon(tm) 64 Processor 3000+
stepping : 0
cpu MHz : 1890.163
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow
lahf_lm
bogomips : 3743.74
From the k6-2:
$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 5
model : 8
model name : AMD-K6(tm) 3D processor
stepping : 12
cpu MHz : 473.477
cache size : 64 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr
bogomips : 925.69
# emerge info
Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.5-r1,
2.6.12.5 i586)
=================================================================
System uname: 2.6.12.5 i586 AMD-K6(tm) 3D processor
Gentoo Base System version 1.6.13
dev-lang/python: 2.3.5
sys-apps/sandbox: 1.2.12
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils: 2.15.92.0.2-r10
sys-devel/libtool: 1.5.18-r1
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i586-pc-linux-gnu"
CFLAGS="-Os -march=k6-2 -pipe -fomit-frame-pointer"
CHOST="i586-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-Os -march=k6-2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks maketest sandbox sfperms strict test"
GENTOO_MIRRORS="ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 3dnow X aalib alsa apm avi berkdb bitmap-fonts crypt cups curl directfb
eds emboss encode fam flac foomaticdb fortran gd gdbm ggi gif gnome gpm
gstreamer gtk gtk2 imlib ipv6 java jpeg kde libg++ libwww mad mikmod mmx motif
mp3 mpeg ncurses nls nptl offensive ogg oggvorbis opengl oss pam pdflib perl png
python qt quicktime readline samba sdl slang speex spell ssl svga tcltk tcpd
test tiff truetype truetype-fonts type1-fonts vorbis xine xml2 xmms xv zlib
userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Now -Os is filtered. Thanks for the feedback.
filter-flags is not appropriate, as it just removes the flag causing
windowmaker to be built without any -Ox optimization. Please use replace-flags
"-Os" "-O2" instead.