This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: bootstrap/10805: [sun-solaris2.7] relocation error when creating sparcv9/libgcc_s.so.1


> One difference is that I do not have this patch. I will try to install it
> as soon as I can. For the bootstrap compiler, I used:
> cc: Sun WorkShop 6 2000/04/07 C 5.1
> gcc (GCC) 3.2.2
>
> And both give the same result.

Steven Christensen tried with GCC 3.2.3 too and same result.

> >     Could you determine at which stage bootstrap fails?
> >     If the compiler's C source files were latterly compiled by cc, it's
> > stage1. If they were compiled by stage1/xgcc, it's stage2 and if they
> > were compiled by stage2/xgcc, it's stage3.
>
> first there is a lot of gcc. Then this gcc/xgcc. Actually this should be
> clearer:
>
> make[3]: *** [sparcv9/libgcc_s_sparcv9.so] Error 1
> make[3]: Leaving directory `/global/lavarenne/download/gcc-3.3/gcc'
> make[2]: *** [stmp-multilib] Error 2
> make[2]: Leaving directory `/global/lavarenne/download/gcc-3.3/gcc'
> make[1]: *** [stage1_build] Error 2
> make[1]: Leaving directory `/global/lavarenne/download/gcc-3.3/gcc'
> make: *** [bootstrap] Error 2

Ok, it's stage1. Given that we have the same problem with 3 different 
bootstrap compilers, I'm inclined to suspect the Sun assembler.

> With the messages:
>
> ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
> symbol <unknown>:  offset 0xffffffff7ec133e7 is non-aligned
>
> ld: fatal: relocation error: R_SPARC_64: file libgcc/sparcv9/_muldi3.o:
> symbol <unknown>:  offset 0xffffffff7ec133eb is non-aligned
>
> ld: fatal: relocation error: R_SPARC_64: file libgcc/sparcv9/_muldi3.o:
> symbol <unknown>:  offset 0xffffffff7ec133f3 is non-aligned
>
> ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
> symbol <unknown>:  offset 0xffffffff7ec13867 is non-aligned
>
> ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
> symbol <unknown>:  offset 0xffffffff7ec14a2f is non-aligned
>
> But about all the .o give this kind of messages.

I think the relocations type R_SPARC_32 and R_SPARC_64 are wrong here because 
the offsets are rightfully unaligned. The same dump on my Solaris 7 box 
shows only R_SPARC_UA32 and R_SPARC_UA64 types which are described by the 
Sun docs as follows:

R_SPARC_UA32

    This relocation type resembles R_SPARC_32, except that it refers to an 
unaligned word. That is, the word to be relocated must be treated as four 
separate bytes with arbitrary alignment, not as a word aligned according to 
the architecture requirements.

-- 
Eric Botcazou


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]