mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
b9e33f301e
The symbol versioning tests mix C-visible symbols and linker-visible symbols in order to verify .symver behavior. This works for most people, but fail for targets that have a symbol prefix. So add a helper file with macros that expand gcc's __USER_LABEL_PREFIX__ as necessary and convert all .symver users over to it. Now that the tests are usable on prefixed targets, update the tests to take into account an optional leading underscore. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
54 lines
525 B
C
54 lines
525 B
C
/*
|
|
* Testcase to verify that foo@BAR and foo@@BAR are correctly detected
|
|
* as a multiply defined symbol.
|
|
*/
|
|
#include "vers.h"
|
|
|
|
const char * bar1 = "asdf";
|
|
const char * bar2 = "asdf";
|
|
|
|
int
|
|
bar()
|
|
{
|
|
return 3;
|
|
}
|
|
|
|
int
|
|
original_foo()
|
|
{
|
|
return 1+bar();
|
|
|
|
}
|
|
|
|
int
|
|
old_foo()
|
|
{
|
|
return 10+bar();
|
|
|
|
}
|
|
|
|
int
|
|
old_foo1()
|
|
{
|
|
return 100+bar();
|
|
|
|
}
|
|
|
|
int
|
|
new_foo()
|
|
{
|
|
return 1000+bar();
|
|
|
|
}
|
|
|
|
SYMVER(original_foo, foo@);
|
|
SYMVER(old_foo, foo@VERS_1.1);
|
|
SYMVER(old_foo1, foo@VERS_1.2);
|
|
SYMVER(new_foo, foo@@VERS_1.2);
|
|
|
|
int
|
|
main ()
|
|
{
|
|
return 0;
|
|
}
|