Summary: | binutils compiled with cflag "-freduce-all-givs" fails during compile of kernel | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Mikkel Schubert <Xaignar> |
Component: | [OLD] Core system | Assignee: | Martin Schlemmer (RETIRED) <azarah> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | cretin, pappy, x86-kernel |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
URL: | http://forums.gentoo.org/viewtopic.php?p=489402 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Mikkel Schubert
2003-08-27 23:23:09 UTC
Can anybody check on a gcc earlier than 3.3.1 ? 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 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 Err, talked too soon, sorry :) Ok, only fix I can think about is to filter this in binutils ebuild - that OK with everybody ? 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. 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? 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? is there something that prevents us from adding this filter-flags logic to the binutils ebuilds now? thanks, Alex 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... 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. 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 [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 |