From 0d1f0898c90b3f1a87d4382d3a86df20c6b4fb48 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 6 Jan 2022 22:34:21 -0700 Subject: [PATCH] rtld-elf: Remove libsoft support Remove support for loading libsoft libraries. Sponsored by: Netflix --- libexec/rtld-elf/arm/reloc.c | 40 ----------------------------- libexec/rtld-elf/arm/rtld_machdep.h | 6 ----- libexec/rtld-elf/rtld_paths.h | 6 ----- 3 files changed, 52 deletions(-) diff --git a/libexec/rtld-elf/arm/reloc.c b/libexec/rtld-elf/arm/reloc.c index de5a6ad6cfbe..cfbddaeede75 100644 --- a/libexec/rtld-elf/arm/reloc.c +++ b/libexec/rtld-elf/arm/reloc.c @@ -18,46 +18,6 @@ __FBSDID("$FreeBSD$"); #include "rtld.h" #include "rtld_paths.h" -#ifdef __ARM_FP -/* - * On processors that have hard floating point supported, we also support - * running soft float binaries. If we're being built with hard float support, - * check the ELF headers to make sure that this is a hard float binary. If it is - * a soft float binary, force the dynamic linker to use the alternative soft - * float path. - */ -void -arm_abi_variant_hook(Elf_Auxinfo **aux_info) -{ - Elf_Word ehdr; - - /* - * If we're running an old kernel that doesn't provide any data fail - * safe by doing nothing. - */ - if (aux_info[AT_EHDRFLAGS] == NULL) - return; - ehdr = aux_info[AT_EHDRFLAGS]->a_un.a_val; - - /* - * Hard float ABI binaries are the default, and use the default paths - * and such. - */ - if ((ehdr & EF_ARM_VFP_FLOAT) != 0) - return; - - /* - * This is a soft float ABI binary. We need to use the soft float - * settings. - */ - ld_elf_hints_default = _PATH_SOFT_ELF_HINTS; - ld_path_libmap_conf = _PATH_SOFT_LIBMAP_CONF; - ld_path_rtld = _PATH_SOFT_RTLD; - ld_standard_library_path = SOFT_STANDARD_LIBRARY_PATH; - ld_env_prefix = LD_SOFT_; -} -#endif - void init_pltgot(Obj_Entry *obj) { diff --git a/libexec/rtld-elf/arm/rtld_machdep.h b/libexec/rtld-elf/arm/rtld_machdep.h index c9ec047ec34e..c1acdd719e99 100644 --- a/libexec/rtld-elf/arm/rtld_machdep.h +++ b/libexec/rtld-elf/arm/rtld_machdep.h @@ -76,12 +76,6 @@ extern void *__tls_get_addr(tls_index *ti); #define RTLD_DEFAULT_STACK_PF_EXEC PF_X #define RTLD_DEFAULT_STACK_EXEC PROT_EXEC -extern void arm_abi_variant_hook(Elf_Auxinfo **); - -#ifdef __ARM_FP -#define md_abi_variant_hook(x) arm_abi_variant_hook(x) -#else #define md_abi_variant_hook(x) -#endif #endif diff --git a/libexec/rtld-elf/rtld_paths.h b/libexec/rtld-elf/rtld_paths.h index 6ead517e8feb..ae4d1c473271 100644 --- a/libexec/rtld-elf/rtld_paths.h +++ b/libexec/rtld-elf/rtld_paths.h @@ -75,12 +75,6 @@ #define LD_ "LD_" #endif -#define _PATH_SOFT_ELF_HINTS "/var/run/ld-elf-soft.so.hints" -#define _PATH_SOFT_LIBMAP_CONF "/etc/libmap-soft.conf" -#define _PATH_SOFT_RTLD "/libexec/ld-elf.so.1" -#define SOFT_STANDARD_LIBRARY_PATH "/usr/libsoft" -#define LD_SOFT_ "LD_SOFT_" - #ifdef IN_RTLD extern const char *ld_elf_hints_default; extern const char *ld_path_libmap_conf;