git: 0d1f0898c90b - main - rtld-elf: Remove libsoft support

From: Warner Losh <imp_at_FreeBSD.org>
Date: Fri, 07 Jan 2022 05:46:55 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=0d1f0898c90b3f1a87d4382d3a86df20c6b4fb48

commit 0d1f0898c90b3f1a87d4382d3a86df20c6b4fb48
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2022-01-07 05:34:21 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2022-01-07 05:44:07 +0000

    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;