]> git.saurik.com Git - apple/libc.git/blobdiff - gen/Makefile.inc
Libc-583.tar.gz
[apple/libc.git] / gen / Makefile.inc
index e1de6c350aa63b1318035009091ead042d22a5ca..64f43a78b0ea691c92a675ddd95ef83181bd310e 100644 (file)
@@ -2,32 +2,82 @@
 # $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.80 2001/08/17 22:09:15 dd Exp $
 
 # machine-dependent gen sources
 # $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.80 2001/08/17 22:09:15 dd Exp $
 
 # machine-dependent gen sources
-.if exists(${.CURDIR}/${MACHINE_ARCH}/gen/Makefile.inc)
-.include "${.CURDIR}/${MACHINE_ARCH}/gen/Makefile.inc"
-.endif
+.sinclude "${.CURDIR}/${MACHINE_ARCH}/gen/Makefile.inc"
 
 # machine-independent gen sources
 .PATH: ${.CURDIR}/gen
 
 # machine-independent gen sources
 .PATH: ${.CURDIR}/gen
+CWD := ${.CURDIR}/gen
+
+CFLAGS += -I${.CURDIR}/gen
 
 
-CFLAGS += -I${.CURDIR}/pthreads
+GENMIGDEFS += asl_ipc.defs
+GENMIGHDRS += ${GENMIGDEFS:.defs=.h}
+GENMIGSRCS += ${GENMIGDEFS:.defs=User.c}
 
 
-MISRCS += NSSystemDirectories.c OSSystemInfo.c arc4random.c asl.c \
+MISRCS += ${GENMIGSRCS} NSSystemDirectories.c \
+       asl.c asl_core.c asl_file.c asl_legacy1.c asl_store.c asl_util.c \
+       backtrace.c \
        cache.c confstr.c crypt.c devname.c disklabel.c errlst.c \
        filesec.c fts.c \
        get_compat.c getloadavg.c getttyent.c getusershell.c getvfsbyname.c \
        isinf.c isnan.c \
        cache.c confstr.c crypt.c devname.c disklabel.c errlst.c \
        filesec.c fts.c \
        get_compat.c getloadavg.c getttyent.c getusershell.c getvfsbyname.c \
        isinf.c isnan.c \
-       malloc.c nanosleep.c nftw.c nlist.c scalable_malloc.c setlogin.c \
-       sigsetops.c simple_dprintf.c stack_logging.c strtofflags.c syslog.c \
-       uname.c wordexp.c zone.c
+       malloc.c nanosleep.c nftw.c magazine_malloc.c setlogin.c \
+       sigsetops.c _simple.c stack_logging.c stack_logging_disk.c strtofflags.c syslog.c \
+       thread_stack_pcs.c uname.c utmpx-darwin.c wordexp.c
+
+.ifdef FEATURE_LEGACY_NXZONE_APIS
+MISRCS += zone.c
+.endif
+.if !defined(LP64)
+MISRCS += nlist.c
+.endif
+       
+# DTrace USDT probes placed in magazine_malloc.c and malloc.c
+${SYMROOTINC}/magmallocProvider.h: ${.CURDIR}/gen/magmallocProvider.d
+       ${DTRACE} -o ${.TARGET} -C -h -s ${.ALLSRC}
+magazine_malloc.${OBJSUFFIX}: ${SYMROOTINC}/magmallocProvider.h
+malloc.${OBJSUFFIX}: ${SYMROOTINC}/magmallocProvider.h
 
 
-CFLAGS-asl.c = -I${.CURDIR}/gen
-LOCALHDRS += ${.CURDIR}/gen/asl_private.h
+# Force these files to build after the mig stuff
+asl.${OBJSUFFIX}: asl_ipcUser.c
+syslog.${OBJSUFFIX}: asl_ipcUser.c
+utmpx-darwin.${OBJSUFFIX}: asl_ipcUser.c
+
+CLEANFILES += ${GENMIGHDRS} ${GENMIGSRCS} ${GENMIGDEFS:.defs=Server.c}
+
+LOCALHDRS += ${.CURDIR}/gen/asl_core.h ${.CURDIR}/gen/asl_file.h ${.CURDIR}/gen/asl_legacy1.h \
+       ${.CURDIR}/gen/asl_private.h ${.CURDIR}/gen/asl_store.h \
+       ${.CURDIR}/gen/_simple.h ${.CURDIR}/gen/stack_logging.h
+
+CFLAGS-asl_file.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-asl_legacy1.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-asl_store.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-confstr.c += -I${.CURDIR}/darwin
+CFLAGS-fmtmsg-fbsd.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-getcap-fbsd.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-getttyent.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-getusershell.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-glob-fbsd.c += -UDEBUG
+
+# 4840357: workaround for compiler failure building libc_debug.a
+.if make(lib${LIB}_debug.a)
+CFLAGS-magazine_malloc.c += -funit-at-a-time
+.endif
+
+# Malloc uses count leading zeroes, not available in thumb
+#.if (${MACHINE_ARCH} == arm)
+#CFLAGS-scalable_malloc.c += -mno-thumb
+#.endif
+
+CFLAGS-stack_logging_disk.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-utmpx-nbsd.c += -D_DARWIN_UNLIMITED_STREAMS
+CFLAGS-wordexp.c += -D_DARWIN_UNLIMITED_STREAMS
 
 # also build 64-bit long double versions (ppc only)
 LDBLSRCS += asl.c err.c syslog.c
 
 .include "Makefile.fbsd_begin"
 
 # also build 64-bit long double versions (ppc only)
 LDBLSRCS += asl.c err.c syslog.c
 
 .include "Makefile.fbsd_begin"
