[darwin.stdenv] Fix to work on Sierra

This reinstates the libSystem selective symbol export machinery we used
to have, but locks it to the symbols that were present in 10.11 and skips
the actual compiled code we put into that library in favor of the system
initialization code. That should make it more stable and less likely to
do weird stuff than the last time we did this.
This commit is contained in:
Dan Peebles
2016-10-12 00:08:13 -04:00
parent 7098404505
commit d8a0307a5d
6 changed files with 246 additions and 279 deletions
@@ -9,17 +9,20 @@ ___access_extended
___aio_suspend_nocancel
___bind
___bsdthread_create
___bsdthread_ctl
___bsdthread_register
___bsdthread_terminate
___carbon_delete
___chmod
___chmod_extended
___chud
___close_nocancel
___coalition
___coalition_info
___commpage_gettimeofday
___connect
___connect_nocancel
___copyfile
___csrctl
___delete
___disable_threadsignal
___error
@@ -29,7 +32,6 @@ ___fchmod_extended
___fcntl
___fcntl_nocancel
___fork
___fsgetpath
___fstat64_extended
___fstat_extended
___fsync_nocancel
@@ -37,7 +39,6 @@ ___get_remove_counter
___getattrlist
___getdirentries64
___gethostuuid
___getlcid
___getlogin
___getpeername
___getpid
@@ -47,6 +48,7 @@ ___getsockname
___gettid
___gettimeofday
___getwgroups
___guarded_open_dprotected_np
___guarded_open_np
___identitysvc
___inc_remove_counter
@@ -54,11 +56,14 @@ ___initgroups
___ioctl
___iopolicysys
___kdebug_trace
___kdebug_trace64
___kdebug_trace_string
___kernelVersionNumber
___kernelVersionString
___kill
___lchown
___libkernel_init
___libkernel_voucher_init
___listen
___lseek
___lstat64_extended
@@ -66,8 +71,6 @@ ___lstat_extended
___mac_execve
___mac_get_fd
___mac_get_file
___mac_get_lcid
___mac_get_lctx
___mac_get_link
___mac_get_mount
___mac_get_pid
@@ -76,10 +79,10 @@ ___mac_getfsstat
___mac_mount
___mac_set_fd
___mac_set_file
___mac_set_lctx
___mac_set_link
___mac_set_proc
___mac_syscall
___microstackshot
___mkdir_extended
___mkfifo_extended
___mmap
@@ -96,12 +99,16 @@ ___open
___open_dprotected_np
___open_extended
___open_nocancel
___openat
___openat_nocancel
___pipe
___poll_nocancel
___posix_spawn
___pread_nocancel
___proc_info
___process_policy
___pselect
___pselect_nocancel
___psynch_cvbroad
___psynch_cvclrprepost
___psynch_cvsignal
@@ -131,6 +138,7 @@ ___recvfrom_nocancel
___recvmsg
___recvmsg_nocancel
___rename
___renameat
___rmdir
___sandbox_me
___sandbox_mm
@@ -149,8 +157,8 @@ ___sendmsg_nocancel
___sendto
___sendto_nocancel
___setattrlist
___setlcid
___setlogin
___setpriority
___setregid
___setreuid
___setrlimit
@@ -159,6 +167,8 @@ ___settid
___settid_with_pid
___settimeofday
___setwgroups
___sfi_ctl
___sfi_pidctl
___shared_region_check_np
___shared_region_map_and_slide_np
___shm_open
@@ -171,20 +181,24 @@ ___sigsuspend
___sigsuspend_nocancel
___sigwait
___socketpair
___stack_snapshot
___stack_snapshot_with_config
___stat64_extended
___stat_extended
___syscall
___syscall_logger
___sysctl
___sysctlbyname
___telemetry
___thread_selfid
___thread_selfusage
___umask_extended
___unlink
___unlinkat
___vfork
___wait4
___wait4_nocancel
___waitid_nocancel
___work_interval_ctl
___workq_kernreturn
___workq_open
___write_nocancel
@@ -238,6 +252,7 @@ __kernelrpc_mach_port_set_attributes
__kernelrpc_mach_port_set_context
__kernelrpc_mach_port_set_mscount
__kernelrpc_mach_port_set_seqno
__kernelrpc_mach_port_space_basic_info
__kernelrpc_mach_port_space_info
__kernelrpc_mach_port_type
__kernelrpc_mach_port_unguard
@@ -253,6 +268,9 @@ __kernelrpc_mach_vm_protect_trap
__kernelrpc_mach_vm_read
__kernelrpc_mach_vm_remap
__kernelrpc_task_set_port_space
__kernelrpc_thread_policy
__kernelrpc_thread_policy_set
__kernelrpc_thread_set_policy
__kernelrpc_vm_map
__kernelrpc_vm_read
__kernelrpc_vm_remap
@@ -304,11 +322,18 @@ _clock_sleep
_clock_sleep_trap
_close
_close$NOCANCEL
_coalition_create
_coalition_info_resource_usage
_coalition_reap
_coalition_terminate
_connect
_connect$NOCANCEL
_connectx
_csops
_csops_audittoken
_csr_check
_csr_get_active_config
_denap_boost_assertion_token
_disconnectx
_dup
_dup2
@@ -321,10 +346,13 @@ _exception_raise_state
_exception_raise_state_identity
_exchangedata
_execve
_faccessat
_fchdir
_fchflags
_fchmod
_fchmodat
_fchown
_fchownat
_fcntl
_fcntl$NOCANCEL
_fdatasync
@@ -344,6 +372,9 @@ _fsetxattr
_fstat
_fstat$INODE64
_fstat64
_fstatat
_fstatat$INODE64
_fstatat64
_fstatfs
_fstatfs$INODE64
_fstatfs64
@@ -353,6 +384,8 @@ _ftruncate
_futimes
_get_dp_control_port
_getattrlist
_getattrlistat
_getattrlistbulk
_getaudit
_getaudit_addr
_getauid
@@ -385,11 +418,18 @@ _getsockopt
_getuid
_getwgroups_np
_getxattr
_grab_pgo_data
_guarded_close_np
_guarded_kqueue_np
_guarded_open_dprotected_np
_guarded_open_np
_guarded_pwrite_np
_guarded_write_np
_guarded_writev_np
_host_create_mach_voucher
_host_default_memory_manager
_host_get_UNDServer
_host_get_atm_diagnostic_flag
_host_get_boot_info
_host_get_clock_control
_host_get_clock_service
@@ -406,12 +446,15 @@ _host_processor_set_priv
_host_processor_sets
_host_processors
_host_reboot
_host_register_mach_voucher_attr_manager
_host_register_well_known_mach_voucher_attr_manager
_host_request_notification
_host_security_create_task_token
_host_security_set_task_token
_host_self
_host_self_trap
_host_set_UNDServer
_host_set_atm_diagnostic_flag
_host_set_exception_ports
_host_set_special_port
_host_statistics
@@ -426,8 +469,11 @@ _internal_catch_exc_subsystem
_ioctl
_issetugid
_kas_info
_kdebug_trace
_kdebug_trace_string
_kevent
_kevent64
_kevent_qos
_kext_request
_kill
_kmod_control
@@ -438,6 +484,7 @@ _kqueue
_lchown
_ledger
_link
_linkat
_lio_listio
_listen
_listxattr
@@ -454,6 +501,7 @@ _lstat
_lstat$INODE64
_lstat64
_mach_absolute_time
_mach_approximate_time
_mach_error
_mach_error_full_diag
_mach_error_string
@@ -462,6 +510,7 @@ _mach_host_self
_mach_init
_mach_make_memory_entry
_mach_make_memory_entry_64
_mach_memory_info
_mach_memory_object_memory_entry
_mach_memory_object_memory_entry_64
_mach_msg
@@ -510,6 +559,7 @@ _mach_port_set_attributes
_mach_port_set_context
_mach_port_set_mscount
_mach_port_set_seqno
_mach_port_space_basic_info
_mach_port_space_info
_mach_port_type
_mach_port_unguard
@@ -540,6 +590,12 @@ _mach_vm_region_recurse
_mach_vm_remap
_mach_vm_wire
_mach_vm_write
_mach_voucher_attr_command
_mach_voucher_deallocate
_mach_voucher_debug_info
_mach_voucher_extract_all_attr_recipes
_mach_voucher_extract_attr_content
_mach_voucher_extract_attr_recipe
_mach_wait_until
_mach_zone_force_gc
_mach_zone_info
@@ -565,6 +621,7 @@ _mk_timer_cancel
_mk_timer_create
_mk_timer_destroy
_mkdir
_mkdirat
_mkfifo
_mknod
_mlock
@@ -573,6 +630,7 @@ _mmap
_modwatch
_mount
_mprotect
_mremap_encrypted
_msg_receive
_msg_rpc
_msg_send
@@ -588,6 +646,8 @@ _msync$NOCANCEL
_munlock
_munlockall
_munmap
_necp_match_policy
_netagent_trigger
_netname_check_in
_netname_check_out
_netname_look_up
@@ -599,12 +659,17 @@ _normal_boost_assertion_token
_open
_open$NOCANCEL
_open_dprotected_np
_openat
_openat$NOCANCEL
_openbyid_np
_panic
_panic_init
_pathconf
_peeloff
_pid_for_task
_pid_hibernate
_pid_resume
_pid_shutdown_sockets
_pid_suspend
_pipe
_poll
@@ -621,6 +686,8 @@ _posix_spawn_file_actions_addopen
_posix_spawn_file_actions_destroy
_posix_spawn_file_actions_init
_posix_spawnattr_destroy
_posix_spawnattr_get_darwin_role_np
_posix_spawnattr_get_qos_clamp_np
_posix_spawnattr_getbinpref_np
_posix_spawnattr_getcpumonitor
_posix_spawnattr_getflags
@@ -631,9 +698,12 @@ _posix_spawnattr_getprocesstype_np
_posix_spawnattr_getsigdefault
_posix_spawnattr_getsigmask
_posix_spawnattr_init
_posix_spawnattr_set_darwin_role_np
_posix_spawnattr_set_importancewatch_port_np
_posix_spawnattr_set_qos_clamp_np
_posix_spawnattr_setauditsessionport_np
_posix_spawnattr_setbinpref_np
_posix_spawnattr_setcoalition_np
_posix_spawnattr_setcpumonitor
_posix_spawnattr_setcpumonitor_default
_posix_spawnattr_setexceptionports_np
@@ -648,7 +718,10 @@ _posix_spawnattr_setspecialport_np
_pread
_pread$NOCANCEL
_proc_clear_delayidlesleep
_proc_clear_dirty
_proc_clear_vmpressure
_proc_denap_assertion_begin_with_msg
_proc_denap_assertion_complete
_proc_disable_apptype
_proc_disable_cpumon
_proc_disable_wakemon
@@ -661,8 +734,10 @@ _proc_importance_assertion_begin_with_msg
_proc_importance_assertion_complete
_proc_kmsgbuf
_proc_libversion
_proc_list_uptrs
_proc_listallpids
_proc_listchildpids
_proc_listcoalitions
_proc_listpgrppids
_proc_listpids
_proc_listpidspath
@@ -671,19 +746,23 @@ _proc_pid_rusage
_proc_pidfdinfo
_proc_pidfileportinfo
_proc_pidinfo
_proc_pidoriginatorinfo
_proc_pidpath
_proc_regionfilename
_proc_rlimit_control
_proc_set_cpumon_defaults
_proc_set_cpumon_params
_proc_set_cpumon_params_fatal
_proc_set_delayidlesleep
_proc_set_dirty
_proc_set_owner_vmpressure
_proc_set_wakemon_defaults
_proc_set_wakemon_params
_proc_setpcontrol
_proc_setthread_cpupercent
_proc_suppress
_proc_terminate
_proc_trace_log
_proc_track_dirty
_proc_uuid_policy
_processor_assign
@@ -704,6 +783,11 @@ _processor_set_statistics
_processor_set_tasks
_processor_set_threads
_processor_start
_pselect
_pselect$1050
_pselect$DARWIN_EXTSN
_pselect$DARWIN_EXTSN$NOCANCEL
_pselect$NOCANCEL
_pthread_getugid_np
_pthread_setugid_np
_ptrace
@@ -714,6 +798,7 @@ _quotactl
_read
_read$NOCANCEL
_readlink
_readlinkat
_readv
_readv$NOCANCEL
_reboot
@@ -721,8 +806,11 @@ _recvfrom
_recvfrom$NOCANCEL
_recvmsg
_recvmsg$NOCANCEL
_recvmsg_x
_removexattr
_rename
_rename_ext
_renameat
_revoke
_rmdir
_searchfs
@@ -764,6 +852,7 @@ _semsys
_sendfile
_sendmsg
_sendmsg$NOCANCEL
_sendmsg_x
_sendto
_sendto$NOCANCEL
_set_dp_control_port
@@ -790,6 +879,10 @@ _setsockopt
_setuid
_setwgroups_np
_setxattr
_sfi_get_class_offtime
_sfi_process_get_flags
_sfi_process_set_flags
_sfi_set_class_offtime
_shm_open
_shm_unlink
_shmat
@@ -805,6 +898,15 @@ _sigsuspend$NOCANCEL
_socket
_socket_delegate
_socketpair
_stackshot_capture_with_config
_stackshot_config_create
_stackshot_config_dealloc
_stackshot_config_dealloc_buffer
_stackshot_config_get_stackshot_buffer
_stackshot_config_get_stackshot_size
_stackshot_config_set_flags
_stackshot_config_set_pid
_stackshot_config_set_size_hint
_stat
_stat$INODE64
_stat64
@@ -815,10 +917,13 @@ _swapon
_swtch
_swtch_pri
_symlink
_symlinkat
_sync
_syscall
_syscall_thread_switch
_system_get_sfi_window
_system_override
_system_set_sfi_window
_task_assign
_task_assign_default
_task_create
@@ -826,6 +931,7 @@ _task_for_pid
_task_get_assignment
_task_get_emulation_vector
_task_get_exception_ports
_task_get_mach_voucher
_task_get_special_port
_task_get_state
_task_info
@@ -843,6 +949,7 @@ _task_set_emulation
_task_set_emulation_vector
_task_set_exception_ports
_task_set_info
_task_set_mach_voucher
_task_set_phys_footprint_limit
_task_set_policy
_task_set_port_space
@@ -852,6 +959,7 @@ _task_set_state
_task_suspend
_task_suspend2
_task_swap_exception_ports
_task_swap_mach_voucher
_task_terminate
_task_threads
_task_zone_info
@@ -864,6 +972,8 @@ _thread_create_running
_thread_depress_abort
_thread_get_assignment
_thread_get_exception_ports
_thread_get_mach_voucher
_thread_get_register_pointer_values
_thread_get_special_port
_thread_get_state
_thread_info
@@ -874,11 +984,13 @@ _thread_resume
_thread_sample
_thread_self_trap
_thread_set_exception_ports
_thread_set_mach_voucher
_thread_set_policy
_thread_set_special_port
_thread_set_state
_thread_suspend
_thread_swap_exception_ports
_thread_swap_mach_voucher
_thread_switch
_thread_terminate
_thread_wire
@@ -886,6 +998,7 @@ _truncate
_umask
_undelete
_unlink
_unlinkat
_unmount
_utimes
_vfork
@@ -917,12 +1030,20 @@ _vm_region_recurse_64
_vm_remap
_vm_wire
_vm_write
_voucher_mach_msg_adopt
_voucher_mach_msg_clear
_voucher_mach_msg_revert
_voucher_mach_msg_set
_vprintf_stderr_func
_wait4
_waitevent
_waitid
_waitid$NOCANCEL
_watchevent
_work_interval_create
_work_interval_destroy
_work_interval_notify
_work_interval_notify_simple
_write
_write$NOCANCEL
_writev