diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-07-31 12:58:35 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-08-19 14:54:07 -0300 |
commit | 745c3cc10f2d5173a25e3bd4d022d304f4ac9a47 (patch) | |
tree | e40ae8426bd3998c2b5ef8149d8d45bacb12bd59 /sysdeps | |
parent | 294a8927694ed866ffc40833f1b6d96cd649df0a (diff) | |
download | glibc-745c3cc10f2d5173a25e3bd4d022d304f4ac9a47.zip glibc-745c3cc10f2d5173a25e3bd4d022d304f4ac9a47.tar.gz glibc-745c3cc10f2d5173a25e3bd4d022d304f4ac9a47.tar.bz2 |
elf: Make dl-fptr and dl-symaddr hppa specific
With ia64 removal, the function descriptor supports is only used
by HPPA and new architectures do not seem leaning towards this
design.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/dl-fptr.h | 45 | ||||
-rw-r--r-- | sysdeps/hppa/dl-fptr.h | 23 |
2 files changed, 22 insertions, 46 deletions
diff --git a/sysdeps/generic/dl-fptr.h b/sysdeps/generic/dl-fptr.h deleted file mode 100644 index 71cfb62..0000000 --- a/sysdeps/generic/dl-fptr.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Function descriptors. Generic version. - Copyright (C) 1995-2024 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/>. */ - -#ifndef dl_fptr_h -#define dl_fptr_h 1 - -/* An FDESC is a function descriptor. */ - -struct fdesc - { - ElfW(Addr) ip; /* code entry point */ - ElfW(Addr) gp; /* global pointer */ - }; - -struct fdesc_table - { - struct fdesc_table *next; - unsigned int len; /* # of entries in fdesc table */ - volatile unsigned int first_unused; /* index of first available entry */ - struct fdesc fdesc[0]; - }; - -struct link_map; - -extern ElfW(Addr) _dl_boot_fptr_table []; - -extern ElfW(Addr) _dl_make_fptr (struct link_map *, const ElfW(Sym) *, - ElfW(Addr)); - -#endif /* !dl_fptr_h */ diff --git a/sysdeps/hppa/dl-fptr.h b/sysdeps/hppa/dl-fptr.h index 7c5eb0b..b7fd9cf 100644 --- a/sysdeps/hppa/dl-fptr.h +++ b/sysdeps/hppa/dl-fptr.h @@ -19,7 +19,28 @@ #ifndef dl_hppa_fptr_h #define dl_hppa_fptr_h 1 -#include <sysdeps/generic/dl-fptr.h> +/* An FDESC is a function descriptor. */ + +struct fdesc + { + ElfW(Addr) ip; /* code entry point */ + ElfW(Addr) gp; /* global pointer */ + }; + +struct fdesc_table + { + struct fdesc_table *next; + unsigned int len; /* # of entries in fdesc table */ + volatile unsigned int first_unused; /* index of first available entry */ + struct fdesc fdesc[0]; + }; + +struct link_map; + +extern ElfW(Addr) _dl_boot_fptr_table []; + +extern ElfW(Addr) _dl_make_fptr (struct link_map *, const ElfW(Sym) *, + ElfW(Addr)); /* Initialize function pointer code. Call before relocation processing. */ extern void _dl_fptr_init (void); |