-FBSDMISRCS = _rand48.c alarm.c assert.c \
+FBSDMISRCS = _rand48.c alarm.c arc4random.c assert.c \
        basename.c clock.c closedir.c ctermid.c \
        daemon.c dirname.c drand48.c erand48.c err.c errno_.c exec.c \
        fmtcheck.c fmtmsg.c fnmatch.c ftok.c \
        basename.c clock.c closedir.c ctermid.c \
        daemon.c dirname.c drand48.c erand48.c err.c errno_.c exec.c \
        fmtcheck.c fmtmsg.c fnmatch.c ftok.c \
@@ -42,136 +92,374 @@ FBSDMISRCS = _rand48.c alarm.c assert.c \
        telldir.c termios.c time.c times.c \
        ttyname.c ttyslot.c ualarm.c ulimit.c unvis.c usleep.c utime.c vis.c \
        wait.c wait3.c waitpid.c
        telldir.c termios.c time.c times.c \
        ttyname.c ttyslot.c ualarm.c ulimit.c unvis.c usleep.c utime.c vis.c \
        wait.c wait3.c waitpid.c
-.if (${MACHINE_ARCH} != ppc64)
-FBSDMISRCS += timezone.c
+
+.ifdef FEATURE_LEGACY_64_APIS
+# special case: getmntinfo64-fbsd.c is derived from getmntinfo.c with getmntinfo64.c.patch
+.ifmake autopatch
+.for _cwd in ${CWD} # This .for statement forces evaluation of ${CWD}
+AUTOPATCHSRCS+= ${_cwd}/getmntinfo64-fbsd.c
+${_cwd}/getmntinfo64-fbsd.c: ${_cwd}/FreeBSD/getmntinfo.c
+       ${CP} ${.ALLSRC} ${.TARGET}
+       ${PATCH} ${.TARGET} ${.ALLSRC:S/getmntinfo/getmntinfo64/}.patch
+.endfor # _cwd
+.else # !autopatch
+MISRCS+= getmntinfo64.c
+.endif # autopatch
+.endif # FEATURE_LEGACY_64_APIS
+
+# special case: scandir_b-fbsd.c is derived from scandir.c with scandir_b.c.patch
+.ifmake autopatch
+.for _cwd in ${CWD} # This .for statement forces evaluation of ${CWD}
+AUTOPATCHSRCS+= ${_cwd}/scandir_b-fbsd.c
+${_cwd}/scandir_b-fbsd.c: ${_cwd}/FreeBSD/scandir.c
+       ${CP} ${.ALLSRC} ${.TARGET}
+       ${PATCH} ${.TARGET} ${.ALLSRC:S/scandir/scandir_b/}.patch
+.endfor # _cwd
+.else # !autopatch
+.ifdef FEATURE_BLOCKS
+MISRCS+= scandir_b.c
+.endif # FEATURE_BLOCKS
+.endif # autopatch
+
+PRE1050SRCS+= daemon.c
+.if defined(LP64)
+PRE1050SRCS+= pselect.c
 .endif
 .endif
