aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-10-12 15:50:49 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-10-21 00:08:54 +0000
commit33dba3bb0ec2a0f0a401bed145cc0ef95f37a5c3 (patch)
tree12c678529cbfcc2c67efbf239837278857a0ff8f
parent9ce201f2ee3ca340032d9cc71d91a36b3b45a4c3 (diff)
downloadsrc-33dba3bb0ec2a0f0a401bed145cc0ef95f37a5c3.tar.gz
src-33dba3bb0ec2a0f0a401bed145cc0ef95f37a5c3.zip
rtld-elf/paths.h: Make it usable outside rtld
but still for tightly coupled things like ldd(1) Rename paths.h to rtld_paths.h. Add guard for rtld-specific externs declarations. Add _COMPAT32_BASENAME_RTLD and _COMPAT32_PATH_RTLD. Reviewed by: arichardson, jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D32464
-rw-r--r--libexec/rtld-elf/arm/reloc.c2
-rw-r--r--libexec/rtld-elf/libmap.c2
-rw-r--r--libexec/rtld-elf/rtld.c2
-rw-r--r--libexec/rtld-elf/rtld_malloc.c2
-rw-r--r--libexec/rtld-elf/rtld_paths.h (renamed from libexec/rtld-elf/paths.h)18
5 files changed, 18 insertions, 8 deletions
diff --git a/libexec/rtld-elf/arm/reloc.c b/libexec/rtld-elf/arm/reloc.c
index 4e551b0948ad..b6eafa59b299 100644
--- a/libexec/rtld-elf/arm/reloc.c
+++ b/libexec/rtld-elf/arm/reloc.c
@@ -16,7 +16,7 @@ __FBSDID("$FreeBSD$");
#include "debug.h"
#include "rtld.h"
-#include "paths.h"
+#include "rtld_paths.h"
#ifdef __ARM_FP
/*
diff --git a/libexec/rtld-elf/libmap.c b/libexec/rtld-elf/libmap.c
index e4388d14b951..854c73f39ef7 100644
--- a/libexec/rtld-elf/libmap.c
+++ b/libexec/rtld-elf/libmap.c
@@ -16,7 +16,7 @@
#include "debug.h"
#include "rtld.h"
#include "libmap.h"
-#include "paths.h"
+#include "rtld_paths.h"
#include "rtld_libc.h"
TAILQ_HEAD(lm_list, lm);
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index d598bb044f8e..8b1f84c6901a 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -63,7 +63,7 @@ __FBSDID("$FreeBSD$");
#include "debug.h"
#include "rtld.h"
#include "libmap.h"
-#include "paths.h"
+#include "rtld_paths.h"
#include "rtld_tls.h"
#include "rtld_printf.h"
#include "rtld_malloc.h"
diff --git a/libexec/rtld-elf/rtld_malloc.c b/libexec/rtld-elf/rtld_malloc.c
index 63fa6f5e2ee7..d08254b67d9f 100644
--- a/libexec/rtld-elf/rtld_malloc.c
+++ b/libexec/rtld-elf/rtld_malloc.c
@@ -55,7 +55,7 @@ static char *rcsid = "$FreeBSD$";
#include <unistd.h>
#include "rtld.h"
#include "rtld_printf.h"
-#include "paths.h"
+#include "rtld_paths.h"
/*
* Pre-allocate mmap'ed pages
diff --git a/libexec/rtld-elf/paths.h b/libexec/rtld-elf/rtld_paths.h
index 75f3b1d47dd4..4ce423ce6dbb 100644
--- a/libexec/rtld-elf/paths.h
+++ b/libexec/rtld-elf/rtld_paths.h
@@ -26,15 +26,19 @@
* $FreeBSD$
*/
-#ifndef PATHS_H
-#define PATHS_H
+#ifndef _RTLD_PATHS_H
+#define _RTLD_PATHS_H
#undef _PATH_ELF_HINTS
+#ifndef _COMPAT32_BASENAME_RTLD
+#define _COMPAT32_BASENAME_RTLD "ld-elf32.so.1"
+#endif
+
#ifdef COMPAT_32BIT
#define _PATH_ELF_HINTS "/var/run/ld-elf32.so.hints"
#define _PATH_LIBMAP_CONF "/etc/libmap32.conf"
-#define _BASENAME_RTLD "ld-elf32.so.1"
+#define _BASENAME_RTLD _COMPAT32_BASENAME_RTLD
#define STANDARD_LIBRARY_PATH "/lib32:/usr/lib32"
#define LD_ "LD_32_"
#endif
@@ -55,6 +59,10 @@
#define _PATH_RTLD "/libexec/" _BASENAME_RTLD
#endif
+#ifndef _COMPAT32_PATH_RTLD
+#define _COMPAT32_PATH_RTLD "/libexec/" _COMPAT32_BASENAME_RTLD
+#endif
+
#ifndef STANDARD_LIBRARY_PATH
#define STANDARD_LIBRARY_PATH "/lib/casper:/lib:/usr/lib"
#endif
@@ -69,10 +77,12 @@
#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;
extern const char *ld_path_rtld;
extern const char *ld_standard_library_path;
extern const char *ld_env_prefix;
+#endif
-#endif /* PATHS_H */
+#endif /* _RTLD_PATHS_H */