[v5,2/6] elf: Always provide _dl_get_dl_main_map in libc.a
Checks
Context |
Check |
Description |
redhat-pt-bot/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_build--master-arm |
fail
|
Patch failed to apply
|
Commit Message
Always provide _dl_get_dl_main_map in libc.a. It will be used by x86
to process PT_GNU_PROPERTY segment.
---
elf/dl-support.c | 2 --
sysdeps/generic/ldsodefs.h | 8 ++++----
2 files changed, 4 insertions(+), 6 deletions(-)
Comments
On 22/12/23 13:58, H.J. Lu wrote:
> Always provide _dl_get_dl_main_map in libc.a. It will be used by x86
> to process PT_GNU_PROPERTY segment.
> ---
> elf/dl-support.c | 2 --
> sysdeps/generic/ldsodefs.h | 8 ++++----
> 2 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/elf/dl-support.c b/elf/dl-support.c
> index 837fa1c836..70c5b3599a 100644
> --- a/elf/dl-support.c
> +++ b/elf/dl-support.c
> @@ -344,7 +344,6 @@ _dl_non_dynamic_init (void)
> DL_SYSINFO_IMPLEMENTATION
> #endif
>
> -#if ENABLE_STATIC_PIE
> /* Since relocation to hidden _dl_main_map causes relocation overflow on
> aarch64, a function is used to get the address of _dl_main_map. */
>
> @@ -353,7 +352,6 @@ _dl_get_dl_main_map (void)
> {
> return &_dl_main_map;
> }
> -#endif
>
> /* This is used by _dl_runtime_profile, not used on static code. */
> void
> diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
> index 9b50ddd09f..0e8a008a49 100644
> --- a/sysdeps/generic/ldsodefs.h
> +++ b/sysdeps/generic/ldsodefs.h
> @@ -1172,10 +1172,6 @@ void __libc_setup_tls (void);
> # if ENABLE_STATIC_PIE
> /* Relocate static executable with PIE. */
> extern void _dl_relocate_static_pie (void) attribute_hidden;
> -
> -/* Get a pointer to _dl_main_map. */
> -extern struct link_map * _dl_get_dl_main_map (void)
> - __attribute__ ((visibility ("hidden")));
> # else
> # define _dl_relocate_static_pie()
> # endif
> @@ -1217,6 +1213,10 @@ rtld_hidden_proto (_dl_deallocate_tls)
>
> extern void _dl_nothread_init_static_tls (struct link_map *) attribute_hidden;
>
> +/* Get a pointer to _dl_main_map. */
> +extern struct link_map * _dl_get_dl_main_map (void)
> + __attribute__ ((visibility ("hidden")));
You can se attribute_hidden here.
> +
> /* Find origin of the executable. */
> extern const char *_dl_get_origin (void) attribute_hidden;
>
On Fri, Dec 29, 2023 at 6:45 AM Adhemerval Zanella Netto
<adhemerval.zanella@linaro.org> wrote:
>
>
>
> On 22/12/23 13:58, H.J. Lu wrote:
> > Always provide _dl_get_dl_main_map in libc.a. It will be used by x86
> > to process PT_GNU_PROPERTY segment.
> > ---
> > elf/dl-support.c | 2 --
> > sysdeps/generic/ldsodefs.h | 8 ++++----
> > 2 files changed, 4 insertions(+), 6 deletions(-)
> >
> > diff --git a/elf/dl-support.c b/elf/dl-support.c
> > index 837fa1c836..70c5b3599a 100644
> > --- a/elf/dl-support.c
> > +++ b/elf/dl-support.c
> > @@ -344,7 +344,6 @@ _dl_non_dynamic_init (void)
> > DL_SYSINFO_IMPLEMENTATION
> > #endif
> >
> > -#if ENABLE_STATIC_PIE
> > /* Since relocation to hidden _dl_main_map causes relocation overflow on
> > aarch64, a function is used to get the address of _dl_main_map. */
> >
> > @@ -353,7 +352,6 @@ _dl_get_dl_main_map (void)
> > {
> > return &_dl_main_map;
> > }
> > -#endif
> >
> > /* This is used by _dl_runtime_profile, not used on static code. */
> > void
> > diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
> > index 9b50ddd09f..0e8a008a49 100644
> > --- a/sysdeps/generic/ldsodefs.h
> > +++ b/sysdeps/generic/ldsodefs.h
> > @@ -1172,10 +1172,6 @@ void __libc_setup_tls (void);
> > # if ENABLE_STATIC_PIE
> > /* Relocate static executable with PIE. */
> > extern void _dl_relocate_static_pie (void) attribute_hidden;
> > -
> > -/* Get a pointer to _dl_main_map. */
> > -extern struct link_map * _dl_get_dl_main_map (void)
> > - __attribute__ ((visibility ("hidden")));
> > # else
> > # define _dl_relocate_static_pie()
> > # endif
> > @@ -1217,6 +1213,10 @@ rtld_hidden_proto (_dl_deallocate_tls)
> >
> > extern void _dl_nothread_init_static_tls (struct link_map *) attribute_hidden;
> >
> > +/* Get a pointer to _dl_main_map. */
> > +extern struct link_map * _dl_get_dl_main_map (void)
> > + __attribute__ ((visibility ("hidden")));
>
> You can se attribute_hidden here.
Fixed.
> > +
> > /* Find origin of the executable. */
> > extern const char *_dl_get_origin (void) attribute_hidden;
> >
Thanks.
@@ -344,7 +344,6 @@ _dl_non_dynamic_init (void)
DL_SYSINFO_IMPLEMENTATION
#endif
-#if ENABLE_STATIC_PIE
/* Since relocation to hidden _dl_main_map causes relocation overflow on
aarch64, a function is used to get the address of _dl_main_map. */
@@ -353,7 +352,6 @@ _dl_get_dl_main_map (void)
{
return &_dl_main_map;
}
-#endif
/* This is used by _dl_runtime_profile, not used on static code. */
void
@@ -1172,10 +1172,6 @@ void __libc_setup_tls (void);
# if ENABLE_STATIC_PIE
/* Relocate static executable with PIE. */
extern void _dl_relocate_static_pie (void) attribute_hidden;
-
-/* Get a pointer to _dl_main_map. */
-extern struct link_map * _dl_get_dl_main_map (void)
- __attribute__ ((visibility ("hidden")));
# else
# define _dl_relocate_static_pie()
# endif
@@ -1217,6 +1213,10 @@ rtld_hidden_proto (_dl_deallocate_tls)
extern void _dl_nothread_init_static_tls (struct link_map *) attribute_hidden;
+/* Get a pointer to _dl_main_map. */
+extern struct link_map * _dl_get_dl_main_map (void)
+ __attribute__ ((visibility ("hidden")));
+
/* Find origin of the executable. */
extern const char *_dl_get_origin (void) attribute_hidden;