mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 02:03:35 +08:00
864198ed30
There is a configure test for assembler support for the gnu_unique_object symbol type. This support was added in binutils 2.20, so is present in all versions supported for building glibc. Thus, I think the configure test can be removed; this patch does so. Now, there is a caveat that the gas NEWS entry refers to this as a feature for GNU/Linux targets. But the condition is use of ELFOSABI_GNU or ELFOSABI_NONE. ELFOSABI_GNU covers Hurd as well as GNU/Linux (as was the case with the older ELFOSABI_LINUX name), and ELFOSABI_NONE means this is effectively OS-independent. Furthermore, I think a correct binutils port for any glibc target ought to support this feature for use with glibc; glibc supports this as an OS-independent feature (the configure test is only about glibc testcases). Tested for x86_64 (testsuite, and that installed shared libraries are unchanged by the patch). * configure.ac (libc_cv_asm_unique_object): Remove configure test. * configure: Regenerated. * config.h.in (HAVE_ASM_UNIQUE_OBJECT): Remove #undef. * elf/tst-unique1.c (do_test) [HAVE_ASM_UNIQUE_OBJECT]: Make code unconditional. * elf/tst-unique1mod1.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise. * elf/tst-unique1mod2.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise. * elf/tst-unique2.c (do_test) [HAVE_ASM_UNIQUE_OBJECT]: Likewise. (do_test) [!HAVE_ASM_UNIQUE_OBJECT]: Remove conditional code. * elf/tst-unique2mod1.c [HAVE_ASM_UNIQUE_OBJECT]: Make code unconditional. * elf/tst-unique2mod2.c [HAVE_ASM_UNIQUE_OBJECT]: Likewise.
29 lines
477 B
C
29 lines
477 B
C
#include <config.h>
|
|
#include <dlfcn.h>
|
|
#include <stdio.h>
|
|
|
|
extern int var;
|
|
|
|
static int
|
|
do_test (void)
|
|
{
|
|
var = 1;
|
|
|
|
void *h = dlopen ("tst-unique2mod2.so", RTLD_LAZY);
|
|
if (h == NULL)
|
|
{
|
|
puts ("cannot load tst-unique2mod2");
|
|
return 1;
|
|
}
|
|
int (*f) (int *) = dlsym (h, "f");
|
|
if (f == NULL)
|
|
{
|
|
puts ("cannot locate f in tst-unique2mod2");
|
|
return 1;
|
|
}
|
|
return f (&var);
|
|
}
|
|
|
|
#define TEST_FUNCTION do_test ()
|
|
#include "../test-skeleton.c"
|