Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Oct 2021 00:10:54 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 33dba3bb0ec2 - main - rtld-elf/paths.h: Make it usable outside rtld
Message-ID:  <202110210010.19L0Asb2024846@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=33dba3bb0ec2a0f0a401bed145cc0ef95f37a5c3

commit 33dba3bb0ec2a0f0a401bed145cc0ef95f37a5c3
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2021-10-12 15:50:49 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2021-10-21 00:08:54 +0000

    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
---
 libexec/rtld-elf/arm/reloc.c               |  2 +-
 libexec/rtld-elf/libmap.c                  |  2 +-
 libexec/rtld-elf/rtld.c                    |  2 +-
 libexec/rtld-elf/rtld_malloc.c             |  2 +-
 libexec/rtld-elf/{paths.h => rtld_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
similarity index 88%
rename from libexec/rtld-elf/paths.h
rename to 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 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202110210010.19L0Asb2024846>