+.ifndef FEATURE_ONLY_UNIX_CONFORMANCE
+# only patch timezone.c; don't build in base variant, but in other variants
+FBSDPATCHSRCS += timezone.c
+.endif
+
 FBSDHDRS = rand48.h telldir.h
 .include "Makefile.fbsd_end"
 
 .include "Makefile.nbsd_begin"
 NBSDMISRCS = utmpx.c
 .include "Makefile.nbsd_end"
 FBSDHDRS = rand48.h telldir.h
 .include "Makefile.fbsd_end"
 
 .include "Makefile.nbsd_begin"
 NBSDMISRCS = utmpx.c
 .include "Makefile.nbsd_end"
-CFLAGS-utmpx-nbsd.c += -DUTMP_COMPAT
 
 # private header files
 
 # private header files
-INSTHDRS += ${.CURDIR}/gen/get_compat.h
+INSTHDRS += ${.CURDIR}/gen/get_compat.h \
+       ${.CURDIR}/gen/execinfo.h
 PRIV_INSTHDRS += ${.CURDIR}/gen/stack_logging.h
 
 PRIV_INSTHDRS += ${.CURDIR}/gen/stack_logging.h
 
-UNIX03SRCS += closedir.c crypt.c nanosleep.c nftw.c opendir.c rewinddir.c \
-       seekdir.c telldir.c ttyname.c
+LEGACYSRCS += clock.c closedir.c confstr.c crypt.c fnmatch.c \
+       lockf.c nanosleep.c nftw.c nice.c opendir.c \
+       pause.c popen.c pselect.c rewinddir.c \
+       seekdir.c setmode.c sleep.c \
+       telldir.c termios.c timezone.c ttyname.c \
+       usleep.c wait.c waitpid.c
+INODE32SRCS += fts.c getmntinfo.c glob.c nftw.c opendir.c \
+       readdir.c rewinddir.c scandir.c seekdir.c telldir.c
+.ifdef FEATURE_BLOCKS
+INODE32SRCS += scandir_b.c
+.endif # FEATURE_BLOCKS
+CANCELABLESRCS += lockf.c nanosleep.c pause.c pselect.c sleep.c termios.c \
+       usleep.c wait.c waitpid.c
+CANCELABLE-DARWINEXTSNSRCS += pselect.c
+DARWINEXTSNSRCS += popen.c pselect.c
+DYLDSRCS += _simple.c
+
+# include __dirent.h to rename DIR structure elements
+.for _src in closedir-fbsd.c opendir-fbsd.c readdir-fbsd.c rewinddir-fbsd.c \
+       scandir-fbsd.c seekdir-fbsd.c telldir-fbsd.c
+CFLAGS-${_src} += -I${.CURDIR}/gen -include __dirent.h
+.endfor
+.ifdef FEATURE_BLOCKS
+CFLAGS-scandir_b-fbsd.c += -I${.CURDIR}/gen -include __dirent.h
+.endif # FEATURE_BLOCKS
+
+# 4105292/4329702 different optimizations improves performance of
+# drand48 and erand48
+.if !make(lib${LIB}_debug.a)
+.if (${MACHINE_ARCH} == i386)
+OPTIMIZE-drand48-fbsd.c += -O1
+OPTIMIZE-erand48-fbsd.c += -O1
+.endif
+.endif
+
+# set the LIBC_ALIAS_* macros so we can decorate the symbol independent
+# of other macro settings
+CFLAGS-clock-fbsd.c += -DLIBC_ALIAS_CLOCK
+CFLAGS-closedir-fbsd.c += -DLIBC_ALIAS_CLOSEDIR
+CFLAGS-confstr.c += -DLIBC_ALIAS_CONFSTR
+CFLAGS-crypt.c += -DLIBC_ALIAS_ENCRYPT -DLIBC_ALIAS_SETKEY
+CFLAGS-fnmatch-fbsd.c += -DLIBC_ALIAS_FNMATCH
+CFLAGS-fts.c += -DLIBC_ALIAS_FTS_CHILDREN -DLIBC_ALIAS_FTS_CLOSE -DLIBC_ALIAS_FTS_OPEN -DLIBC_ALIAS_FTS_OPEN_B -DLIBC_ALIAS_FTS_READ -DLIBC_ALIAS_FTS_SET
+CFLAGS-glob-fbsd.c += -DLIBC_ALIAS_GLOB
+CFLAGS-glob_b-fbsd.c += -DLIBC_ALIAS_GLOB_B
+CFLAGS-lockf-fbsd.c += -DLIBC_ALIAS_LOCKF
+CFLAGS-nanosleep.c += -DLIBC_ALIAS_NANOSLEEP
+CFLAGS-nftw.c += -DLIBC_ALIAS_FTW -DLIBC_ALIAS_NFTW
+CFLAGS-nice-fbsd.c += -DLIBC_ALIAS_NICE
+CFLAGS-opendir-fbsd.c += -DLIBC_ALIAS___OPENDIR2 -DLIBC_ALIAS_OPENDIR
+CFLAGS-rewinddir-fbsd.c += -DLIBC_ALIAS_REWINDDIR
+CFLAGS-pause-fbsd.c += -DLIBC_ALIAS_PAUSE
+CFLAGS-popen-fbsd.c += -DLIBC_ALIAS_POPEN
+CFLAGS-pselect-fbsd.c += -DLIBC_ALIAS_PSELECT
+CFLAGS-seekdir-fbsd.c += -DLIBC_ALIAS_SEEKDIR
+CFLAGS-setmode-fbsd.c += -DLIBC_ALIAS_SETMODE
+CFLAGS-sleep-fbsd.c += -DLIBC_ALIAS_SLEEP
+CFLAGS-telldir-fbsd.c += -DLIBC_ALIAS__SEEKDIR -DLIBC_ALIAS_TELLDIR
+CFLAGS-termios-fbsd.c += -DLIBC_ALIAS_TCDRAIN
+CFLAGS-ttyname-fbsd.c += -DLIBC_ALIAS_TTYNAME_R
+CFLAGS-usleep-fbsd.c += -DLIBC_ALIAS_USLEEP
+CFLAGS-wait-fbsd.c += -DLIBC_ALIAS_WAIT
+CFLAGS-waitpid-fbsd.c += -DLIBC_ALIAS_WAITPID
 
 .if ${LIB} == "c"
 
 
 .if ${LIB} == "c"
 
