aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rc/rc.conf1
-rw-r--r--libexec/rc/rc.d/Makefile39
-rw-r--r--libexec/rtld-elf/map_object.c6
-rw-r--r--libexec/rtld-elf/rtld.c5
4 files changed, 30 insertions, 21 deletions
diff --git a/libexec/rc/rc.conf b/libexec/rc/rc.conf
index d502361eca37..bfa46bd343a6 100644
--- a/libexec/rc/rc.conf
+++ b/libexec/rc/rc.conf
@@ -21,6 +21,7 @@
##############################################################
# Set default value of _localbase if not previously set
+: ${_localbase:="$(/sbin/sysctl -n user.localbase 2> /dev/null)"}
: ${_localbase:="/usr/local"}
# rc_debug can't be set here without interferring with rc.subr's setting it
diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile
index 62285018cbef..7c1f50b027a9 100644
--- a/libexec/rc/rc.d/Makefile
+++ b/libexec/rc/rc.d/Makefile
@@ -29,12 +29,8 @@ CONFS= DAEMON \
iovctl \
ip6addrctl \
ipsec \
- ${_kadmind} \
- ${_kdc} \
- ${_kfd} \
kld \
kldxref \
- ${_kpasswdd} \
ldconfig \
linux \
local \
@@ -219,7 +215,7 @@ FTPD= ftpd
FTPDPACKAGE= ftpd
.endif
-.if ${MK_GSSAPI} != "no" && ${MK_KERBEROS_SUPPORT} != "no"
+.if ${MK_KERBEROS_SUPPORT} != "no"
CONFGROUPS+= GSSD
GSSD= gssd
GSSDPACKAGE= gssd
@@ -288,17 +284,32 @@ LPPACKAGE= lp
.endif
.if ${MK_KERBEROS} != "no"
-CONFS+= ipropd_master
-CONFS+= ipropd_slave
-_kadmind= kadmind
-_kdc= kdc
-_kfd= kfd
-_kpasswdd= kpasswdd
-
-DIRS+= VAR_HEMIDAL
+.if ${MK_MITKRB5} == "no"
+
+# Heimdal rc scripts
+CONFGROUPS+= HEIMDAL
+HEIMDAL= ipropd_master \
+ ipropd_slave \
+ kadmind \
+ kdc \
+ kfd \
+ kpasswdd
+HEIMDALPACKAGE= kerberos
+
+DIRS+= VAR_HEMIDAL
VAR_HEMIDAL= /var/heimdal
VAR_HEMIDAL_MODE= 700
-.endif
+
+.else # ${MK_MITKRB5} != "no"
+
+# MIT KRB5 rc scripts
+CONFGROUPS+= KRB5
+KRB5= kadmind \
+ kdc
+KRB5PACKAGE= kerberos-kdc
+
+.endif # ${MK_MITKRB5}
+.endif # ${MK_KERBEROS}
.if ${MK_NIS} != "no"
CONFGROUPS+= YP
diff --git a/libexec/rtld-elf/map_object.c b/libexec/rtld-elf/map_object.c
index c6a98b50a165..5e5774c0b017 100644
--- a/libexec/rtld-elf/map_object.c
+++ b/libexec/rtld-elf/map_object.c
@@ -25,7 +25,6 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#define _WANT_P_OSREL
#include <sys/param.h>
#include <sys/mman.h>
#include <sys/stat.h>
@@ -43,8 +42,6 @@ static Elf_Ehdr *get_elf_header(int, const char *, const struct stat *,
Elf_Phdr **phdr);
static int convert_flags(int); /* Elf flags -> mmap flags */
-int __getosreldate(void);
-
static bool
phdr_in_zero_page(const Elf_Ehdr *hdr)
{
@@ -204,8 +201,7 @@ map_object(int fd, const char *path, const struct stat *sb, bool ismain)
segs[nsegs]->p_memsz);
mapsize = base_vlimit - base_vaddr;
base_addr = (caddr_t)base_vaddr;
- base_flags = __getosreldate() >= P_OSREL_MAP_GUARD ?
- MAP_GUARD : MAP_PRIVATE | MAP_ANON | MAP_NOCORE;
+ base_flags = MAP_GUARD;
if (npagesizes > 1 && rtld_round_page(segs[0]->p_filesz) >=
pagesizes[1])
base_flags |= MAP_ALIGNED_SUPER;
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 17196f55c271..8977d5947010 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -3031,7 +3031,7 @@ load_kpreload(const void *addr)
}
obj->mapbase = __DECONST(caddr_t, addr);
- obj->mapsize = segn->p_vaddr + segn->p_memsz - (Elf_Addr)addr;
+ obj->mapsize = segn->p_vaddr + segn->p_memsz;
obj->vaddrbase = 0;
obj->relocbase = obj->mapbase;
@@ -3060,7 +3060,8 @@ load_kpreload(const void *addr)
linkmap_add(obj); /* for GDB & dlinfo() */
max_stack_flags |= obj->stack_flags;
- LD_UTRACE(UTRACE_LOAD_OBJECT, obj, obj->mapbase, 0, 0, obj->path);
+ LD_UTRACE(UTRACE_LOAD_OBJECT, obj, obj->mapbase, obj->mapsize, 0,
+ obj->path);
return (0);
}