diff options
Diffstat (limited to 'libexec')
-rw-r--r-- | libexec/rc/rc.conf | 1 | ||||
-rw-r--r-- | libexec/rc/rc.d/Makefile | 39 | ||||
-rw-r--r-- | libexec/rtld-elf/map_object.c | 6 | ||||
-rw-r--r-- | libexec/rtld-elf/rtld.c | 5 |
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); } |