-MAN3 += arc4random.3 asl.3 confstr.3 crypt.3 devname.3 directory.3 fts.3 ftw.3 \
-       getdomainname.3 getfsent.3 getgrent.3 getgrouplist.3 getloadavg.3 \
-       getnetgrent.3 getobjformat.3 getpwent.3 getttyent.3 \
-       getusershell.3 getvfsbyname.3 initgroups.3 \
-       malloc.3 nlist.3 pwcache.3 setjmp.3 sigsetops.3 \
-       strtofflags.3 syslog.3 tcgetpgrp.3 tcsendbreak.3 \
-       tcsetattr.3 tcsetpgrp.3 tzset.3 uname.3 valloc.3 wordexp.3 intro.3
+MAN3 += asl.3 \
+       backtrace.3 \
+       confstr.3 crypt.3 devname.3 directory.3 fts.3 ftw.3 \
+       getdomainname.3 getloadavg.3 \
+       getttyent.3 getusershell.3 getvfsbyname.3 \
+       malloc.3 malloc_size.3 malloc_zone_malloc.3 nlist.3 posix_memalign.3 \
+       pwcache.3 setjmp.3 sigsetops.3 strtofflags.3 syslog.3 \
+       tcgetpgrp.3 tcsendbreak.3 tcsetattr.3 tcsetpgrp.3 tzset.3 \
+       uname.3 wordexp.3 intro.3
 
 MAN5 += compat.5
 
 .include "Makefile.fbsd_begin"
 
 MAN5 += compat.5
 
 .include "Makefile.fbsd_begin"
-FBSDMAN3= alarm.3 basename.3 clock.3 ctermid.3 daemon.3 dirname.3 err.3 exec.3 \
-       fmtcheck.3 fmtmsg.3 fnmatch.3 fpclassify.3 ftok.3 \
-       getbsize.3 getcap.3 getcwd.3 \
+FBSDMAN3= alarm.3 arc4random.3 basename.3 clock.3 ctermid.3 \
+       daemon.3 dirname.3 err.3 exec.3 \
+       fmtcheck.3 fmtmsg.3 fnmatch.3 ftok.3 \
+       getbsize.3 getcap.3 getcontext.3 getcwd.3 \
        gethostname.3 getmntinfo.3 getpagesize.3 getpass.3 \
        gethostname.3 getmntinfo.3 getpagesize.3 getpass.3 \
