Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 27456 - binutils compiled with cflag "-freduce-all-givs" fails during compile of kernel
Summary: binutils compiled with cflag "-freduce-all-givs" fails during compile of kernel
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Martin Schlemmer (RETIRED)
URL: http://forums.gentoo.org/viewtopic.ph...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-08-27 23:23 UTC by Mikkel Schubert
Modified: 2004-09-23 18:52 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mikkel Schubert 2003-08-27 23:23:09 UTC
I'm running gcc-3.3.1 and had just recompiled my system. But was then suddenly unable to compile 
the kernel (2.6.0-test3 to 2.6.0-test4). I did a little testing, and it turned out that compiling binutils 
with the cflag "-freduce-all-givs" would cause it to fail during the compile of the linux kernel. I tested 
this with serveral versions of binutils (from 2.12.90.0.15 to 2.14.90.0.6-r1), and all failed. However, 
I have no idea if this is also present in systems running gcc < 3.3.1. 

Reproducible: Always
Steps to Reproduce:
1. Change CFLAGS to include "-freduce-all-givs" 
2. Emerge binutils 
3. Attempt to compile kernel 
Actual Results:  
[SNIP...]   
   GEN     .version  
   CHK     include/linux/compile.h  
   UPD     include/linux/compile.h  
   CC      init/version.o  
   LD      init/built-in.o  
   LD      .tmp_vmlinux1  
   KSYM    .tmp_kallsyms1.S  
   AS      .tmp_kallsyms1.o  
 .tmp_kallsyms1.S: Assembler messages:  
 .tmp_kallsyms1.S:1315: Error: unknown pseudo-op: `.ong'  
 .tmp_kallsyms1.S:6558: Error: unknown pseudo-op: `.ong'  
 .tmp_kallsyms1.S:21293: Error: unknown pseudo-op: `.sciz'  
 .tmp_kallsyms1.S:24065: Error: unknown pseudo-op: `.sciz'  
 make: *** [.tmp_kallsyms1.o] Error 1 


Portage 2.0.48-r7 (default-x86-1.4, gcc-3.3.1, glibc-2.3.2-r3) 
================================================================= 
System uname: 2.6.0-test4-mm2 i686 Intel(R) Pentium(R) 4 CPU 2.00GHz 
GENTOO_MIRRORS="http://gentoo.oregonstate.edu 
http://www.ibiblio.org/pub/Linux/distributions/gentoo" 
CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config 
/usr/X11R6/lib/X11/xkb /usr/kde/cvs/share/config /usr/share/config" 
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" 
PORTDIR="/usr/portage" 
DISTDIR="/usr/portage/distfiles" 
PKGDIR="/usr/portage/packages" 
PORTAGE_TMPDIR="/var/tmp" 
PORTDIR_OVERLAY="/usr/local/portage" 
USE="x86 oss apm crypt encode foomaticdb jpeg libg++ mad mikmod mpeg ncurses pdflib png 
quicktime spell xml2 xv zlib gdbm slang readline arts svga tcltk X sdl gpm tcpd pam libwww ssl perl 
python esd imlib oggvorbis qt kde motif opengl -gnome -gtk -berkdb -postgres -tetex -doc 
-scanner -3dnow -xmms -cups -sgml -java -aalib -nls avi -dvd cdr truetype mmx sse gif alsa" 
COMPILER="gcc3" 
CHOST="i686-pc-linux-gnu" 
CFLAGS="-march=pentium4 -O2 -freduce-all-givs -fmove-all-movables -pipe -w" 
CXXFLAGS="-march=pentium4 -O2 -freduce-all-givs -fmove-all-movables -pipe -w" 
ACCEPT_KEYWORDS="x86" 
MAKEOPTS="-j2" 
AUTOCLEAN="yes" 
SYNC="rsync://rsync.gentoo.org/gentoo-portage" 
FEATURES="sandbox ccache"
Comment 1 Martin Schlemmer (RETIRED) gentoo-dev 2003-09-01 11:33:56 UTC
Can anybody check on a gcc earlier than 3.3.1 ?
Comment 2 Stefan Jones (RETIRED) gentoo-dev 2003-09-01 14:39:40 UTC
I just tried with gcc-3.2.3-r2 and binutils-2.14.90.0.6-r1 with binutils built with -freduce-all-givs and all was ok compiling linux-2.6.0-test4

I also tried binutils built with gcc-3.4-20030725 and -freduce-all-givs ; 
I got the same error as you did, using gcc-3.2.3-r2 to build the kernel:

LD      init/built-in.o
LD      .tmp_vmlinux1
KSYM    .tmp_kallsyms1.S
AS      .tmp_kallsyms1.o
.tmp_kallsyms1.S: Assembler messages:
.tmp_kallsyms1.S:1315: Error: unknown pseudo-op: `.ong'
.tmp_kallsyms1.S:6558: Error: unknown pseudo-op: `.ong'
.tmp_kallsyms1.S:11824: Error: unknown pseudo-op: `.yte'
.tmp_kallsyms1.S:14517: Error: unknown pseudo-op: `.sciz'
.tmp_kallsyms1.S:15868: Error: unknown pseudo-op: `.yte'
.tmp_kallsyms1.S:18519: Error: unknown pseudo-op: `.sciz'
.tmp_kallsyms1.S:25261: Error: unknown pseudo-op: `.sciz'
.tmp_kallsyms1.S:26648: Error: unknown pseudo-op: `.yte'
make: *** [.tmp_kallsyms1.o] Error 1
Comment 3 Martin Schlemmer (RETIRED) gentoo-dev 2003-09-29 10:29:37 UTC
It works here with gcc-3.3.1-r4, although I get this all over the place:

