From 06148e171bf33b769c267b48d0fb4ea853a1bacb Mon Sep 17 00:00:00 2001
From: Matt Joiner <anacrolix@gmail.com>
Date: Mon, 4 Sep 2023 12:22:09 +1000
Subject: [PATCH 1/2] Add F_PUNCHHOLE and fpunchhole_t

Closes #3336.
---
 src/unix/bsd/apple/mod.rs | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs
index bf571aeb738ff..e53cf3f197537 100644
--- a/src/unix/bsd/apple/mod.rs
+++ b/src/unix/bsd/apple/mod.rs
@@ -378,6 +378,13 @@ s! {
         pub fst_bytesalloc: ::off_t,
     }
 
+    pub struct fpunchhole_t {
+        pub fp_flags: ::c_uint, /* unused */
+        pub reserved: ::c_uint, /* (to maintain 8-byte alignment) */
+        pub fp_offset: ::off_t, /* IN: start of the region */
+        pub fp_length: ::off_t, /* IN: size of the region */
+    }
+
     pub struct radvisory {
         pub ra_offset: ::off_t,
         pub ra_count: ::c_int,
@@ -3241,6 +3248,7 @@ pub const F_GLOBAL_NOCACHE: ::c_int = 55;
 pub const F_NODIRECT: ::c_int = 62;
 pub const F_LOG2PHYS_EXT: ::c_int = 65;
 pub const F_BARRIERFSYNC: ::c_int = 85;
+pub const F_PUNCHHOLE: ::c_int = 99;
 pub const F_GETPATH_NOFIRMLINK: ::c_int = 102;
 
 pub const F_ALLOCATECONTIG: ::c_uint = 0x02;

From ca15272e89bef98d51071967e890564e75be9af3 Mon Sep 17 00:00:00 2001
From: Matt Joiner <anacrolix@gmail.com>
Date: Mon, 4 Sep 2023 12:25:45 +1000
Subject: [PATCH 2/2] Update semver for apple

Also I sorted it.
---
 libc-test/semver/apple.txt | 80 +++++++++++++++++++-------------------
 1 file changed, 41 insertions(+), 39 deletions(-)

diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt
index 10e505ed46dd0..64d0269d45eb9 100644
--- a/libc-test/semver/apple.txt
+++ b/libc-test/semver/apple.txt
@@ -193,10 +193,10 @@ BUFSIZ
 BUS_ADRALN
 BUS_ADRERR
 BUS_OBJERR
-CCStatus
 CCCryptorStatus
-CCRandomGenerateBytes
 CCRNGStatus
+CCRandomGenerateBytes
+CCStatus
 CIGNORE
 CLD_CONTINUED
 CLD_DUMPED
@@ -442,6 +442,7 @@ F_NOCACHE
 F_NODIRECT
 F_PEOFPOSMODE
 F_PREALLOCATE
+F_PUNCHHOLE
 F_RDADVISE
 F_RDAHEAD
 F_RDLCK
@@ -640,8 +641,8 @@ IPV6_PKTINFO
 IPV6_RECVPKTINFO
 IPV6_RECVTCLASS
 IPV6_TCLASS
-IP_HDRINCL
 IP_BOUND_IF
+IP_HDRINCL
 IP_PKTINFO
 IP_RECVDSTADDR
 IP_RECVIF
@@ -677,7 +678,6 @@ KERN_FAILURE
 KERN_FILE
 KERN_HOSTID
 KERN_HOSTNAME
-KERN_IPC
 KERN_INSUFFICIENT_BUFFER_SIZE
 KERN_INVALID_ADDRESS
 KERN_INVALID_ARGUMENT
@@ -685,12 +685,13 @@ KERN_INVALID_HOST
 KERN_INVALID_LEDGER
 KERN_INVALID_MEMORY_CONTROL
 KERN_INVALID_NAME
-KERN_INVALID_POLICY
 KERN_INVALID_OBJECT
+KERN_INVALID_POLICY
+KERN_INVALID_RIGHT
 KERN_INVALID_SECURITY
 KERN_INVALID_TASK
-KERN_INVALID_RIGHT
 KERN_INVALID_VALUE
+KERN_IPC
 KERN_JOB_CONTROL
 KERN_KDBUFWAIT
 KERN_KDCPUMAP
@@ -714,11 +715,11 @@ KERN_KDSET_TYPEFILTER
 KERN_KDTHRMAP
 KERN_KDWRITEMAP
 KERN_KDWRITETR
-KERN_LOGSIGEXIT
 KERN_LOCK_OWNED
 KERN_LOCK_OWNED_SELF
 KERN_LOCK_SET_DESTROYED
 KERN_LOCK_UNSTABLE
+KERN_LOGSIGEXIT
 KERN_LOW_PRI_DELAY
 KERN_LOW_PRI_WINDOW
 KERN_MAXFILES
@@ -780,9 +781,9 @@ KERN_SAFEBOOT
 KERN_SAVED_IDS
 KERN_SECURELVL
 KERN_SEMAPHORE_DESTROYED
-KERN_SUCCESS
 KERN_SHREG_PRIVATIZABLE
 KERN_SPECULATIVE_READS
+KERN_SUCCESS
 KERN_SUGID_COREDUMP
 KERN_SYMFILE
 KERN_SYSV
@@ -1272,8 +1273,8 @@ SAE_ASSOCID_ANY
 SAE_CONNID_ALL
 SAE_CONNID_ANY
 SCALE_PPM
-SCHED_OTHER
 SCHED_FIFO
+SCHED_OTHER
 SCHED_RR
 SCM_CREDS
 SCM_RIGHTS
@@ -1369,12 +1370,12 @@ TCP_MAXSEG
 TCP_NOOPT
 TCP_NOPUSH
 THOUSEP
-THREAD_BACKGROUND_POLICY
-THREAD_BACKGROUND_POLICY_DARWIN_BG
-THREAD_BACKGROUND_POLICY_COUNT
 THREAD_AFFINITY_POLICY
 THREAD_AFFINITY_POLICY_COUNT
 THREAD_AFFINITY_TAG_NULL
+THREAD_BACKGROUND_POLICY
+THREAD_BACKGROUND_POLICY_COUNT
+THREAD_BACKGROUND_POLICY_DARWIN_BG
 THREAD_BASIC_INFO
 THREAD_BASIC_INFO_COUNT
 THREAD_EXTENDED_INFO
@@ -1671,10 +1672,10 @@ XATTR_SHOWCOMPRESSION
 XUCRED_VERSION
 YESEXPR
 YESSTR
-_CS_PATH
+_CS_DARWIN_USER_CACHE_DIR
 _CS_DARWIN_USER_DIR
 _CS_DARWIN_USER_TEMP_DIR
-_CS_DARWIN_USER_CACHE_DIR
+_CS_PATH
 _IOFBF
 _IOLBF
 _IONBF
@@ -1742,8 +1743,8 @@ _SC_PRIORITY_SCHEDULING
 _SC_RAW_SOCKETS
 _SC_READER_WRITER_LOCKS
 _SC_REALTIME_SIGNALS
-_SC_RE_DUP_MAX
 _SC_REGEXP
+_SC_RE_DUP_MAX
 _SC_RTSIG_MAX
 _SC_SAVED_IDS
 _SC_SEMAPHORES
@@ -1843,6 +1844,7 @@ backtrace_from_fp
 backtrace_image_offsets
 backtrace_symbols
 backtrace_symbols_fd
+basename
 boolean_t
 bpf_hdr
 brk
@@ -1870,6 +1872,7 @@ ctime_r
 ctl_info
 difftime
 dirfd
+dirname
 disconnectx
 dqblk
 duplocale
@@ -1889,6 +1892,7 @@ flistxattr
 fmemopen
 fmount
 forkpty
+fpunchhole_t
 freadlink
 freeifaddrs
 freelocale
@@ -2004,13 +2008,13 @@ malloc_zone_t
 malloc_zone_valloc
 max_align_t
 mcontext_t
-memory_object_t
+mem_entry_name_port_t
 memory_object_offset_t
+memory_object_t
+memset_pattern16
 memset_pattern4
 memset_pattern8
-memset_pattern16
 memset_s
-mem_entry_name_port_t
 mincore
 mkdirat
 mkfifoat
@@ -2032,21 +2036,21 @@ openat
 openpty
 os_log_create
 os_log_t
-os_log_type_t
 os_log_type_enabled
+os_log_type_t
 os_signpost_enabled
 os_signpost_id_generate
 os_signpost_id_make_with_pointer
 os_signpost_id_t
 os_signpost_type_t
 os_unfair_lock
+os_unfair_lock_assert_not_owner
+os_unfair_lock_assert_owner
+os_unfair_lock_lock
 os_unfair_lock_s
 os_unfair_lock_t
-os_unfair_lock_lock
 os_unfair_lock_trylock
 os_unfair_lock_unlock
-os_unfair_lock_assert_owner
-os_unfair_lock_assert_not_owner
 pause
 policy_t
 popen
@@ -2077,21 +2081,21 @@ posix_spawnp
 preadv
 proc_bsdinfo
 proc_kmsgbuf
+proc_libversion
 proc_listallpids
 proc_listchildpids
 proc_listpgrppids
 proc_listpids
-proc_libversion
 proc_name
-proc_pidinfo
 proc_pidfdinfo
 proc_pidfileportinfo
+proc_pidinfo
 proc_pidpath
 proc_regionfilename
-proc_set_no_smt
-proc_setthread_no_smt
 proc_set_csm
+proc_set_no_smt
 proc_setthread_csm
+proc_setthread_no_smt
 proc_taskallinfo
 proc_taskinfo
 proc_threadinfo
@@ -2102,26 +2106,25 @@ pseudo_AF_RTIP
 pseudo_AF_XTP
 pthread_attr_getschedparam
 pthread_attr_setschedparam
+pthread_cancel
+pthread_condattr_getpshared
+pthread_condattr_setpshared
 pthread_cpu_number_np
 pthread_create_from_mach_thread
+pthread_from_mach_thread_np
+pthread_get_stackaddr_np
+pthread_get_stacksize_np
+pthread_getname_np
 pthread_getschedparam
 pthread_introspection_getspecific_np
-pthread_introspection_hook_t
 pthread_introspection_hook_install
+pthread_introspection_hook_t
 pthread_introspection_setspecific_np
 pthread_jit_write_callback_t
 pthread_jit_write_freeze_callbacks_np
 pthread_jit_write_protect_np
 pthread_jit_write_protect_supported_np
 pthread_jit_write_with_callback_np
-pthread_setschedparam
-pthread_cancel
-pthread_condattr_getpshared
-pthread_condattr_setpshared
-pthread_from_mach_thread_np
-pthread_get_stackaddr_np
-pthread_get_stacksize_np
-pthread_getname_np
 pthread_kill
 pthread_main_np
 pthread_mutexattr_getpshared
@@ -2129,6 +2132,7 @@ pthread_mutexattr_setpshared
 pthread_rwlockattr_getpshared
 pthread_rwlockattr_setpshared
 pthread_setname_np
+pthread_setschedparam
 pthread_stack_frame_decode_np
 ptrace
 pututxline
@@ -2236,11 +2240,11 @@ thread_identifier_info_t
 thread_info
 thread_info_t
 thread_inspect_t
-thread_policy_set
 thread_policy_get
+thread_policy_set
+time_value_t
 timeval32
 timex
-time_value_t
 truncate
 ttyname_r
 ucontext_t
@@ -2261,5 +2265,3 @@ wait4
 waitid
 xsw_usage
 xucred
-dirname
-basename