-       getpeereid.3 getprogname.3 \
-       glob.3 isgreater.3 \
-       lockf.3 nice.3 pause.3 popen.3 pselect.3 psignal.3 raise.3 rand48.3 \
-       readpassphrase.3 scandir.3 setmode.3 \
+       getpeereid.3 getprogname.3 glob.3 \
+       lockf.3 makecontext.3 nice.3 \
+       pause.3 popen.3 pselect.3 psignal.3 \
+       raise.3 rand48.3 readpassphrase.3 \
+       scandir.3 setmode.3 \
        siginterrupt.3 signal.3 signbit.3 sleep.3 \
        stringlist.3 sysconf.3 sysctl.3 \
        siginterrupt.3 signal.3 signbit.3 sleep.3 \
        stringlist.3 sysconf.3 sysctl.3 \
-       time.3 times.3 timezone.3 ttyname.3 ualarm.3 \
-       ulimit.3 unvis.3 usleep.3 utime.3 vis.3
+       time.3 times.3 timezone.3 ttyname.3 \
+       ualarm.3 ucontext.3 ulimit.3 unvis.3 usleep.3 utime.3 \
+       vis.3
 .include "Makefile.fbsd_end"
 
 .include "Makefile.nbsd_begin"
 .include "Makefile.fbsd_end"
 
 .include "Makefile.nbsd_begin"
-NBSDMAN3= endutxent.3
+NBSDMAN3= endutxent.3 getlastlogx.3
+NBSDMAN5= utmpx.5
 .include "Makefile.nbsd_end"
 
 .include "Makefile.nbsd_end"
 
