This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
ld-elfvsb failures
- From: Jakub Jelinek <jakub at redhat dot com>
- To: binutils at sources dot redhat dot com
- Date: Mon, 2 Aug 2004 17:49:33 +0200
- Subject: ld-elfvsb failures
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
Hi!
I get
FAIL: visibility (hidden_normal) (non PIC)
FAIL: visibility (hidden_normal) (non PIC, load offset)
FAIL: visibility (hidden_normal) (PIC main, non PIC so)
FAIL: visibility (hidden_undef_def) (non PIC)
FAIL: visibility (hidden_undef_def) (non PIC, load offset)
FAIL: visibility (hidden_undef_def)
FAIL: visibility (hidden_undef_def) (PIC main, non PIC so)
FAIL: visibility (hidden_undef_def) (PIC main)
FAIL: visibility (hidden_weak) (non PIC)
FAIL: visibility (hidden_weak) (non PIC, load offset)
FAIL: visibility (hidden_weak) (PIC main, non PIC so)
FAIL: visibility (protected) (non PIC)
FAIL: visibility (protected) (non PIC, load offset)
FAIL: visibility (protected) (PIC main, non PIC so)
FAIL: visibility (protected_undef_def) (non PIC)
FAIL: visibility (protected_undef_def) (non PIC, load offset)
FAIL: visibility (protected_undef_def) (PIC main, non PIC so)
FAIL: visibility (protected_weak) (non PIC)
FAIL: visibility (protected_weak) (non PIC, load offset)
FAIL: visibility (protected_weak) (PIC main, non PIC so)
FAIL: visibility (normal) (non PIC)
FAIL: visibility (normal) (non PIC, load offset)
FAIL: visibility (normal) (PIC main, non PIC so)
on ppc64 when using gcc 3.4, while none of these failures when using gcc
3.3. I haven't investigated all of them, but those that I have investigated
are clearly testsuite's fault.
Say compiling without -fpic/-fPIC:
extern int shlib_overriddencall2 ();
int
shlib_shlibcall2 ()
{
return shlib_overriddencall2 ();
}
int
shlib_overriddencall2 ()
{
return 7;
}
and overriding shlib_overriddencall2 is wrong, without -fpic/-fPIC
the compiler can assume (and assumes) the routine will not be overridden
as it is defined in the same file.
I think best would be to split some of the sources into smaller pieces,
so that the compiler can't make these assumptions.
Will work on it.
Jakub