Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 32527 - modutils-2.4.25 does not emerge, and it had an extra compiler flag (-yet_exec) that wasn't in CFLAGS
Summary: modutils-2.4.25 does not emerge, and it had an extra compiler flag (-yet_exec...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: Please assign to toolchain
URL: http://forums.gentoo.org/viewtopic.ph...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-02 03:10 UTC by Andrew Richards
Modified: 2004-09-23 18:56 UTC (History)
2 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 Andrew Richards 2003-11-02 03:10:46 UTC
I just finished stage 1 of my first Gentoo install (from the 2.6 live cd) I put ~x86 in my 
ACCEPT_KEYWORDS after stage 1, which the installation guide said I could do if I so desired. I got 
halfway through with emerge system when modutils didn't emerge. I went to #gentoo and worked 
with several users over the course of a couple of hours and came up with no solutions. I tried 
multiple versions of modutils and module-init-utils, to no avail. I also tried filtering out the 
-yet_exec flag, in which case it would error with:

sys_oim.c: In function `old_sys_init_module':
sys_oim.c:38: can't find a register in class `BREG' while reloading `asm'

I also tried exiting the chroot and re-entering, which had no effect.

Reproducible: Always
Steps to Reproduce:
1. follow the installation guide with the 2.6 live CD until after boostrap
2. ACCEPT_KEYWORDS="~x86"
3. emerge system or emerge modutils
Actual Results:  
It didn't compile.

Expected Results:  
It should have compiled.

Here is the contents of my modutils config.log:

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:646: checking host system type
configure:667: checking target system type
configure:685: checking build system type
configure:948: checking for query_module in -lc
configure:967: gcc -o conftest -march=pentium4 -O3 -pipe -fomit-frame-pointer -yet_exec   
conftest.c -lc   1>&5
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1S_noncsu.o(.text+0x0): In function `_start':
: multiple definition of `_start'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1.o(.text+0x0): first defined here
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1S_noncsu.o(.rodata+0x0): multiple definition 
of `_fp_hw'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1.o(.rodata+0x0): first defined here
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1S_noncsu.o(.data+0x0): In function 
`data_start':
: multiple definition of `__data_start'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1.o(.data+0x0): first defined here
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1S_noncsu.o(.rodata+0x4): multiple definition 
of `_IO_stdin_used'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1.o(.rodata+0x4): first defined here
collect2: ld returned 1 exit status
configure: failed program was:
#line 956 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char query_module();

int main() {
query_module()
; return 0; }
configure:1038: checking for gcc
configure:1151: checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-
frame-pointer -yet_exec ) works
configure:1167: gcc -o conftest -march=pentium4 -O3 -pipe -fomit-frame-pointer -yet_exec   
conftest.c  1>&5
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1S_noncsu.o(.text+0x0): In function `_start':
: multiple definition of `_start'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1.o(.text+0x0): first defined here
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1S_noncsu.o(.rodata+0x0): multiple definition 
of `_fp_hw'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1.o(.rodata+0x0): first defined here
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1S_noncsu.o(.data+0x0): In function 
`data_start':
: multiple definition of `__data_start'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1.o(.data+0x0): first defined here
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1S_noncsu.o(.rodata+0x4): multiple definition 
of `_IO_stdin_used'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../crt1.o(.rodata+0x4): first defined here
collect2: ld returned 1 exit status
configure: failed program was:

#line 1162 "configure"
#include "confdefs.h"

main(){return(0);}
Comment 1 SpanKY gentoo-dev 2003-11-03 11:18:52 UTC
sys_oim.c:38: can't find a register in class `BREG' while reloading `asm'

that is a PIC bug
Comment 2 Catherine 2003-11-17 16:44:31 UTC
I had this problem too with the same live cd 2.6  I even bootstrapped twice because I thought the first time borked...but what I found is the hardened-gcc is causing modutils to not compile.  So i did:

#hardened-gcc -r

and it put gcc back to it's original settings.  I just finished compiling it successfully by turning off hardend-gcc.
Comment 3 Tim Yamin (RETIRED) gentoo-dev 2003-11-18 08:25:33 UTC
Reassigning, as this is not a code problem and looks more like a configure / GCC problem. The corrupted symbols are in the GCC area, not the modutils area, so something is wrong with your GCC... Try running autoconf if autoconf is used for generating the configure script incase something is wrong with that. Or, this may be a hardened-gcc bug as <luedchic at yahoo dot com> reported...
Comment 4 Alexander Gabert (RETIRED) gentoo-dev 2003-11-18 10:07:08 UTC
this is caused by crt1.o and crt1S_noncsu.o being linked into a binary at the same time... leading to the _start being inside the target binary twice, which leads into this linking error

can you do cat $(gcc-config -L)/specs into this bug please if gcc-config -L works for you and gives out a valid directory, otherwise get the dirname from gcc -v and cd into the directory and give me the specs file

and then hardened-gcc -l and hardened-gcc -v

thanks in advance,

Alex
Comment 5 solar (RETIRED) gentoo-dev 2003-11-18 15:06:04 UTC
Why would it link to crt1S_noncsu.o at all if it's filtering -fPIC and appending -yet_exec?
Comment 6 Alexander Gabert (RETIRED) gentoo-dev 2004-09-23 18:56:04 UTC
modutils is fixed.