Loading...
--- Libc/Libc-1044.1.2/xcodescripts/headers.sh
+++ Libc/Libc-1669.40.2/xcodescripts/headers.sh
@@ -1,10 +1,14 @@
#!/bin/bash
set -x
-# Skip installing headers during Xcode build (buildit uses installhdrs+install)
-if [ "$ACTION" == build ]; then exit 0; fi
-
# Installs Libc header files
+
+if [ -n "${DRIVERKIT}" -a -z "${DRIVERKITSDK}" ]; then
+ # Run script in the mode that installs public DriverKit SDK headers first:
+ # required to get the correct header unifdef ordering, that mode strips out more
+ # and rewrites all headers under the parent directory (/System/DriverKit)
+ DRIVERKITSDK=1 SDK_INSTALL_HEADERS_ROOT="${SDK_INSTALL_ROOT}" "${BASH}" -e "$0"
+fi
MKDIR="mkdir -p"
INSTALL=install
@@ -23,28 +27,55 @@
eval $(${SRCROOT}/xcodescripts/generate_features.pl --bash)
UNIFDEFARGS=$(${SRCROOT}/xcodescripts/generate_features.pl --unifdef)
-INCDIR=${DSTROOT}/${PUBLIC_HEADERS_FOLDER_PATH}
-LOCINCDIR=${DSTROOT}/${PRIVATE_HEADERS_FOLDER_PATH}
-SYSTEMFRAMEWORK=${DSTROOT}/${INSTALL_PATH_PREFIX}/System/Library/Frameworks/System.framework
-KERNELFRAMEWORK=${DSTROOT}/${INSTALL_PATH_PREFIX}/System/Library/Frameworks/Kernel.framework
+if [[ "${DEPLOYMENT_LOCATION}" == "NO" ]] ; then
+ HDRROOT=${BUILT_PRODUCTS_DIR}
+else
+ HDRROOT=${DSTROOT}
+fi
+
+INCDIR=${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}/usr/include
+LOCINCDIR=${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}/usr/local/include
+SYSTEMFRAMEWORK=${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}/System/Library/Frameworks/System.framework
+KERNELFRAMEWORK=${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}/System/Library/Frameworks/Kernel.framework
PRIVHDRS=${SYSTEMFRAMEWORK}/Versions/B/PrivateHeaders
PRIVKERNELHDRS=${KERNELFRAMEWORK}/Versions/A/PrivateHeaders
INSTALLMODE=$([[ `id -u` -eq 0 ]] && echo 444 || echo 644)
+if [ -z "${DRIVERKITSDK}" ]; then
+
INSTHDRS=(
${SRCROOT}/gen/get_compat.h
${SRCROOT}/gen/execinfo.h
)
INC_INSTHDRS=(
+ ___wctype.h
+ __wctype.h
+ __xlocale.h
+ _abort.h
+ _assert.h
+ _ctype.h
+ _inttypes.h
+ _langinfo.h
_locale.h
+ _mb_cur_max.h
+ _monetary.h
+ _printf.h
+ _regex.h
+ _static_assert.h
+ _stdio.h
+ _stdlib.h
+ _string.h
+ _strings.h
+ _time.h
_types.h
+ _wchar.h
_wctype.h
_xlocale.h
+ _ctermid.h
aio.h
alloca.h
- ar.h
assert.h
asm.h
bitstring.h
@@ -91,7 +122,6 @@
signal.h
stab.h
standards.h
- stdbool.h
stddef.h
stdio.h
stdint.h
@@ -118,6 +148,9 @@
wordexp.h
xlocale.h
)
+if [ "${PLATFORM_NAME}" == "macosx" -o -n "${DRIVERKIT}" ]; then
+ INC_INSTHDRS=( "${INC_INSTHDRS[@]}" ar.h )
+fi
if [ "x${FEATURE_LEGACY_RUNE_APIS}" == "x1" ]; then
INC_INSTHDRS=( "${INC_INSTHDRS[@]}" rune.h )
fi
@@ -138,19 +171,23 @@
if [ "x${FEATURE_THERM_NOTIFICATION_APIS}" == "x1" ]; then
INC_THERM_INSTHDRS=( OSThermalNotification.h )
- THERM_INSTHDRS=( "${INC_THERM_INSTHDRS[@]/#/${SRCROOT}/include/libkern/}" )
+ if [ "${PLATFORM_NAME}" == "macosx" ]; then
+ THERM_INSTHDRS=( "${INC_THERM_INSTHDRS[@]/#/${SRCROOT}/include/libkern/}" )
+ else
+ THERM_LOCALHDRS=( "${INC_THERM_INSTHDRS[@]/#/${SRCROOT}/include/libkern/}" )
+ fi
fi
INC_PROTO_INSTHDRS=( routed.h rwhod.h talkd.h timed.h )
PROTO_INSTHDRS=( "${INC_PROTO_INSTHDRS[@]/#/${SRCROOT}/include/protocols/}" )
-INC_SECURE_INSTHDRS=( _common.h _string.h _stdio.h )
+INC_SECURE_INSTHDRS=( _common.h _string.h _strings.h _stdio.h )
SECURE_INSTHDRS=( "${INC_SECURE_INSTHDRS[@]/#/${SRCROOT}/include/secure/}" )
SYS_INSTHDRS=( ${SRCROOT}/include/sys/acl.h ${SRCROOT}/include/sys/statvfs.h )
INC_XLOCALE_INSTHDRS=(
- __wctype.h
+ ___wctype.h
_ctype.h
_inttypes.h
_langinfo.h
@@ -165,6 +202,12 @@
)
XLOCALE_INSTHDRS=( "${INC_XLOCALE_INSTHDRS[@]/#/${SRCROOT}/include/xlocale/}" )
+MODULEMAPS=(
+)
+
+PRIV_MODULEMAPS=(
+)
+
TYPES_INSTHDRS=(
${SRCROOT}/include/_types/_intmax_t.h
${SRCROOT}/include/_types/_nl_item.h
@@ -179,10 +222,17 @@
LOCALHDRS=(
${SRCROOT}/darwin/libc_private.h
- ${SRCROOT}/gen/assumes.h
+ ${SRCROOT}/darwin/libc_hooks.h
${SRCROOT}/gen/utmpx_thread.h
${SRCROOT}/nls/FreeBSD/msgcat.h
-)
+ ${SRCROOT}/gen/thread_stack_pcs.h
+ ${SRCROOT}/libdarwin/h/dirstat.h
+ ${SRCROOT}/darwin/subsystem.h
+ ${SRCROOT}/darwin/_libc_init.h
+)
+if [ "${PLATFORM_NAME}" != "macosx" -a -z "${DRIVERKIT}" ]; then
+ LOCALHDRS=( "${LOCALHDRS[@]}" ${SRCROOT}/include/ar.h )
+fi
OS_LOCALHDRS=( ${SRCROOT}/os/assumes.h ${SRCROOT}/os/debug_private.h )
@@ -200,52 +250,155 @@
${SRCROOT}/include/sys/rbtree.h
${SRCROOT}/include/sys/statvfs.h
)
+
PRIVUUID_INSTHDRS=( ${SRCROOT}/uuid/namespace.h )
+else # DRIVERKITSDK
+
+# Public DriverKit SDK headers
+
+UNIFDEFARGS="${UNIFDEFARGS} -U_USE_EXTENDED_LOCALES_"
+
+INC_INSTHDRS=(
+ ___wctype.h
+ __wctype.h
+ _abort.h
+ _assert.h
+ _ctype.h
+ _inttypes.h
+ _locale.h
+ _mb_cur_max.h
+ _printf.h
+ _static_assert.h
+ _stdio.h
+ _stdlib.h
+ _string.h
+ _strings.h
+ _time.h
+ _types.h
+ _wchar.h
+ _wctype.h
+ alloca.h
+ assert.h
+ ctype.h
+ inttypes.h
+ limits.h
+ locale.h
+ runetype.h
+ stddef.h
+ stdio.h
+ stdint.h
+ stdlib.h
+ string.h
+ strings.h
+ time.h
+ wchar.h
+ wctype.h
+)
+
+TYPES_INSTHDRS=(
+ ${SRCROOT}/include/_types/_intmax_t.h
+ ${SRCROOT}/include/_types/_uint16_t.h
+ ${SRCROOT}/include/_types/_uint32_t.h
+ ${SRCROOT}/include/_types/_uint64_t.h
+ ${SRCROOT}/include/_types/_uint8_t.h
+ ${SRCROOT}/include/_types/_uintmax_t.h
+ ${SRCROOT}/include/_types/_wctrans_t.h
+ ${SRCROOT}/include/_types/_wctype_t.h
+)
+
+INC_INSTHDRS=(
+ "${INC_INSTHDRS[@]/#/${SRCROOT}/include/}"
+)
+INSTHDRS=( "${INSTHDRS[@]}" "${INC_INSTHDRS[@]}" )
+
+INC_SECURE_INSTHDRS=( _common.h _string.h _strings.h _stdio.h )
+SECURE_INSTHDRS=( "${INC_SECURE_INSTHDRS[@]/#/${SRCROOT}/include/secure/}" )
+
+fi # DRIVERKITSDK
+
+if [ -n "${INSTHDRS}" ]; then
+${MKDIR} ${INCDIR}
+${INSTALL} -m ${INSTALLMODE} ${INSTHDRS[@]} ${INCDIR}
+fi
+if [ -n "${ARPA_INSTHDRS}" ]; then
${MKDIR} ${INCDIR}/arpa
+${INSTALL} -m ${INSTALLMODE} ${ARPA_INSTHDRS[@]} ${INCDIR}/arpa
+fi
+if [ -n "${THERM_INSTHDRS}" ]; then
${MKDIR} ${INCDIR}/libkern
-${MKDIR} ${INCDIR}/malloc
+${INSTALL} -m ${INSTALLMODE} ${THERM_INSTHDRS[@]} ${INCDIR}/libkern
+fi
+if [ -n "${PROTO_INSTHDRS}" ]; then
${MKDIR} ${INCDIR}/protocols
+${INSTALL} -m ${INSTALLMODE} ${PROTO_INSTHDRS[@]} ${INCDIR}/protocols
+fi
+if [ -n "${SECURE_INSTHDRS}" ]; then
${MKDIR} ${INCDIR}/secure
+${INSTALL} -m ${INSTALLMODE} ${SECURE_INSTHDRS[@]} ${INCDIR}/secure
+fi
+if [ -n "${SYS_INSTHDRS}" ]; then
${MKDIR} ${INCDIR}/sys
+${INSTALL} -m ${INSTALLMODE} ${SYS_INSTHDRS[@]} ${INCDIR}/sys
+fi
+if [ -n "${XLOCALE_INSTHDRS}" ]; then
${MKDIR} ${INCDIR}/xlocale
+${INSTALL} -m ${INSTALLMODE} ${XLOCALE_INSTHDRS[@]} ${INCDIR}/xlocale
+fi
+if [ -n "${TYPES_INSTHDRS}" ]; then
${MKDIR} ${INCDIR}/_types
-${INSTALL} -m ${INSTALLMODE} ${INSTHDRS[@]} ${INCDIR}
-${INSTALL} -m ${INSTALLMODE} ${ARPA_INSTHDRS[@]} ${INCDIR}/arpa
-if [ "x${FEATURE_MEM_NOTIFICATION_APIS}" == "x1" ]; then
-${INSTALL} -m ${INSTALLMODE} ${MEM_INSTHDRS[@]} ${INCDIR}/libkern
-fi
-if [ "x${FEATURE_THERM_NOTIFICATION_APIS}" == "x1" ]; then
-${INSTALL} -m ${INSTALLMODE} ${THERM_INSTHDRS[@]} ${INCDIR}/libkern
-fi
-${INSTALL} -m ${INSTALLMODE} ${PROTO_INSTHDRS[@]} ${INCDIR}/protocols
-${INSTALL} -m ${INSTALLMODE} ${SECURE_INSTHDRS[@]} ${INCDIR}/secure
-${INSTALL} -m ${INSTALLMODE} ${SYS_INSTHDRS[@]} ${INCDIR}/sys
-${INSTALL} -m ${INSTALLMODE} ${XLOCALE_INSTHDRS[@]} ${INCDIR}/xlocale
${INSTALL} -m ${INSTALLMODE} ${TYPES_INSTHDRS[@]} ${INCDIR}/_types
+fi
+if [ -n "${MODULEMAPS}" ]; then
+${MKDIR} ${INCDIR}
+${INSTALL} -m ${INSTALLMODE} ${MODULEMAPS[@]} ${INCDIR}
+fi
+if [ -n "${LOCALHDRS}" ]; then
${MKDIR} ${LOCINCDIR}
+${INSTALL} -m ${INSTALLMODE} ${LOCALHDRS[@]} ${LOCINCDIR}
+fi
+if [ -n "${THERM_LOCALHDRS}" ]; then
+${MKDIR} ${LOCINCDIR}/libkern
+${INSTALL} -m ${INSTALLMODE} ${THERM_LOCALHDRS[@]} ${LOCINCDIR}/libkern
+fi
+if [ -n "${OS_LOCALHDRS}" ]; then
${MKDIR} ${LOCINCDIR}/os
-${INSTALL} -m ${INSTALLMODE} ${LOCALHDRS[@]} ${LOCINCDIR}
${INSTALL} -m ${INSTALLMODE} ${OS_LOCALHDRS[@]} ${LOCINCDIR}/os
+fi
+if [ -n "${PRIV_MODULEMAPS}" ]; then
+${MKDIR} ${LOCINCDIR}
+${INSTALL} -m ${INSTALLMODE} ${PRIV_MODULEMAPS[@]} ${LOCINCDIR}
+fi
+if [ -n "${PRIV_INSTHDRS}" ]; then
+${MKDIR} ${PRIVHDRS}
+${INSTALL} -m ${INSTALLMODE} ${PRIV_INSTHDRS[@]} ${PRIVHDRS}
+fi
+if [ -n "${PRIV_BTREEHDRS}" ]; then
${MKDIR} ${PRIVHDRS}/btree
+${INSTALL} -m ${INSTALLMODE} ${PRIV_BTREEHDRS[@]} ${PRIVHDRS}/btree
+fi
+if [ -n "${SYS_INSTHDRS}" ]; then
+${MKDIR} ${PRIVHDRS}/sys
+${INSTALL} -m ${INSTALLMODE} ${SYS_INSTHDRS[@]} ${PRIVHDRS}/sys
+fi
+if [ -n "${PRIVUUID_INSTHDRS}" ]; then
+${MKDIR} ${PRIVHDRS}/uuid
+${INSTALL} -m ${INSTALLMODE} ${PRIVUUID_INSTHDRS[@]} ${PRIVHDRS}/uuid
+${MKDIR} ${PRIVKERNELHDRS}/uuid
+${INSTALL} -m ${INSTALLMODE} ${PRIVUUID_INSTHDRS[@]} ${PRIVKERNELHDRS}/uuid
+fi
+if [ -f "${INCDIR}/asm.h" ]; then
${MKDIR} ${PRIVHDRS}/machine
-${MKDIR} ${PRIVHDRS}/uuid
-${MKDIR} ${PRIVHDRS}/sys
-${MKDIR} ${PRIVKERNELHDRS}/uuid
-${INSTALL} -m ${INSTALLMODE} ${PRIV_INSTHDRS[@]} ${PRIVHDRS}
-${INSTALL} -m ${INSTALLMODE} ${PRIV_BTREEHDRS[@]} ${PRIVHDRS}/btree
${MV} ${INCDIR}/asm.h ${PRIVHDRS}/machine
-${INSTALL} -m ${INSTALLMODE} ${SYS_INSTHDRS[@]} ${PRIVHDRS}/sys
-${INSTALL} -m ${INSTALLMODE} ${PRIVUUID_INSTHDRS[@]} ${PRIVHDRS}/uuid
-${INSTALL} -m ${INSTALLMODE} ${PRIVUUID_INSTHDRS[@]} ${PRIVKERNELHDRS}/uuid
-
-for i in `${FIND} "${DSTROOT}" -name \*.h -print0 | ${XARGS} -0 ${GREP} -l '^//Begin-Libc'`; do
+fi
+
+for i in `${FIND} "${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}" -name \*.h -print0 | ${XARGS} -0 ${GREP} -l '^//Begin-Libc'`; do
${CHMOD} u+w $i &&
${ECHO} ${ED} - $i \< ${SRCROOT}/xcodescripts/strip-header.ed &&
${ED} - $i < ${SRCROOT}/xcodescripts/strip-header.ed &&
${CHMOD} u-w $i || exit 1;
done
-for i in `${FIND} "${DSTROOT}" -name \*.h -print0 | ${XARGS} -0 ${FGREP} -l -e UNIFDEF -e OPEN_SOURCE`; do
+for i in `${FIND} "${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}" -name \*.h -print0 | ${XARGS} -0 ${FGREP} -l -e UNIFDEF -e OPEN_SOURCE -e _USE_EXTENDED_LOCALES_`; do
${CHMOD} u+w $i &&
${CP} $i $i.orig &&
${ECHO} ${UNIFDEF} ${UNIFDEFARGS} $i.orig \> $i &&