From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: Florian Weimer <fweimer@redhat.com>, libc-alpha@sourceware.org
Subject: Re: [PATCH 08/23] mips: Remove _dl_var_init
Date: Thu, 13 May 2021 16:37:26 -0300 [thread overview]
Message-ID: <a1847f76-bf50-6c38-cae8-22a10c9af855@linaro.org> (raw)
In-Reply-To: <39e443d8c6048bb2509de5498ad36935f7126261.1620838411.git.fweimer@redhat.com>
On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> The generic __rtld_static_init code handles GLRO (dl_pagesize).
LGTM.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> sysdeps/unix/sysv/linux/mips/Makefile | 4 --
> sysdeps/unix/sysv/linux/mips/Versions | 6 --
> sysdeps/unix/sysv/linux/mips/dl-static.c | 84 ------------------------
> sysdeps/unix/sysv/linux/mips/ldsodefs.h | 6 --
> 4 files changed, 100 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/mips/dl-static.c
>
> diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
> index 026ba242cf..d5725c69d8 100644
> --- a/sysdeps/unix/sysv/linux/mips/Makefile
> +++ b/sysdeps/unix/sysv/linux/mips/Makefile
> @@ -57,10 +57,6 @@ abi-n64_hard_2008-condition := defined(__mips_nan2008) \
> && (_MIPS_SIM == _MIPS_SIM_ABI64)
>
> ifeq ($(subdir),elf)
> -ifeq ($(build-shared),yes)
> -# This is needed for DSO loading from static binaries.
> -sysdep-dl-routines += dl-static
> -endif
> # If the compiler doesn't use GNU.stack note,
> # this test is expected to fail.
> ifneq ($(mips-has-gnustack),yes)
> diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
> index 0ec82dc480..aeaac41744 100644
> --- a/sysdeps/unix/sysv/linux/mips/Versions
> +++ b/sysdeps/unix/sysv/linux/mips/Versions
> @@ -1,9 +1,3 @@
> -ld {
> - GLIBC_PRIVATE {
> - # used for loading by static libraries
> - _dl_var_init;
> - }
> -}
> libc {
> GLIBC_2.0 {
> _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
> diff --git a/sysdeps/unix/sysv/linux/mips/dl-static.c b/sysdeps/unix/sysv/linux/mips/dl-static.c
> deleted file mode 100644
> index 07947c2a00..0000000000
> --- a/sysdeps/unix/sysv/linux/mips/dl-static.c
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -/* Variable initialization. MIPS version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public
> - License as published by the Free Software Foundation; either
> - version 2.1 of the License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library. If not, see
> - <https://www.gnu.org/licenses/>. */
> -
> -#include <ldsodefs.h>
> -
> -#ifdef SHARED
> -
> -void
> -_dl_var_init (void *array[])
> -{
> - /* It has to match "variables" below. */
> - enum
> - {
> - DL_PAGESIZE = 0
> - };
> -
> - GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
> -}
> -
> -#else
> -
> -static void *variables[] =
> -{
> - &GLRO(dl_pagesize)
> -};
> -
> -static void
> -_dl_unprotect_relro (struct link_map *l)
> -{
> - ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
> - & ~(GLRO(dl_pagesize) - 1));
> - ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
> - & ~(GLRO(dl_pagesize) - 1));
> -
> - if (start != end)
> - __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
> -}
> -
> -void
> -_dl_static_init (struct link_map *l)
> -{
> - struct link_map *rtld_map = l;
> - struct r_scope_elem **scope;
> - const ElfW(Sym) *ref = NULL;
> - lookup_t loadbase;
> - void (*f) (void *[]);
> - size_t i;
> -
> - loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
> - NULL, 0, 1, NULL);
> -
> - for (scope = l->l_local_scope; *scope != NULL; scope++)
> - for (i = 0; i < (*scope)->r_nlist; i++)
> - if ((*scope)->r_list[i] == loadbase)
> - {
> - rtld_map = (*scope)->r_list[i];
> - break;
> - }
> -
> - if (ref != NULL)
> - {
> - f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
> - _dl_unprotect_relro (rtld_map);
> - f (variables);
> - _dl_protect_relro (rtld_map);
> - }
> -}
> -
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
> index 7510248ef0..f609eb12c3 100644
> --- a/sysdeps/unix/sysv/linux/mips/ldsodefs.h
> +++ b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
> @@ -23,12 +23,6 @@
>
> /* Now define our stuff. */
>
> -/* We need special support to initialize DSO loaded for statically linked
> - binaries. */
> -extern void _dl_static_init (struct link_map *map);
> -#undef DL_STATIC_INIT
> -#define DL_STATIC_INIT(map) _dl_static_init (map)
> -
> /* Allow ABIVERSION == 1, meaning PLTs and copy relocations are
> required, with ELFOSABI_SYSV, and ELFOSABI_GNU. */
> #undef VALID_ELF_ABIVERSION
>
next prev parent reply other threads:[~2021-05-13 19:37 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
2021-05-12 16:57 ` [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code Florian Weimer
2021-05-13 17:51 ` Adhemerval Zanella
2021-05-17 8:06 ` Florian Weimer
2021-05-18 17:28 ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 02/23] nptl: Move __nptl_create_event, __nptl_death_event into libc Florian Weimer
2021-05-13 18:04 ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802) Florian Weimer
2021-05-13 19:35 ` Adhemerval Zanella
2021-05-13 20:09 ` Florian Weimer
2021-05-13 20:11 ` Adhemerval Zanella
2021-05-13 20:44 ` Florian Weimer
2021-05-12 16:57 ` [PATCH 04/23] aarch64: Remove _dl_var_init Florian Weimer
2021-05-13 19:36 ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 05/23] arc: " Florian Weimer
2021-05-13 19:36 ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 06/23] ia64: " Florian Weimer
2021-05-13 19:37 ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 07/23] m68k: " Florian Weimer
2021-05-13 19:37 ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 08/23] mips: " Florian Weimer
2021-05-13 19:37 ` Adhemerval Zanella [this message]
2021-05-12 16:58 ` [PATCH 09/23] powerpc: " Florian Weimer
2021-05-13 19:38 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 10/23] elf: Remove DL_STATIC_INIT Florian Weimer
2021-05-13 19:38 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 11/23] elf: Move static TLS size and alignment into _rtld_global_ro Florian Weimer
2021-05-13 19:45 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 12/23] nptl: Introduce __nptl_deferred_init Florian Weimer
2021-05-13 20:20 ` Adhemerval Zanella
2021-05-13 20:51 ` Florian Weimer
2021-05-14 11:57 ` Adhemerval Zanella
2021-05-14 12:22 ` Florian Weimer
2021-05-14 13:29 ` Adhemerval Zanella
2021-05-14 19:16 ` Carlos O'Donell
2021-05-14 19:27 ` Florian Weimer
2021-05-15 2:02 ` Carlos O'Donell
2021-05-18 17:29 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables Florian Weimer
2021-05-14 12:40 ` Adhemerval Zanella
2021-05-17 8:14 ` Florian Weimer
2021-05-18 17:33 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 14/23] nptl: Move pthread_getattr_default_np into libc Florian Weimer
2021-05-14 14:00 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 15/23] nptl: Remove unused nptl/pthread_getcpuclockid.c implementation Florian Weimer
2021-05-13 20:22 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 16/23] Linux: Move implementation of pthread_getcpuclockid to nptl directory Florian Weimer
2021-05-13 20:23 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 17/23] nptl: Move pthread_getcpuclockid into libc Florian Weimer
2021-05-14 14:05 ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 18/23] nptl: Move pthread_getname_np " Florian Weimer
2021-05-14 14:44 ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 19/23] nptl: Move pthread_setaffinity_np " Florian Weimer
2021-05-14 14:45 ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 20/23] nptl: Move pthread_setname_np " Florian Weimer
2021-05-14 14:46 ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 21/23] nptl: Move pthread_setschedprio " Florian Weimer
2021-05-14 14:47 ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 22/23] nptl: Move pthread_sigqueue " Florian Weimer
2021-05-14 14:48 ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 23/23] nptl: Move semi-public __pthread_get_minstack symbol " Florian Weimer
2021-05-14 14:50 ` Adhemerval Zanella
2021-05-17 9:12 ` [PATCH 00/23] nptl: Move almost all remaining functions " Florian Weimer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a1847f76-bf50-6c38-cae8-22a10c9af855@linaro.org \
--to=adhemerval.zanella@linaro.org \
--cc=fweimer@redhat.com \
--cc=libc-alpha@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).