This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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: Problem with LD-to-LE relaxation in gnu2 tls-dialect (IA32 and X86-64)


On Tue, Jul 15, 2008 at 1:33 PM, Alexandre Oliva <aoliva@redhat.com> wrote:
> On Jul 15, 2008, "H.J. Lu" <hjl.tools@gmail.com> wrote:
>
>> So the old link-time testcase doesn't catch the error. How can we be
>> sure that the updated link-time testcase will catch the error?
>
> Well, because I took code from an actual run-time testcase and put in
> it, which I hadn't done before.

>From your ChangeLog entries:

	* ld-i386/tlsbindesc.dd: Adjust incorrect expectations for LD to
	LE relaxation.
	* ld-x86-64/tlsbindesc.dd: Likewise.
	* ld-i386/tlsbindesc.rd: Adjust address of _TLS_MODULE_BASE_.
	* ld-x86-64/tlsbindesc.rd: Likewise.

The only changes are the expected outputs. The only thing I
know is they match the linker's outputs :-).

>> I would like to see a run-time testcase if possible.
>
> I don't even know whether the GNU ld testsuite has infrastructure for
> that, but what I can say at this point is that a run-time testcase
> would be redundant, and it wouldn't work in cross-compilation
> settings.

Many linker run-time tests have

# This test can only be run if ld generates native executables.
if ![isnative] then {return}

>
> That said, I wouldn't oppose if someone else were to turn the program
> I attached into a testcase.  If that is requested of me as a condition
> for acceptance of the fix, I could use a pointer to other run-time
> tests in the GNU ld testsuite.
>

Can you take a look at


ld-auto-import/auto-import.exp:if ![isnative] then {return}
ld-bootstrap/bootstrap.exp:if ![isnative] {
ld-cdtest/cdtest.exp:if ![isnative] {
ld-cygwin/exe-export.exp:if ![isnative] then {
ld-elf/dwarf.exp:if ![isnative] {
ld-elf/elf.exp:if ![isnative] {
ld-elf/shared.exp:if ![isnative] {
ld-elfvers/vers.exp:if ![isnative] then {return}
ld-elfvsb/elfvsb.exp:if ![isnative] then {return}
ld-elfweak/elfweak.exp:if ![isnative] then {return}
ld-elf/wrap.exp:if ![isnative] {
ld-pe/direct.exp:if ![isnative] then {
ld-pie/pie.exp:if ![isnative] then {return}
ld-shared/shared.exp:if ![isnative] then {return}

Those are native run-time linker tests.

Thanks.

-- 
H.J.


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