diff options
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/getrandom-internal.h | 2 | ||||
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 15 | ||||
-rw-r--r-- | sysdeps/generic/libc-tsd.h | 60 | ||||
-rw-r--r-- | sysdeps/generic/math-type-macros-double.h | 2 | ||||
-rw-r--r-- | sysdeps/generic/math-type-macros-float.h | 2 | ||||
-rw-r--r-- | sysdeps/generic/math-type-macros-float128.h | 9 | ||||
-rw-r--r-- | sysdeps/generic/math-type-macros-ldouble.h | 2 | ||||
-rw-r--r-- | sysdeps/generic/math-type-macros.h | 1 | ||||
-rw-r--r-- | sysdeps/generic/sysdep.h | 3 |
9 files changed, 34 insertions, 62 deletions
diff --git a/sysdeps/generic/getrandom-internal.h b/sysdeps/generic/getrandom-internal.h index 7c54194..4872598 100644 --- a/sysdeps/generic/getrandom-internal.h +++ b/sysdeps/generic/getrandom-internal.h @@ -19,7 +19,7 @@ #ifndef _GETRANDOM_INTERNAL_H #define _GETRANDOM_INTERNAL_H -static inline void __getrandom_early_init (_Bool) +static inline void __getrandom_early_init (_Bool initial) { } diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index 5b12a41..fc4a3de 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -717,10 +717,23 @@ extern const ElfW(Phdr) *_dl_phdr; extern size_t _dl_phnum; #endif +/* Possible values for the glibc.rtld.execstack tunable. */ +enum stack_tunable_mode + { + /* Do not allow executable stacks, even if program requires it. */ + stack_tunable_mode_disable = 0, + /* Follows either ABI requirement, or the PT_GNU_STACK value. */ + stack_tunable_mode_enable = 1, + /* Always enable an executable stack. */ + stack_tunable_mode_force = 2 + }; + +void _dl_handle_execstack_tunable (void) attribute_hidden; + /* This function changes the permission of the memory region pointed by STACK_ENDP to executable and update the internal memory protection flags for future thread stack creation. */ -int _dl_make_stack_executable (void **stack_endp) attribute_hidden; +int _dl_make_stack_executable (const void *stack_endp) attribute_hidden; /* Variable pointing to the end of the stack (or close to it). This value must be constant over the runtime of the application. Some programs diff --git a/sysdeps/generic/libc-tsd.h b/sysdeps/generic/libc-tsd.h deleted file mode 100644 index b95e409..0000000 --- a/sysdeps/generic/libc-tsd.h +++ /dev/null @@ -1,60 +0,0 @@ -/* libc-internal interface for thread-specific data. Stub or TLS version. - Copyright (C) 1998-2025 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 _GENERIC_LIBC_TSD_H -#define _GENERIC_LIBC_TSD_H 1 - -/* This file defines the following macros for accessing a small fixed - set of thread-specific `void *' data used only internally by libc. - - __libc_tsd_define(CLASS, TYPE, KEY) -- Define or declare a datum with TYPE - for KEY. CLASS can be `static' for - keys used in only one source file, - empty for global definitions, or - `extern' for global declarations. - __libc_tsd_address(TYPE, KEY) -- Return the `TYPE *' pointing to - the current thread's datum for KEY. - __libc_tsd_get(TYPE, KEY) -- Return the `TYPE' datum for KEY. - __libc_tsd_set(TYPE, KEY, VALUE) -- Set the datum for KEY to VALUE. - - The set of available KEY's will usually be provided as an enum, - and contains (at least): - _LIBC_TSD_KEY_MALLOC - _LIBC_TSD_KEY_DL_ERROR - _LIBC_TSD_KEY_RPC_VARS - All uses must be the literal _LIBC_TSD_* name in the __libc_tsd_* macros. - Some implementations may not provide any enum at all and instead - using string pasting in the macros. */ - -#include <tls.h> - -/* When full support for __thread variables is available, this interface is - just a trivial wrapper for it. Without TLS, this is the generic/stub - implementation for wholly single-threaded systems. - - We don't define an enum for the possible key values, because the KEYs - translate directly into variables by macro magic. */ - -#define __libc_tsd_define(CLASS, TYPE, KEY) \ - CLASS __thread TYPE __libc_tsd_##KEY attribute_tls_model_ie; - -#define __libc_tsd_address(TYPE, KEY) (&__libc_tsd_##KEY) -#define __libc_tsd_get(TYPE, KEY) (__libc_tsd_##KEY) -#define __libc_tsd_set(TYPE, KEY, VALUE) (__libc_tsd_##KEY = (VALUE)) - -#endif /* libc-tsd.h */ diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h index 1e84d3f..f03aea1 100644 --- a/sysdeps/generic/math-type-macros-double.h +++ b/sysdeps/generic/math-type-macros-double.h @@ -28,6 +28,8 @@ #define M_STRTO_NAN __strtod_nan #define M_USE_BUILTIN(c) USE_ ##c ##_BUILTIN +#define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUND (RM) + #include <libm-alias-double.h> #include <math-nan-payload-double.h> diff --git a/sysdeps/generic/math-type-macros-float.h b/sysdeps/generic/math-type-macros-float.h index 4aac524..445535a 100644 --- a/sysdeps/generic/math-type-macros-float.h +++ b/sysdeps/generic/math-type-macros-float.h @@ -30,6 +30,8 @@ /* GNU extension float constant macros. */ #define M_MLIT(c) c ## f +#define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUNDF (RM) + #include <libm-alias-float.h> #include <math-nan-payload-float.h> diff --git a/sysdeps/generic/math-type-macros-float128.h b/sysdeps/generic/math-type-macros-float128.h index ad2310b..f64c1d3 100644 --- a/sysdeps/generic/math-type-macros-float128.h +++ b/sysdeps/generic/math-type-macros-float128.h @@ -19,6 +19,8 @@ #ifndef _MATH_TYPE_MACROS_FLOAT128 #define _MATH_TYPE_MACROS_FLOAT128 +#include <fenv_private.h> + #define M_LIT(c) __f128 (c) #define M_PFX FLT128 #define M_SUF(c) c ## f128 @@ -30,6 +32,13 @@ #define M_MLIT(c) c ## f128 +/* fenv_private.h may not define SET_RESTORE_ROUNDF128. */ +#ifdef SET_RESTORE_ROUNDF128 +# define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUNDF128 (RM) +#else +# define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUNDL (RM) +#endif + #include <libm-alias-float128.h> #include <math-nan-payload-float128.h> diff --git a/sysdeps/generic/math-type-macros-ldouble.h b/sysdeps/generic/math-type-macros-ldouble.h index 931d5ec..00309cb 100644 --- a/sysdeps/generic/math-type-macros-ldouble.h +++ b/sysdeps/generic/math-type-macros-ldouble.h @@ -28,6 +28,8 @@ #define M_STRTO_NAN __strtold_nan #define M_USE_BUILTIN(c) USE_ ##c ##L_BUILTIN +#define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUNDL (RM) + #include <libm-alias-ldouble.h> #include <math-nan-payload-ldouble.h> diff --git a/sysdeps/generic/math-type-macros.h b/sysdeps/generic/math-type-macros.h index e3224a0..21c5fee 100644 --- a/sysdeps/generic/math-type-macros.h +++ b/sysdeps/generic/math-type-macros.h @@ -33,6 +33,7 @@ M_STRTO_NAN - Resolves to the internal libc function which converts a string into the appropriate FLOAT nan value. + M_SET_RESTORE_ROUND - Resolves to a SET_RESTORE_ROUND call for M_TYPE. declare_mgen_alias(from,to) This exposes the appropriate symbol(s) for a diff --git a/sysdeps/generic/sysdep.h b/sysdeps/generic/sysdep.h index 4c0dda4..ef5eba2 100644 --- a/sysdeps/generic/sysdep.h +++ b/sysdeps/generic/sysdep.h @@ -45,6 +45,7 @@ # define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off # define cfi_offset(reg, off) .cfi_offset reg, off # define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off +# define cfi_val_offset(reg, off) .cfi_val_offset reg, off # define cfi_register(r1, r2) .cfi_register r1, r2 # define cfi_return_column(reg) .cfi_return_column reg # define cfi_restore(reg) .cfi_restore reg @@ -74,6 +75,8 @@ ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off) # define CFI_REL_OFFSET(reg, off) \ ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off) +# define CFI_VAL_OFFSET(reg, off) \ + ".cfi_val_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off) # define CFI_REGISTER(r1, r2) \ ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2) # define CFI_RETURN_COLUMN(reg) \ |