xref: /freebsd/libexec/rtld-elf/rtld_paths.h (revision b3e7694832e81d7a904a10f525f8797b753bf0d3)
1  /*-
2   * Copyright 1996, 1997, 1998, 1999, 2000 John D. Polstra.
3   * Copyright 2003 Alexander Kabaev <kan@FreeBSD.ORG>.
4   * All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions
8   * are met:
9   * 1. Redistributions of source code must retain the above copyright
10   *    notice, this list of conditions and the following disclaimer.
11   * 2. Redistributions in binary form must reproduce the above copyright
12   *    notice, this list of conditions and the following disclaimer in the
13   *    documentation and/or other materials provided with the distribution.
14   *
15   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25   */
26  
27  #ifndef _RTLD_PATHS_H
28  #define _RTLD_PATHS_H
29  
30  #undef _PATH_ELF_HINTS
31  
32  #ifndef _RTLD_COMPAT_LIB_SUFFIX
33  #ifdef COMPAT_libcompat
34  #define	_RTLD_COMPAT_LIB_SUFFIX	COMPAT_libcompat
35  #else
36  #define	_RTLD_COMPAT_LIB_SUFFIX	""
37  #endif
38  #endif
39  
40  #ifndef _RTLD_COMPAT_ENV_SUFFIX
41  #ifdef COMPAT_LIBCOMPAT
42  #define	_RTLD_COMPAT_ENV_SUFFIX	COMPAT_LIBCOMPAT "_"
43  #else
44  #define	_RTLD_COMPAT_ENV_SUFFIX	""
45  #endif
46  #endif
47  
48  #ifndef __PATH_ELF_HINTS
49  #define	__PATH_ELF_HINTS(_lc)	"/var/run/ld-elf" _lc ".so.hints"
50  #endif
51  
52  #ifndef _PATH_ELF_HINTS
53  #define	_PATH_ELF_HINTS		__PATH_ELF_HINTS(_RTLD_COMPAT_LIB_SUFFIX)
54  #endif
55  
56  #ifndef _PATH_LIBMAP_CONF
57  #define	_PATH_LIBMAP_CONF	"/etc/libmap" _RTLD_COMPAT_LIB_SUFFIX ".conf"
58  #endif
59  
60  #ifndef __BASENAME_RTLD
61  #define	__BASENAME_RTLD(_lc)	"ld-elf" _lc ".so.1"
62  #endif
63  
64  #ifndef _BASENAME_RTLD
65  #define	_BASENAME_RTLD		__BASENAME_RTLD(_RTLD_COMPAT_LIB_SUFFIX)
66  #endif
67  
68  #ifndef __PATH_RTLD
69  #define	__PATH_RTLD(_lc)	"/libexec/" __BASENAME_RTLD(_lc)
70  #endif
71  
72  #ifndef _PATH_RTLD
73  #define	_PATH_RTLD		__PATH_RTLD(_RTLD_COMPAT_LIB_SUFFIX)
74  #endif
75  
76  #ifndef STANDARD_LIBRARY_PATH
77  #define	STANDARD_LIBRARY_PATH	"/lib" _RTLD_COMPAT_LIB_SUFFIX ":/usr/lib" _RTLD_COMPAT_LIB_SUFFIX
78  #endif
79  
80  #ifndef LD_
81  #define	LD_			"LD_" _RTLD_COMPAT_ENV_SUFFIX
82  #endif
83  
84  #ifndef TOKEN_LIB
85  #define	TOKEN_LIB		"lib" _RTLD_COMPAT_LIB_SUFFIX
86  #endif
87  
88  #ifdef IN_RTLD
89  extern const char *ld_elf_hints_default;
90  extern const char *ld_path_libmap_conf;
91  extern const char *ld_path_rtld;
92  extern const char *ld_standard_library_path;
93  extern const char *ld_env_prefix;
94  #endif
95  
96  #endif /* _RTLD_PATHS_H */
97