-MLINKS+=arc4random.3 arc4random_addrandom.3 arc4random.3 arc4random_stir.3
-MLINKS+=asl.3 asl_open.3 asl.3 asl_close.3 asl.3 asl_new.3 asl.3 asl_free.3 \
-        asl.3 asl_set.3 asl.3 asl_set_query.3 asl.3 asl_get.3 asl.3 asl_unset.3 \
-       asl.3 asl_log.3 asl.3 asl_vlog.3 asl.3 asl_send.3 asl.3 asl_key.3 \
-       asl.3 asl_add_log_file.3 asl.3 asl_remove_log_file.3 \
-       asl.3 asl_set_cutoff_level.3 asl.3 asl_search.3 asl.3 aslresponse_next.3 \
-       asl.3 aslresponse_free.3
-MLINKS+=ctermid.3 ctermid_r.3
-MLINKS+=crypt.3 encrypt.3 crypt.3 setkey.3 crypt.3 des_setkey.3 \
-       crypt.3 des_cipher.3
-MLINKS+=directory.3 closedir.3 directory.3 dirfd.3 directory.3 opendir.3 \
-       directory.3 readdir.3 directory.3 readdir_r.3 directory.3 rewinddir.3 \
-       directory.3 seekdir.3 directory.3 telldir.3
-MLINKS+=endutxent.3 getutxent.3 endutxent.3 getutxid.3 \
-       endutxent.3 getutxline.3 endutxent.3 pututxline.3 \
-       endutxent.3 setutxent.3
-MLINKS+=err.3 err_set_exit.3 err.3 err_set_file.3 err.3 errc.3 err.3 errx.3 \
-       err.3 verr.3 err.3 verrc.3 err.3 verrx.3 err.3 vwarn.3 err.3 vwarnc.3 \
-       err.3 vwarnx.3 err.3 warnc.3 err.3 warn.3 err.3 warnx.3
-MLINKS+=exec.3 execl.3 exec.3 execle.3 exec.3 execlp.3 \
-       exec.3 execv.3 exec.3 execvp.3
-MLINKS+=fpclassify.3 isfinite.3 fpclassify.3 isinf.3 fpclassify.3 isnan.3 \
-       fpclassify.3 isnormal.3
-MLINKS+=fts.3 fts_children.3 fts.3 fts_close.3 fts.3 fts_open.3 \
-       fts.3 fts_read.3 fts.3 fts_set.3
-MLINKS+=ftw.3 nftw.3
-MLINKS+=getcap.3 cgetcap.3 getcap.3 cgetclose.3 getcap.3 cgetent.3 \
-       getcap.3 cgetfirst.3 getcap.3 cgetmatch.3 getcap.3 cgetnext.3 \
-       getcap.3 cgetnum.3 getcap.3 cgetset.3 getcap.3 cgetstr.3 \
-       getcap.3 cgetustr.3
-MLINKS+=getcwd.3 getwd.3
-MLINKS+=getdomainname.3 setdomainname.3
-MLINKS+=getfsent.3 endfsent.3 getfsent.3 getfsfile.3 getfsent.3 getfsspec.3 \
-       getfsent.3 getfstype.3 getfsent.3 setfsent.3
-MLINKS+=getgrent.3 endgrent.3 getgrent.3 getgrgid.3 getgrent.3 getgrnam.3 \
-       getgrent.3 setgrent.3 getgrent.3 setgroupent.3
-MLINKS+=gethostname.3 sethostname.3
-MLINKS+=getnetgrent.3 endnetgrent.3 getnetgrent.3 innetgr.3 \
-       getnetgrent.3 setnetgrent.3
-MLINKS+=getprogname.3 setprogname.3
-MLINKS+=getpwent.3 endpwent.3 getpwent.3 getpwnam.3 getpwent.3 getpwuid.3 \
-       getpwent.3 setpassent.3 getpwent.3 setpwent.3 getpwent.3 setpwfile.3
-MLINKS+=getttyent.3 endttyent.3 getttyent.3 getttynam.3 \
-       getttyent.3 isdialuptty.3 getttyent.3 isnettty.3 \
-       getttyent.3 setttyent.3
-MLINKS+=getusershell.3 endusershell.3 getusershell.3 setusershell.3
-MLINKS+=glob.3 globfree.3
-MLINKS+=isgreater.3 isgreaterequal.3 isgreater.3 isless.3 \
-       isgreater.3 islessequal.3 isgreater.3 islessgreater.3 \
-       isgreater.3 isunordered.3
-MLINKS+=malloc.3 calloc.3 malloc.3 valloc.3 malloc.3 realloc.3 malloc.3 free.3 \
-       malloc.3 malloc_size.3 malloc.3 malloc_good_size.3 malloc.3 reallocf.3
-MLINKS+=popen.3 pclose.3
-MLINKS+=psignal.3 sys_siglist.3 psignal.3 sys_signame.3
-MLINKS+=psignal.3 strsignal.3 psignal.3 sys_siglist.3 psignal.3 sys_signame.3
-MLINKS+=pwcache.3 group_from_gid.3 pwcache.3 user_from_uid.3
-MLINKS+=rand48.3 _rand48.3 rand48.3 drand48.3 rand48.3 erand48.3 \
-       rand48.3 jrand48.3 rand48.3 lcong48.3 rand48.3 lrand48.3 \
-       rand48.3 mrand48.3 rand48.3 nrand48.3 rand48.3 seed48.3 \
-       rand48.3 srand48.3
-MLINKS+=scandir.3 alphasort.3
-MLINKS+=strtofflags.3 fflagstostr.3
-MLINKS+=setjmp.3 _longjmp.3 setjmp.3 _setjmp.3 setjmp.3 longjmp.3 \
-       setjmp.3 longjmperr.3 setjmp.3 longjmperror.3 \
-       setjmp.3 siglongjmp.3 setjmp.3 sigsetjmp.3
-MLINKS+=setmode.3 getmode.3
-MLINKS+=sigsetops.3 sigaddset.3 sigsetops.3 sigdelset.3 \
-       sigsetops.3 sigemptyset.3 sigsetops.3 sigfillset.3 \
-       sigsetops.3 sigismember.3
-MLINKS+=stringlist.3 sl_add.3 stringlist.3 sl_find.3 \
-       stringlist.3 sl_free.3 stringlist.3 sl_init.3
-MLINKS+=sysctl.3 sysctlbyname.3 sysctl.3 sysctlnametomib.3
-MLINKS+=syslog.3 closelog.3 syslog.3 openlog.3 syslog.3 setlogmask.3 \
-       syslog.3 vsyslog.3
-MLINKS+=tcsendbreak.3 tcdrain.3 tcsendbreak.3 tcflow.3 tcsendbreak.3 tcflush.3
-MLINKS+=tcsetattr.3 cfgetispeed.3 tcsetattr.3 cfgetospeed.3 \
-       tcsetattr.3 cfmakeraw.3 tcsetattr.3 cfsetispeed.3 \
-       tcsetattr.3 cfsetospeed.3 tcsetattr.3 cfsetspeed.3 \
-       tcsetattr.3 tcgetattr.3
-MLINKS+=ttyname.3 isatty.3 ttyname.3 ttyslot.3
-MLINKS+=tzset.3 tzsetwall.3
-MLINKS+=unvis.3 strunvis.3 unvis.3 strunvisx.3
-MLINKS+=vis.3 strvis.3 vis.3 strvisx.3
+MLINKS+= arc4random.3 arc4random_addrandom.3   \
+         arc4random.3 arc4random_stir.3
+
+MLINKS+= asl.3 asl_add_log_file.3              \
+         asl.3 asl_close.3                     \
+         asl.3 asl_free.3                      \
+         asl.3 asl_get.3                       \
+         asl.3 asl_key.3                       \
+         asl.3 asl_log.3                       \
+         asl.3 asl_new.3                       \
+         asl.3 asl_open.3                      \
+         asl.3 asl_remove_log_file.3           \
+         asl.3 asl_search.3                    \
+         asl.3 asl_send.3                      \
+         asl.3 asl_set.3                       \
+         asl.3 asl_set_filter.3                        \
+         asl.3 asl_set_query.3                 \
+         asl.3 asl_unset.3                     \
+         asl.3 asl_vlog.3                      \
+         asl.3 aslresponse_free.3              \
+         asl.3 aslresponse_next.3
+
+MLINKS+= backtrace.3 backtrace_symbols.3       \
+        backtrace.3 backtrace_symbols_fd.3
+
+MLINKS+= crypt.3 encrypt.3                     \
+         crypt.3 setkey.3
+
+MLINKS+= ctermid.3 ctermid_r.3
+
+MLINKS+= devname.3 devname_r.3
+
+MLINKS+= directory.3 closedir.3                        \
+         directory.3 dirfd.3                   \
+         directory.3 opendir.3                 \
+         directory.3 readdir.3                 \
+         directory.3 readdir_r.3               \
+         directory.3 rewinddir.3               \
+         directory.3 seekdir.3                 \
+         directory.3 telldir.3
+
+MLINKS+= endutxent.3 getutxent.3               \
+         endutxent.3 getutxid.3                        \
+         endutxent.3 getutxline.3              \
+         endutxent.3 pututxline.3              \
+         endutxent.3 setutxent.3
+
+MLINKS+= err.3 err_set_exit.3                  \
+         err.3 err_set_file.3                  \
+         err.3 errc.3                          \
+         err.3 errx.3                          \
+         err.3 verr.3                          \
+         err.3 verrc.3                         \
+         err.3 verrx.3                         \
+         err.3 vwarn.3                         \
+         err.3 vwarnc.3                                \
+         err.3 vwarnx.3                                \
+         err.3 warn.3                          \
+         err.3 warnc.3                         \
+         err.3 warnx.3
+.ifdef FEATURE_BLOCKS
+MLINKS+= err.3 err_set_exit_b.3
+.endif # FEATURE_BLOCKS
+
+MLINKS+= exec.3 execl.3                                \
+         exec.3 execle.3                       \
+         exec.3 execlp.3                       \
+         exec.3 execv.3                                \
+         exec.3 execvp.3
+
+MLINKS+= fts.3 fts_children.3                  \
+         fts.3 fts_close.3                     \
+         fts.3 fts_open.3                      \
+         fts.3 fts_read.3                      \
+         fts.3 fts_set.3
+.ifdef FEATURE_BLOCKS
+MLINKS+= fts.3 fts_open_b.3
+.endif # FEATURE_BLOCKS
+
+MLINKS+= ftw.3 nftw.3
+
+MLINKS+= getcap.3 cgetcap.3                    \
+         getcap.3 cgetclose.3                  \
+         getcap.3 cgetent.3                    \
+         getcap.3 cgetfirst.3                  \
+         getcap.3 cgetmatch.3                  \
+         getcap.3 cgetnext.3                   \
+         getcap.3 cgetnum.3                    \
+         getcap.3 cgetset.3                    \
+         getcap.3 cgetstr.3                    \
+         getcap.3 cgetustr.3
+
+MLINKS+= getcontext.3 setcontext.3
+
+MLINKS+= getcwd.3 getwd.3
+
+MLINKS+= getdomainname.3 setdomainname.3
+
+MLINKS+= getlastlogx.3 getlastlogxbyname.3     \
+         getlastlogx.3 getutmp.3               \
+         getlastlogx.3 getutmpx.3              \
+         getlastlogx.3 utmpxname.3
+
+MLINKS+= gethostname.3 sethostname.3
+
+MLINKS+= getprogname.3 setprogname.3
+
+MLINKS+= getttyent.3 endttyent.3               \
+         getttyent.3 getttynam.3               \
+         getttyent.3 setttyent.3
+
+MLINKS+= getusershell.3 endusershell.3         \
+         getusershell.3 setusershell.3
+
+MLINKS+= glob.3 globfree.3
+
+MLINKS+= malloc.3 calloc.3                     \
+         malloc.3 free.3                       \
+         malloc.3 realloc.3                    \
+         malloc.3 reallocf.3                   \
+         malloc.3 valloc.3
+
+MLINKS+= makecontext.3 swapcontext.3
+
+MLINKS+= malloc_size.3 malloc_good_size.3
+
+MLINKS+= malloc_zone_malloc.3 malloc_create_zone.3 \
+         malloc_zone_malloc.3 malloc_destroy_zone.3 \
+         malloc_zone_malloc.3 malloc_default_zone.3 \
+         malloc_zone_malloc.3 malloc_zone_from_ptr.3 \
+         malloc_zone_malloc.3 malloc_zone_calloc.3 \
+         malloc_zone_malloc.3 malloc_zone_valloc.3 \
+         malloc_zone_malloc.3 malloc_zone_realloc.3 \
+         malloc_zone_malloc.3 malloc_zone_memalign.3 \
+         malloc_zone_malloc.3 malloc_zone_free.3
+
+MLINKS+= popen.3 pclose.3
+
+MLINKS+= psignal.3 sys_siglist.3               \
+         psignal.3 sys_signame.3
+
+MLINKS+= psignal.3 strsignal.3                 \
+         psignal.3 sys_siglist.3               \
+         psignal.3 sys_signame.3
+
+MLINKS+= pwcache.3 group_from_gid.3            \
+         pwcache.3 user_from_uid.3
+
+MLINKS+= rand48.3 _rand48.3                    \
+         rand48.3 drand48.3                    \
+         rand48.3 erand48.3                    \
+         rand48.3 jrand48.3                    \
+         rand48.3 lcong48.3                    \
+         rand48.3 lrand48.3                    \
+         rand48.3 mrand48.3                    \
+         rand48.3 nrand48.3                    \
+         rand48.3 seed48.3                     \
+         rand48.3 srand48.3
+
+MLINKS+= scandir.3 alphasort.3
+.ifdef FEATURE_BLOCKS
+MLINKS+= scandir.3 scandir_b.3
+.endif # FEATURE_BLOCKS
+
+MLINKS+= strtofflags.3 fflagstostr.3
+
+MLINKS+= setjmp.3 _longjmp.3                   \
+         setjmp.3 _setjmp.3                    \
+         setjmp.3 longjmp.3                    \
+         setjmp.3 longjmperr.3                 \
+         setjmp.3 longjmperror.3               \
+         setjmp.3 siglongjmp.3                 \
+         setjmp.3 sigsetjmp.3
+
+MLINKS+= setmode.3 getmode.3
+
+MLINKS+= sigsetops.3 sigaddset.3               \
+         sigsetops.3 sigdelset.3               \
+         sigsetops.3 sigemptyset.3             \
+         sigsetops.3 sigfillset.3              \
+         sigsetops.3 sigismember.3
+
+MLINKS+= stringlist.3 sl_add.3                 \
+         stringlist.3 sl_find.3                        \
+         stringlist.3 sl_free.3                        \
+         stringlist.3 sl_init.3
+
+MLINKS+= sysctl.3 sysctlbyname.3               \
+         sysctl.3 sysctlnametomib.3
+
+MLINKS+= syslog.3 closelog.3                   \
+         syslog.3 openlog.3                    \
+         syslog.3 setlogmask.3                 \
+         syslog.3 vsyslog.3
+
+MLINKS+= tcsendbreak.3 tcdrain.3               \
+         tcsendbreak.3 tcflow.3                        \
+         tcsendbreak.3 tcflush.3
+
+MLINKS+= tcsetattr.3 cfgetispeed.3             \
+         tcsetattr.3 cfgetospeed.3             \
+         tcsetattr.3 cfmakeraw.3               \
+         tcsetattr.3 cfsetispeed.3             \
+         tcsetattr.3 cfsetospeed.3             \
+         tcsetattr.3 cfsetspeed.3              \
+         tcsetattr.3 tcgetattr.3
+
+MLINKS+= ttyname.3 isatty.3                    \
+         ttyname.3 ttyslot.3
+
+MLINKS+= tzset.3 tzsetwall.3
+
+MLINKS+= unvis.3 strunvis.3                    \
+         unvis.3 strunvisx.3
+
+MLINKS+= vis.3 strvis.3                                \
+         vis.3 strvisx.3
+
+MLINKS+= wordexp.3 wordfree.3
 .endif
 .endif