diff mbox series

[v5,2/6] elf: Always provide _dl_get_dl_main_map in libc.a

Message ID 20231222165830.2100438-3-hjl.tools@gmail.com
State New
Headers show
Series x86/cet: Update CET kernel interface | expand

Commit Message

H.J. Lu Dec. 22, 2023, 4:58 p.m. UTC
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

Adhemerval Zanella Netto Dec. 29, 2023, 2:45 p.m. UTC | #1
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;
>
H.J. Lu Dec. 29, 2023, 3:15 p.m. UTC | #2
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.
diff mbox series

Patch

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")));
+
 /* Find origin of the executable.  */
 extern const char *_dl_get_origin (void) attribute_hidden;