Christian Weisgerber wrote and mailed:
> Janjaap van Velthooven <[email protected]> wrote:
>
> > For some obscure reason this gave successes. After splitting up
> > alpha/rtld_machine.c into 2 or mor parts, any combination where the
> > 1st and the 3rd function (_dl_md_reloc and _dl_md_reloc_got) were
> > not in the same source allowed the split-up sources to be compiled
> > without breaking ld.so. Looking with my untrained eye at the generated
> > assembly or the dissasembled objects did not give me any clue as
> > to why this was happening.
> I split _dl_md_reloc_got() out into a separate file and compared
> the generated assembly language. There are no differences. I also
> disassembled the object files, no code differences.
I did similar and saw no noticable differences either,
other than the address the function was on that is..
> I wonder if ld(1) could be to blame.
If so, why would it do that? It should behave the same as when compiled
with gcc3 (theoretically at least)..
I can think of some theories:
- does compiling ld with gcc4 introduce/expose a bug in ld?
(I used a gcc4 compiled ld back then)
- does the gcc4 compiled rtld_machine.c cause an other codepath than
the gcc3 compiled version in ld on which there has always been a bug?
Janjaap van Velthooven
-- ________________________________________
/ __/ /_ / ______/ /_ __/ __/ /___ /
/ /_ __/___/_/_ /___ / / __/ /___ / / [email protected]
/___/_/_________/_____/_/_/_/_______/_/_/