From b2a4014cbb4a2a9b382ca9481c8726581aba8170 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Sat, 31 Oct 2015 04:39:28 +0000 Subject: [PATCH] Move all the paths into a new path.h to centralize them. --- libexec/rtld-elf/libmap.c | 10 +----- libexec/rtld-elf/malloc.c | 1 - libexec/rtld-elf/paths.h | 64 +++++++++++++++++++++++++++++++++++++++ libexec/rtld-elf/rtld.c | 9 ++---- libexec/rtld-elf/rtld.h | 16 ---------- 5 files changed, 67 insertions(+), 33 deletions(-) create mode 100644 libexec/rtld-elf/paths.h diff --git a/libexec/rtld-elf/libmap.c b/libexec/rtld-elf/libmap.c index 691ad5206d0a..761a2728c948 100644 --- a/libexec/rtld-elf/libmap.c +++ b/libexec/rtld-elf/libmap.c @@ -16,15 +16,7 @@ #include "debug.h" #include "rtld.h" #include "libmap.h" - -#ifndef _PATH_LIBMAP_CONF -#define _PATH_LIBMAP_CONF "/etc/libmap.conf" -#endif - -#ifdef COMPAT_32BIT -#undef _PATH_LIBMAP_CONF -#define _PATH_LIBMAP_CONF "/etc/libmap32.conf" -#endif +#include "paths.h" TAILQ_HEAD(lm_list, lm); struct lm { diff --git a/libexec/rtld-elf/malloc.c b/libexec/rtld-elf/malloc.c index 9f7dbe0ec176..f134049cb7e8 100644 --- a/libexec/rtld-elf/malloc.c +++ b/libexec/rtld-elf/malloc.c @@ -45,7 +45,6 @@ static char *rcsid = "$FreeBSD$"; #include #include -#include #include #include #include diff --git a/libexec/rtld-elf/paths.h b/libexec/rtld-elf/paths.h new file mode 100644 index 000000000000..3a8e9033f41f --- /dev/null +++ b/libexec/rtld-elf/paths.h @@ -0,0 +1,64 @@ +/*- + * Copyright 1996, 1997, 1998, 1999, 2000 John D. Polstra. + * Copyright 2003 Alexander Kabaev . + * Copyright 2009-2012 Konstantin Belousov . + * Copyright 2012 John Marino . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef PATHS_H +#define PATHS_H + +#undef _PATH_ELF_HINTS + +#ifdef COMPAT_32BIT +#define _PATH_ELF_HINTS "/var/run/ld-elf32.so.hints" +#define _PATH_LIBMAP_CONF "/etc/libmap32.conf" +#define _PATH_RTLD "/libexec/ld-elf32.so.1" +#define STANDARD_LIBRARY_PATH "/lib32:/usr/lib32" +#define LD_ "LD_32_" +#endif + +#ifndef _PATH_ELF_HINTS +#define _PATH_ELF_HINTS "/var/run/ld-elf.so.hints" +#endif + +#ifndef _PATH_LIBMAP_CONF +#define _PATH_LIBMAP_CONF "/etc/libmap.conf" +#endif + +#ifndef _PATH_RTLD +#define _PATH_RTLD "/libexec/ld-elf.so.1" +#endif + +#ifndef STANDARD_LIBRARY_PATH +#define STANDARD_LIBRARY_PATH "/lib:/usr/lib" +#endif + +#ifndef LD_ +#define LD_ "LD_" +#endif + +#endif /* PATHS_H */ diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index eecfb0f70c71..8984507cfdfc 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -56,16 +56,11 @@ #include "debug.h" #include "rtld.h" #include "libmap.h" +#include "paths.h" #include "rtld_tls.h" #include "rtld_printf.h" #include "notes.h" -#ifndef COMPAT_32BIT -#define PATH_RTLD "/libexec/ld-elf.so.1" -#else -#define PATH_RTLD "/libexec/ld-elf32.so.1" -#endif - /* Types. */ typedef void (*func_ptr_type)(); typedef void * (*path_enum_proc) (const char *path, size_t len, void *arg); @@ -1892,7 +1887,7 @@ init_rtld(caddr_t mapbase, Elf_Auxinfo **aux_info) digest_dynamic2(&obj_rtld, dyn_rpath, dyn_soname, dyn_runpath); /* Replace the path with a dynamically allocated copy. */ - obj_rtld.path = xstrdup(PATH_RTLD); + obj_rtld.path = xstrdup(_PATH_RTLD); r_debug.r_brk = r_debug_state; r_debug.r_state = RT_CONSISTENT; diff --git a/libexec/rtld-elf/rtld.h b/libexec/rtld-elf/rtld.h index d75d0abbd1ab..c7c5888f6351 100644 --- a/libexec/rtld-elf/rtld.h +++ b/libexec/rtld-elf/rtld.h @@ -41,22 +41,6 @@ #include "rtld_lock.h" #include "rtld_machdep.h" -#ifdef COMPAT_32BIT -#undef STANDARD_LIBRARY_PATH -#undef _PATH_ELF_HINTS -#define _PATH_ELF_HINTS "/var/run/ld-elf32.so.hints" -/* For running 32 bit binaries */ -#define STANDARD_LIBRARY_PATH "/lib32:/usr/lib32" -#define LD_ "LD_32_" -#endif - -#ifndef STANDARD_LIBRARY_PATH -#define STANDARD_LIBRARY_PATH "/lib:/usr/lib" -#endif -#ifndef LD_ -#define LD_ "LD_" -#endif - #define NEW(type) ((type *) xmalloc(sizeof(type))) #define CNEW(type) ((type *) xcalloc(1, sizeof(type)))