-------------------
{standard input}:927: Warning: setting incorrect section attributes for .initcall6.init
  CC      drivers/char/vt_ioctl.o
  CC      drivers/char/vc_screen.o
{standard input}: Assembler messages:
{standard input}:1016: Warning: setting incorrect section attributes for
.init.text
  CC      drivers/char/consolemap.o
Comment 4 Martin Schlemmer (RETIRED) gentoo-dev 2003-09-29 10:38:21 UTC
Err, talked too soon, sorry :)
Comment 5 Martin Schlemmer (RETIRED) gentoo-dev 2003-09-29 10:39:21 UTC
Ok, only fix I can think about is to filter this in binutils ebuild - that
OK with everybody ?
Comment 6 David Nielsen 2003-10-04 13:57:57 UTC
http://bugs.gentoo.org/show_bug.cgi?id=30128 fixes the asm warnings for you
Martin - please update the portage ebuild, those messages are very annoying,
even though they seem harmless.
Comment 7 Brian S. Stephan 2004-01-29 21:46:42 UTC
Bump..
I just got bit by the original bug:

  CC      drivers/scsi/aic7xxx/aic7xxx_core.o
{standard input}: Assembler messages:
{standard input}:16530: Error: unknown pseudo-op: `.lign'
make[3]: *** [drivers/scsi/aic7xxx/aic7xxx_core.o] Error 1
make[2]: *** [drivers/scsi/aic7xxx] Error 2
make[1]: *** [drivers/scsi] Error 2
make: *** [drivers] Error 2

Rebuilt binutils (2.14.90.0.8) without -freduce-all-givs and kernel compiled fine.

Put -freduce-all-givs back in my CFLAGS, added it to the filter in the binutils ebuild, reemerged binutils, and then did a kernel compile, which worked fine.

Can you please filter -freduce-all-givs?
Comment 8 Jisakiel 2004-02-10 06:44:10 UTC
I've just had the same problem over here... Same .tmp_kallsyms errors with 2.6.2 and 2.6.3rc. dropping -freduce-all-givs and remerging binutils did the trick for me.

Maybe filtering that cflag or something?
Comment 9 Alexander Gabert (RETIRED) gentoo-dev 2004-03-04 06:31:44 UTC
is there something that prevents us from adding this filter-flags logic to the binutils ebuilds now?

thanks,

Alex
Comment 10 Wallex 2004-07-05 14:07:43 UTC
I bumped into this issue as well and fixed it removing the -freduce-all-givs CFlag as everyone else. Why isn't the CFlag filtered yet from Binutils? I have to mention that everyone who uses that flag in their CFlags WILL bump into this issue, since the actual stable (x86 at least) versions of the involved programs will lead to this issue:

Stable x86 gentoo-dev-sources: 2.6.7-r8
Stable x86 binutils: 2.14.90.0.8-r1
Stable x86 gcc: gcc-3.3.3-r6

So everyone who is running a stable system with that CFlag are destined to bump into this bug, and I don't think that's desirable...
Comment 11 augury@vampares.org 2004-07-07 09:38:49 UTC
i got the same error message.  one system also will finish the kernel but when boot give a stack error right after cupsd around microcode ctl. says something like (sorry i cant paste it for obvious reasons)(gcc 3.3.3 kernel 2.6.6 and 2.6.7):
process xfs logd
EIP is at pagebuf_rele
call trace
<0000000> worker thread 
<0000000> pagebuf_iodone_work
...
<0000000> kthread
<0000000> kthread

gcc 3.4 gives asm error messages early on even though it doesnt have any givs and i cant be sure this is the cause since i dont have anything running 3.4 right now but it sound about right (backwards debugger).

thanks Martin for catching that.  I had only gotten one kernel compiled with my flags cut way back.  make about a 35% performance difference in kernel times.  something as simple as that can really throw the monkey wrench into a good computer.
Comment 12 Alexander Gabert (RETIRED) gentoo-dev 2004-07-08 13:42:28 UTC
pappy@PAPILLON binutils $ grep -ri "freduce-all-givs" .
pappy@PAPILLON binutils $ 

at the moment still not filtered in cvs :-(

adding it now to current -x86 binutils-2.14.90.0.8-r2.ebuild

please test it there and confirm, then we can add it :-)

thanks,

Alex
Comment 13 Alexander Gabert (RETIRED) gentoo-dev 2004-09-23 18:52:11 UTC
[0] pappy@PAPILLON binutils $ date; grep -ri "freduce-all-givs" .
Fri Sep 24 03:49:02 CEST 2004
./ChangeLog:  added filter-flags for freduce-all-givs (bug id 27456)
./binutils-2.14.90.0.8-r1.ebuild:       filter-flags -fomit-frame-pointer -fssa -freduce-all-givs
./binutils-2.14.90.0.8.ebuild:  filter-flags -fomit-frame-pointer -fssa -freduce-all-givs
./binutils-2.15.90.0.1.1-r1.ebuild:     filter-flags -fomit-frame-pointer -fssa -freduce-all-givs