[13/14] dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2
Checks
Commit Message
The test appears to use _dlfcn_hook@@GLIBC_PRIVATE as a way to
test dlvsym without having to know the appropriate symbol version.
With <first-versions.h>, we can use a public symbol and the symbol
version at which it was defined first.
---
dlfcn/modstatic2.c | 3 ++-
dlfcn/tststatic2.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
Comments
On Mai 25 2021, Florian Weimer via Libc-alpha wrote:
> diff --git a/dlfcn/modstatic2.c b/dlfcn/modstatic2.c
> index 9b5aae8b9f..34568d4e6e 100644
> --- a/dlfcn/modstatic2.c
> +++ b/dlfcn/modstatic2.c
> @@ -4,6 +4,7 @@
> #include <stdlib.h>
> #include <string.h>
> #include <gnu/lib-names.h>
> +#include <first-versions.h>
>
> int test (FILE *out, int a);
>
> @@ -117,7 +118,7 @@ test (FILE *out, int a)
> exit (1);
> }
>
> - if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
> + if (dlvsym (handle2, "malloc", FIRST_VERSION_libc_malloc_STRING) == NULL)
Shouldn't that use a public symbol from libdl?
Andreas.
* Andreas Schwab:
> On Mai 25 2021, Florian Weimer via Libc-alpha wrote:
>
>> diff --git a/dlfcn/modstatic2.c b/dlfcn/modstatic2.c
>> index 9b5aae8b9f..34568d4e6e 100644
>> --- a/dlfcn/modstatic2.c
>> +++ b/dlfcn/modstatic2.c
>> @@ -4,6 +4,7 @@
>> #include <stdlib.h>
>> #include <string.h>
>> #include <gnu/lib-names.h>
>> +#include <first-versions.h>
>>
>> int test (FILE *out, int a);
>>
>> @@ -117,7 +118,7 @@ test (FILE *out, int a)
>> exit (1);
>> }
>>
>> - if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
>> + if (dlvsym (handle2, "malloc", FIRST_VERSION_libc_malloc_STRING) == NULL)
>
> Shouldn't that use a public symbol from libdl?
libdl is empty at this point, and there are no
FIRST_VERSION_libdl_*_STRING macros left. I could use
FIRST_VERSION_libc_dlopen_STRING, I assume. But malloc has the
advantage that it's unlikely that there are going to be multiple symbol
versions for it.
Thanks,
Florian
On Mai 25 2021, Florian Weimer wrote:
> But malloc has the advantage that it's unlikely that there are going
> to be multiple symbol versions for it.
What would happen if it did?
Andreas.
* Andreas Schwab:
> On Mai 25 2021, Florian Weimer wrote:
>
>> But malloc has the advantage that it's unlikely that there are going
>> to be multiple symbol versions for it.
>
> What would happen if it did?
The test will still work, I think, but anyone reading it will wonder if
the intent is to test multiple symbol versions at the same symbol.
Thanks,
Florian
On Mai 25 2021, Florian Weimer wrote:
> The test will still work, I think, but anyone reading it will wonder if
> the intent is to test multiple symbol versions at the same symbol.
Then I think a comment is needed.
Andreas.
@@ -4,6 +4,7 @@
#include <stdlib.h>
#include <string.h>
#include <gnu/lib-names.h>
+#include <first-versions.h>
int test (FILE *out, int a);
@@ -117,7 +118,7 @@ test (FILE *out, int a)
exit (1);
}
- if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
+ if (dlvsym (handle2, "malloc", FIRST_VERSION_libc_malloc_STRING) == NULL)
{
fprintf (out, "dlvsym: %s\n", dlerror ());
exit (1);
@@ -4,6 +4,7 @@
#include <stdlib.h>
#include <string.h>
#include <gnu/lib-names.h>
+#include <first-versions.h>
static int
do_test (void)
@@ -115,7 +116,7 @@ do_test (void)
exit (1);
}
- if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
+ if (dlvsym (handle2, "malloc", FIRST_VERSION_libc_malloc_STRING) == NULL)
{
printf ("dlvsym: %s\n", dlerror ());
exit (1);