This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: selective[1245] xfail on x86-64
Hi Alan,
> > Hmm - well at the very least I think that you ought to add a comment
> > as well, explaining that it is relocs in the .eh_frame section that
> > are keeping the redundant symbols in the executables. It would also
> > be good to add a FIXME note to the x86_64 sources somewhere saying
> > that this ought to be corrected some day.
>
> It's not specific to x86_64. I see the same thing on powerpc64, and
> I think other targets will suffer the same problem.
Ok - well then perhaps there ought to be a more generic test in
selective.exp. Something like:
# The following targets generate a .eh_frame section which
# will contain relocs referencing all the functions in the
# main program. This prevents unused functions from being
# removed via garbage collection, so that selective tests
# 1, 2, 4, 5 will fail.
if {[istarget "x86_64-*"] || [istarget "powerpc*64*-*"]} {
set seltests {
{selective3 C 2.c {-u foo} {foo} {{foo 0}} {}}
{selective6 C++ 5.cc {} {start a A::bar()} {A::foo() B::foo() dropme1() dropme2()} {}}
}
} else {
set seltests {
{selective1 C 1.c {} {} {dropme1 dropme2} {}}
{selective2 C 2.c {} {} {foo} {mips*-*}}
{selective3 C 2.c {-u foo} {foo} {{foo 0}} {mips*-*}}
{selective4 C++ 3.cc {} {start a A::foo() B::foo()} {A::bar()} {mips*-*}}
{selective5 C++ 4.cc {} {start a A::bar()} {A::foo() B::foo()} {mips*-*}}
{selective6 C++ 5.cc {} {start a A::bar()} {A::foo() B::foo() dropme1() dropme2()} {}}
}
}
Cheers
Nick