From 699e58136bc7ec8b5d3dc02ce6229390f69f6d51 Mon Sep 17 00:00:00 2001 From: Apple Date: Wed, 15 Apr 2009 23:32:51 +0000 Subject: [PATCH] Libsystem-123.tar.gz --- GNUmakefile | 43 +- Info.plist | 2 +- Makefile | 91 ++- Platforms/AppleTV/Makefile.inc | 3 - Platforms/AppleTV/System.order | 1 + Platforms/MacOSX/Makefile.inc | 9 +- System.order => Platforms/MacOSX/System.order | 0 Platforms/iPhone/Makefile.inc | 3 - Platforms/iPhone/System.order | 732 ++++++++++++++++++ libsys/Makefile | 60 +- libsys/build-libc.pl | 19 +- 11 files changed, 856 insertions(+), 107 deletions(-) create mode 120000 Platforms/AppleTV/System.order rename System.order => Platforms/MacOSX/System.order (100%) create mode 100644 Platforms/iPhone/System.order diff --git a/GNUmakefile b/GNUmakefile index 9cc72e4..816a18f 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -8,6 +8,11 @@ Project = Libsystem VersionLetter = B +# Remove any NEXT_ROOT argument +override MAKEOVERRIDES := $(filter-out NEXT_ROOT=%,$(MAKEOVERRIDES)) +override MAKEFILEPATH := $(subst $(NEXT_ROOT),,$(MAKEFILEPATH)) +unexport NEXT_ROOT + include $(MAKEFILEPATH)/CoreOS/ReleaseControl/Common.make ifeq ($(Version),0) @@ -22,6 +27,10 @@ no_target: ifndef RC_TARGET_CONFIG export RC_TARGET_CONFIG = MacOSX endif + +# Default platform order file. The platform Makefile.inc can override. +PLATFORM_ORDER_FILE = $(SRCROOT)/Platforms/$(RC_TARGET_CONFIG)/System.order + include Platforms/$(RC_TARGET_CONFIG)/Makefile.inc ##--------------------------------------------------------------------- @@ -54,46 +63,46 @@ build:: fake libSystem @set -x && \ cd $(DSTROOT)/usr/lib && \ for i in $(BSD_LIBS); do \ - ln -sf libSystem.dylib lib$$i.dylib || exit 1; \ + $(LN) -sf libSystem.dylib lib$$i.dylib || exit 1; \ done - find $(DSTROOT) -type l ! -perm 755 | xargs chmod -hv 755 - install -d $(DSTROOT)$(FPATH)/Versions/$(VersionLetter)/Resources + $(FIND) $(DSTROOT) -type l ! -perm 755 | $(XARGS) chmod -hv 755 + $(INSTALL_DIRECTORY) $(DSTROOT)$(FPATH)/Versions/$(VersionLetter)/Resources @set -x && \ cd $(DSTROOT)$(FPATH) && \ - ln -sf Versions/Current/PrivateHeaders && \ - ln -sf Versions/Current/Resources && \ + $(LN) -sf Versions/Current/PrivateHeaders && \ + $(LN) -sf Versions/Current/Resources && \ for S in $(SUFFIX); do \ - ln -sf Versions/Current/System$$S || exit 1; \ + $(LN) -sf Versions/Current/System$$S || exit 1; \ done && \ cd Versions && \ - ln -sf $(VersionLetter) Current && \ + $(LN) -sf $(VersionLetter) Current && \ cd $(VersionLetter) && \ for S in $(SUFFIX); do \ - ln -sf ../../../../../../usr/lib/libSystem.$(VersionLetter)$$S.dylib System$$S || exit 1; \ + $(LN) -sf ../../../../../../usr/lib/libSystem.$(VersionLetter)$$S.dylib System$$S || exit 1; \ done && \ - cp -f $(SRCROOT)/Info.plist Resources + $(CP) $(SRCROOT)/Info.plist Resources # 4993197: force dependency generation for libsyscall.a fake: @set -x && \ cd $(OBJROOT) && \ - echo 'main() { __getpid(); return 0; }' > fake.c && \ - cc -c $(RC_CFLAGS) fake.c && \ - ld -r -o fake $(foreach ARCH,$(RC_ARCHS),-arch $(ARCH)) fake.o -lsyscall -L$(LIBSYS) + $(ECHO) 'main() { __getpid(); return 0; }' > fake.c && \ + $(CC) -c $(RC_CFLAGS) fake.c && \ + $(LD) -r -o fake $(foreach ARCH,$(RC_ARCHS),-arch $(ARCH)) fake.o -lsyscall -L$(LIBSYS) libc: - mkdir -p '$(OBJROOT)/libc' - bsdmake -C libsys install \ + $(MKDIR) '$(OBJROOT)/libc' + $(BSDMAKE) -C libsys install \ DSTROOT='$(DSTROOT)' \ OBJROOT='$(OBJROOT)/libc' \ SRCROOT='$(SRCROOT)' \ SYMROOT='$(SYMROOT)' libSystem: libc - mkdir -p '$(OBJROOT)/libSystem' - bsdmake install \ + $(MKDIR) '$(OBJROOT)/libSystem' + $(BSDMAKE) install \ FEATURE_LIBMATHCOMMON=$(FEATURE_LIBMATHCOMMON) \ - FEATURE_ORDER_FILE=$(FEATURE_ORDER_FILE) \ + PLATFORM_ORDER_FILE=$(PLATFORM_ORDER_FILE) \ FORMS='$(FORMS)' \ Version=$(Version) \ VersionLetter=$(VersionLetter) \ diff --git a/Info.plist b/Info.plist index 9cf8a44..f5e6dd7 100644 --- a/Info.plist +++ b/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 9.3 + 10.0 CFBundleSignature ???? CarbonLazyValues diff --git a/Makefile b/Makefile index cad8f79..dcfb8f8 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,14 @@ NAME0 = libSystem NAME = $(NAME0).$(VersionLetter) +.include +.include + # for now, use the default compiler -GCC := $(CC) -GCCLIBS = -lgcc -lgcc_eh -NARCHS != echo $(RC_ARCHS) | wc -w +MYCC := $(CC) +MYCCLIBS = -lgcc +RTLIBS = -lcompiler_rt +NARCHS != $(ECHO) $(RC_ARCHS) | $(WC) -w .ifdef ALTUSRLOCALLIBSYSTEM LIBSYS = $(ALTUSRLOCALLIBSYSTEM) .else @@ -13,22 +17,16 @@ LIBSYS = $(SDKROOT)/usr/local/lib/system SLFS_F_PH = $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders .ifdef SDKROOT SDKROOTCFLAGS = -isysroot '$(SDKROOT)' -SDKROOTLDFLAGS = -syslibroot '$(SDKROOT)' -.endif -.if !empty(FEATURE_ORDER_FILE) -ORDERFILES = -Wl,-order_file,$(SRCROOT)/SystemInit.order -Wl,-order_file,$(SRCROOT)/System.order +SDKROOTLDFLAGS = -Wl,-syslibroot,'$(SDKROOT)' .endif +ORDERFILES = -Wl,-order_file,$(SRCROOT)/SystemInit.order -Wl,-order_file,$(PLATFORM_ORDER_FILE) LIBS = -lc -lcommonCrypto -ldyldapis\ -linfo -ldns_sd -lm -lmacho\ -lnotify -lkeymgr -llaunch \ - -lcopyfile -lsandbox -lremovefile -CONDITIONALLIBS = unc quarantine -.for L in $(CONDITIONALLIBS) -# the following should be replaced with tconf when 5784037 is complete -.if exists($(LIBSYS)/lib$(L).a) -LIBS += -l$(L) -.endif -.endfor # CONDITIONALLIBS + -lcopyfile -lremovefile +CONDITIONALLIBS = unc sandbox quarantine closure cache dispatch unwind \ + dnsinfo +LIBSCONDITIONAL != for L in $(CONDITIONALLIBS); do tconf -q --test usr_local_lib_system_Archive:lib$$L && $(ECHO) -l$$L; done # These variables are to guarantee that the left-hand side of an expression is # always a variable @@ -62,33 +60,42 @@ SUFFIX$(F) = _$(F) .if !empty(FEATURE_LIBMATHCOMMON) LIBMATHCOMMON$(F) = -L/usr/lib/system -sub_library libmathCommon$(SUFFIX$(F)) -lmathCommon$(SUFFIX$(F)) .endif -LIPOARGS$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).dylib\"), qw($(RC_ARCHS))))' +LIPOARGS$(F) != $(PERL) -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).dylib\"), qw($(RC_ARCHS))))' .for A in $(RC_ARCHS) build-$(F): build-$(A)-$(F) .endfor # RC_ARCHS build-$(F): .if $(NARCHS) == 1 - cp -p "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).dylib" "$(SYMROOT)" + $(CP) "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).dylib" "$(SYMROOT)" .else - lipo -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib" + $(LIPO) -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib" .endif - dsymutil "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib" + $(DSYMUTIL) "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib" .for A in $(RC_ARCHS) +LINKDYLIB-$(F)-$(A) = $(MYCC) -dynamiclib -arch $(A) -pipe $(SDKROOTLDFLAGS) \ + -o '$(OBJROOT)/$(A)/$(F)/$(NAME)$(SUFFIX$(F)).dylib' \ + -compatibility_version 1 -current_version $(Version) \ + -install_name /usr/lib/$(NAME)$(SUFFIX$(F)).dylib \ + -nodefaultlibs -all_load -multi_module -Wl,-search_paths_first \ + -segcreate __DATA __commpage $(OBJROOT)/$(A)/CommPageSymbols.o \ + $(ORDERFILES) $(SKDROOTLDFLAGS) $(OBJS-$(A)) \ + -L$(DSTROOT)/usr/local/lib/system -L$(LIBSYS) $(LIBMATHCOMMON$(F)) \ + $(LIBS:C/$/$(SUFFIX$(F))/) $(LIBSCONDITIONAL:C/$/$(SUFFIX$(F))/) + build-$(A)-$(F): $(OBJROOT)/$(A)/$(F) $(OBJROOT)/$(A)/CommPageSymbols.o $(OBJS-$(A)) - $(GCC) -dynamiclib -arch $(A) -pipe \ - -o '$(OBJROOT)/$(A)/$(F)/$(NAME)$(SUFFIX$(F)).dylib' \ - -compatibility_version 1 -current_version $(Version) \ - -install_name /usr/lib/$(NAME)$(SUFFIX$(F)).dylib \ - -nodefaultlibs -all_load -multi_module -Wl,-search_paths_first \ - -segcreate __DATA __commpage $(OBJROOT)/$(A)/CommPageSymbols.o \ - $(ORDERFILES) $(SKDROOTLDFLAGS) $(OBJS-$(A)) \ - -L$(DSTROOT)/usr/local/lib/system -L$(LIBSYS) $(LIBMATHCOMMON$(F)) \ - $(LIBS:C/$/$(SUFFIX$(F))/) $(GCCLIBS) + @$(ECHO) $(LINKDYLIB-$(F)-$(A)) $(RTLIBS) && \ + if $(LINKDYLIB-$(F)-$(A)) $(RTLIBS); then \ + $(ECHO) -n; \ + else \ + $(ECHO) '*** Failed. Retrying with -lgcc ***' && \ + $(ECHO) $(LINKDYLIB-$(F)-$(A)) $(MYCCLIBS) && \ + $(LINKDYLIB-$(F)-$(A)) $(MYCCLIBS); \ + fi $(OBJROOT)/$(A)/$(F): - mkdir -p '$(.TARGET)' + $(MKDIR) '$(.TARGET)' .endfor # RC_ARCHS .endfor # FORMS @@ -102,19 +109,19 @@ SEG1ADDR_arm = 0xffff8000 CFLAGS = -g -Os -Wall -Werror -I'$(SLFS_F_PH)' -fno-common $(SDKROOTCFLAGS) $(OBJROOT)/System_vers.c: - vers_string -c System | \ - sed -e 's/SGS_VERS/SYSTEM_VERS_STRING/' -e 's/VERS_NUM/SYSTEM_VERS_NUM/' > $(.TARGET) + $(VERS_STRING) -c System | \ + $(SED) -e 's/SGS_VERS/SYSTEM_VERS_STRING/' -e 's/VERS_NUM/SYSTEM_VERS_NUM/' > $(.TARGET) .for A in $(RC_ARCHS) $(OBJROOT)/$(A)/CommPageSymbols.o: $(SRCROOT)/CommPageSymbols.st - $(GCC) -c -o '$(.TARGET:R)_intermediate.$(.TARGET:E)' -arch $(A) -x assembler-with-cpp $(CFLAGS) '$(.ALLSRC)' - ld -arch $(A) -r -seg1addr $(SEG1ADDR_$(A:C/^armv.*$/arm/)) '$(.TARGET:R)_intermediate.$(.TARGET:E)' -o '$(.TARGET)' + $(MYCC) -c -o '$(.TARGET:R)_intermediate.$(.TARGET:E)' -arch $(A) -x assembler-with-cpp $(CFLAGS) '$(.ALLSRC)' + $(LD) -arch $(A) -r -seg1addr $(SEG1ADDR_$(A:C/^armv.*$/arm/)) '$(.TARGET:R)_intermediate.$(.TARGET:E)' -o '$(.TARGET)' $(OBJROOT)/$(A)/SystemMath.o: $(SRCROOT)/SystemMath.s - $(GCC) -c -o '$(.TARGET)' -arch $(A) $(CFLAGS) '$(.ALLSRC)' + $(MYCC) -c -o '$(.TARGET)' -arch $(A) $(CFLAGS) '$(.ALLSRC)' $(OBJROOT)/$(A)/System_vers.o: $(OBJROOT)/System_vers.c - $(GCC) -c -o '$(.TARGET)' -arch $(A) $(CFLAGS) '$(.ALLSRC)' + $(MYCC) -c -o '$(.TARGET)' -arch $(A) $(CFLAGS) '$(.ALLSRC)' .endfor # RC_ARCHS @@ -122,12 +129,12 @@ installhdrs: .for F in $(FORMS) BI-install-$(F): build-$(F) - mkdir -p "$(DSTROOT)/usr/lib" - @echo "===== Installing $(NAME)$(SUFFIX$(F)).dylib =====" - install "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib" "$(DSTROOT)/usr/lib" - strip -S "$(DSTROOT)/usr/lib/$(NAME)$(SUFFIX$(F)).dylib" - chmod a-w "$(DSTROOT)/usr/lib/$(NAME)$(SUFFIX$(F)).dylib" - ln -sf "$(NAME)$(SUFFIX$(F)).dylib" "$(DSTROOT)/usr/lib/$(NAME0)$(SUFFIX$(F)).dylib" + $(MKDIR) "$(DSTROOT)/usr/lib" + @$(ECHO) "===== Installing $(NAME)$(SUFFIX$(F)).dylib =====" + $(INSTALL) "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib" "$(DSTROOT)/usr/lib" + $(STRIP) -S "$(DSTROOT)/usr/lib/$(NAME)$(SUFFIX$(F)).dylib" + $(CHMOD) a-w "$(DSTROOT)/usr/lib/$(NAME)$(SUFFIX$(F)).dylib" + $(LN) -sf "$(NAME)$(SUFFIX$(F)).dylib" "$(DSTROOT)/usr/lib/$(NAME0)$(SUFFIX$(F)).dylib" .endfor # FORMS install-all: build @@ -137,5 +144,5 @@ install-all: BI-install-$(F) clean: .for A in $(RC_ARCHS) - rm -rf $(OBJROOT)/$(A) + $(RMDIR) $(OBJROOT)/$(A) .endfor # RC_ARCHS diff --git a/Platforms/AppleTV/Makefile.inc b/Platforms/AppleTV/Makefile.inc index fca1805..2ab871c 100644 --- a/Platforms/AppleTV/Makefile.inc +++ b/Platforms/AppleTV/Makefile.inc @@ -8,8 +8,5 @@ FEATURE_DEBUG_DYLIB = 1 # Link libmathCommon FEATURE_LIBMATHCOMMON = 1 -# Use order file -FEATURE_ORDER_FILE = 1 - # Build _profile.dylib FEATURE_PROFILE_DYLIB = 1 diff --git a/Platforms/AppleTV/System.order b/Platforms/AppleTV/System.order new file mode 120000 index 0000000..dc5064b --- /dev/null +++ b/Platforms/AppleTV/System.order @@ -0,0 +1 @@ +./MacOSX/System.order \ No newline at end of file diff --git a/Platforms/MacOSX/Makefile.inc b/Platforms/MacOSX/Makefile.inc index ba71fee..ef7e6be 100644 --- a/Platforms/MacOSX/Makefile.inc +++ b/Platforms/MacOSX/Makefile.inc @@ -8,8 +8,11 @@ FEATURE_DEBUG_DYLIB = 1 # Link libmathCommon FEATURE_LIBMATHCOMMON = 1 -# Use order file -FEATURE_ORDER_FILE = 1 - # Build _profile.dylib FEATURE_PROFILE_DYLIB = 1 + +# Use different order file if it exists +ALTORDERFILE = /AppleInternal/OrderFiles/libSystem.order +ifeq ($(shell [ ! -f $(ALTORDERFILE) ] || echo YES),YES) +PLATFORM_ORDER_FILE = $(ALTORDERFILE) +endif diff --git a/System.order b/Platforms/MacOSX/System.order similarity index 100% rename from System.order rename to Platforms/MacOSX/System.order diff --git a/Platforms/iPhone/Makefile.inc b/Platforms/iPhone/Makefile.inc index c8f102c..a841f8e 100644 --- a/Platforms/iPhone/Makefile.inc +++ b/Platforms/iPhone/Makefile.inc @@ -8,8 +8,5 @@ # Link libmathCommon #FEATURE_LIBMATHCOMMON = 1 -# Use order file -#FEATURE_ORDER_FILE = 1 - # Build _profile.dylib #FEATURE_PROFILE_DYLIB = 1 diff --git a/Platforms/iPhone/System.order b/Platforms/iPhone/System.order new file mode 100644 index 0000000..ae1d81b --- /dev/null +++ b/Platforms/iPhone/System.order @@ -0,0 +1,732 @@ +cerror +_cthread_set_errno_self +_vasprintf +_malloc +_malloc_zone_malloc +_szone_malloc +_memset +__vfprintf +_localeconv_l +__ultoa +__sprint +__sfvwrite +_memmove +_stat +_free +_malloc_zone_free +_szone_free +_usleep +_nanosleep +__pthread_testcancel +__semwait_signal +__dyld_register_func_for_add_image +__ZN10LockHelperC1Ev +__Z21dyldGlobalLockAcquirev +_pthread_mutex_lock +__ZN10LockHelperD1Ev +__Z21dyldGlobalLockReleasev +_pthread_mutex_unlock +__dyld_register_func_for_remove_image +_mig_get_reply_port +_mach_msg +_mach_msg_trap +__cxa_atexit +_atexit_register +_pthread_key_create +_dyld_register_image_state_change_handler +__dyld_func_lookup +_tiny_malloc_from_free_list +_strlen +_strcmp +_getsectdatafromheader +_getsectbynamefromheader +_strncmp +_dladdr +_dlopen +__ZL29getPerThreadBufferFor_dlerrorj +_pthread_setspecific +_memcmp +_malloc_default_zone +__pthread_mutex_init +_dlsym +_get_tiny_previous_free_msize +_tiny_free_list_add_ptr +_get_tiny_free_size +_calloc +_malloc_zone_calloc +_szone_calloc +_bcopy +__aeabi_uidiv +_small_malloc_from_free_list +_small_get_region_from_depot +_small_malloc_from_region_no_lock +_allocate_pages +_mmap +__mmap +_munmap +_hash_region_insert_no_lock +_dlclose +_malloc_zone_from_ptr +_szone_size +_small_free_list_add_ptr +_small_free_list_remove_ptr +_madvise_free_range +_posix_madvise +_large_and_huge_malloc +_large_entry_insert_no_lock +__umodsi3 +_malloc_zone_realloc +_szone_realloc +_mag_lock_zine_for_region_trailer +_tiny_free_list_remove_ptr +_strdup +_pthread_atfork +_OSSpinLockLock +_spin_unlock +_getenv +__NSGetEnviron +__findenv +__NSGetArgv +__NSGetArgc +_mach_timebase_info +_pthread_mutexattr_init +_pthread_mutexattr_settype +_pthread_mutex_init +_pthread_mutexattr_destroy +_geteuid +_getuid +_issetugid +_NSVersionOfRunTimeLibrary +__dyld_image_count +__dyld_get_image_header +__ZL11names_matchPcPKc +_strrchr +_NSVersionOfLinkTimeLibrary +__NSGetMachExecuteHeader +_pthread_cond_broadcast +__pthread_cond_init +_pthread_attr_init +_pthread_attr_setscope +_pthread_attr_setdetachstate +_mach_port_allocate +_mach_port_insert_right +_mach_port_set_attributes +_mach_port_insert_member +_pthread_equal +_pthread_is_threaded_np +_pthread_once +_notify_register_mach_port +__notify_lib_init +_bootstrap_look_up +_bootstrap_look_up2 +_vproc_mig_look_up2 +_mig_strncpy +_mach_port_mod_refs +_strlcpy +__notify_server_register_mach_port +_token_table_add +__nc_table_new +__nc_table_insert_n +_hash_nkey +_notify_retain_mach_port +_mach_port_request_notification +_mach_port_deallocate +_malloc_good_size +_szone_good_size +_opendir +__opendir2 +_open$NOCANCEL +_fcntl$NOCANCEL +__fcntl_nocancel +_getpagesize +_sysctl +__sysctl +_fstatfs +_telldir +_readdir +__readdir_unlocked +__getdirentries64 +_closedir +__reclaim_telldir +_close$NOCANCEL +__dyld_get_image_vmaddr_slide +_open +_fstat +_read +_close +_NXGetLocalArchInfo +_mach_host_self +_host_self_trap +_host_info +_NXGetArchInfoFromCpuType +_NXFindBestFatArch +_lseek +_getpwuid +_si_libinfo_init +_si_module_with_name +_si_module_static_search +_search_alloc +_si_module_static_cache +_si_module_static_file +_reallocf +_realloc +_asprintf +_si_module_with_path +_dwarf2_unwind_dyld_add_image_hook +__keymgr_get_and_lock_processwide_ptr_2 +_get_or_create_key_element +__keymgr_set_and_unlock_processwide_ptr +_unlock_node +_si_mod_dlsym +_fopen +__sflags +__sfp +__sinit +_si_user_byuid +_search_user_byuid +_search_item_bynumber +_search_get_module +_cache_user_byuid +_cache_fetch_item +_file_user_byuid +__fsi_get_user +_fileno +__fsi_get_line +_fgets +__srefill +__smakebuf +__swhatbuf +__sread +__sread +_read$NOCANCEL +_memchr +__fsi_tokenize +__fsi_append_string +_atoi +_strtol_l +_LI_ils_create +_padsize +_fclose +__sclose +_search_cat_cache +_si_cache_add_item +_si_item_retain +_LI_set_thread_item +_LI_get_thread_info +__LI_data_init +_si_item_release +_getegid +_bsearch +__tolower +__toupper +_strstr +_strchr +_strtol +_strcpy +_setlocale +_strcat +_strncpy +_lstat +_access +_malloc_zone_register +_malloc_zone_register_while_locked +_vm_protect +_gettimeofday +__commpage_gettimeofday +_mach_absolute_time +_floorl +_notify_register_check +__notify_server_register_check +_shm_open +_mktime +__st_tzset_basic +_tzsetwall_basic +_tzload +_detzcode +_settzname +__st_set_timezone +__st_time1 +_time2 +_time2sub +_normalize_overflow +__aeabi_idiv +_increment_overflow +__st_localsub +_timesub +_tmcomp +_pthread_key_init_np +_dyld_image_path_containing_address +_bootstrap_check_in +_vproc_mig_check_in2 +_getprogname +__NSGetProgname +_task_get_special_port +_vm_deallocate +_host_get_io_master +_socket +_connect +_setsockopt +_send +_sendto +_select +_select$DARWIN_EXTSN +_recv +_recvfrom +_szone_size_try_large_huge +_large_entry_for_pointer_no_lock +_large_free_no_lock +_deallocate_pages +_pthread_mach_thread_np +__pthread_lookup_thread +__pthread_find_thread +_task_threads +_notify_get_state +_token_table_find +__nc_table_find_n +__notify_server_get_state +_mach_port_type +_scalable_zone_info +_pthread_setschedparam +_pthread_setschedparam_internal +_thread_policy +_qsort +_roundf +_ceilf +_mk_timer_create +_mk_timer_arm +_pthread_cond_init +_mach_vm_allocate +_snprintf +_CC_MD5_Init +_CC_MD5_Update +_CC_MD5_Final +_md5_block_host_order +_fmaxf +_fminf +_floorf +_ceil +_pthread_mutex_trylock +_vm_allocate +_mig_put_reply_port +_getpid +_mach_port_extract_member +_mk_timer_cancel +_snprintf_l +__get_current_monetary_locale +__get_current_numeric_locale +__dtoa +__d2b_D2A +__Balloc_D2A +__lo0bits_D2A +__rv_alloc_D2A +__i2b_D2A +__pow5mult_D2A +__multadd_D2A +__hi0bits_D2A +__lshift_D2A +__Bfree_D2A +__quorem_D2A +__cmp_D2A +__freedtoa +_mk_timer_destroy +_notify_cancel +__notify_server_cancel +_token_table_delete +_mach_port_destroy +__nc_table_delete_n +_mkstemp +__gettemp +_arc4random +_arc4_check_init +_arc4_check_stir +_rintl +_fmodl +_write +_fsync +_chmod +__chmod +_getgid +_chown +_rename +_exit +__cxa_finalize +_pthread_key_delete +__cleanup +__fwalk +__sflush +__exit +_time +_fegetenv +_fesetenv +_srandom +_random +_strcasecmp +_strcasecmp_l +_strcasestr +_strcasestr_l +_strncasecmp_l +_setjmp +_sigprocmask +__setjmp +_fcntl +__fcntl +_pthread_mutex_destroy +_sprintf +_OSMemoryBarrier +_pthread_create +__pthread_allocate_stack +_vm_map +__pthread_create +_set_malloc_singlethreaded +__pthread_setup +_thread_create_running +__pthread_body +__pthread_set_self +__pthread_set_self +_mach_reply_port +_pthread_getschedparam +_swtch_pri +_sched_get_priority_min +_sched_get_priority_max +_pthread_exit +__pthread_exit +__disable_threadsignal +__pthread_setcancelstate_exit +__pthread_tsd_cleanup +_mach_port_get_set_status +_pthread_attr_destroy +__pthread_become_available +_mach_msg_send +_mach_thread_self +_thread_self_trap +_thread_terminate +_mach_vm_protect +_mach_vm_region +_strtod_l +_atan2l +_tan +__kernel_tan +_cos +_rem_pio2 +_fabs +__kernel_sin +_sinl +__kernel_cos +_lround +_asinl +_atanl +_getpwnam +_si_user_byname +_search_user_byname +_search_item_byname +_cache_user_byname +_si_item_match +_si_item_is_valid +_file_is_valid +_file_user_byname +_mach_vm_purgable_control +_notify_check +_ioctl +__ioctl +_mach_msg_destroy +_mach_msg_destroy_port +_thread_get_state +_NSStartSearchPathEnumeration +_NSGetNextSearchPathEnumeration +_readdir_r +_inet_aton +_strtoul_l +_inet_pton +_asl_open +_asl_syslog_faciliy_num_to_name +__asl_notify_open +_notify_register_plain +__notify_server_register_plain +_getppid +_asl_set_filter +_getaddrinfo_async_start +_getaddrinfo_async_call +_si_async_call +_si_async_launchpad +_si_list_call +_si_addrinfo +_inet_pton4 +_si_wants_addrinfo +_search_wants_addrinfo +_si_gai +_check_interfaces +_getifaddrs +_freeifaddrs +_si_host_byname +_search_host_byname +_cache_host_byname +_file_host_byname +__fsi_get_host +_flockfile +_funlockfile +_if_nametoindex +_si_list_retain +_DNSServiceQueryRecord +_ConnectToServer +_connect$NOCANCEL +_create_hdr +_put_uint32 +_put_string +_put_uint16 +_deliver_request +_ConvertHeaderBytes +_write_all +_send$NOCANCEL +_sendto$NOCANCEL +_read_all +_recv$NOCANCEL +_recvfrom$NOCANCEL +_kqueue +_DNSServiceRefSockFD +_kevent +_DNSServiceProcessResult +_get_uint32 +_select$NOCANCEL +_select$DARWIN_EXTSN$NOCANCEL +_handle_query_response +_get_string +_get_uint16 +_get_rdata +_DNSServiceRefDeallocate +_FreeDNSServiceOp +_si_async_workunit_release +__memmove_chk +__dyld_get_image_name +_powl +_sysctlbyname +_lroundf +_logl +_exp +argumentInRange +finishedProduct +reducedArgument +noCarry +_fmodf +_readlink +_unlink +_statfs +_pthread_attr_getschedparam +_pthread_attr_setschedparam +_thread_create +_thread_set_state +_thread_resume +_pread +_pthread_cond_wait +_mach_task_self +_task_self_trap +_vm_purgable_control +__pthread_cond_wait +_new_sem_from_pool +_semaphore_create +_semaphore_wait_signal +_semaphore_wait_signal_trap +_semaphore_wait +_semaphore_wait_trap +_restore_sem_to_pool +_pthread_cond_signal +_pthread_cond_signal_thread_np +_semaphore_signal_thread +_semaphore_signal_thread_trap +__pthread_cond_remove +_pthread_setcanceltype +_pthread_testcancel +__pthread_reap_thread +_getaddrinfo_async_handle_reply +_si_async_handle_reply +_si_libinfo_addrinfo_callback +_semaphore_signal +_semaphore_signal_trap +_gai_strerror +_strtoul +_strtod +_notify_post +__notify_server_post +_tzset +_tanf +tanpireducef +tanfpi_r +tanf_normalize +tanf_encode +tanf_done +__gettimeofday +_pwrite +_pthread_cond_timedwait_relative_np +_semaphore_timedwait_signal +_semaphore_timedwait_signal_trap +_uuid_generate_random +_get_random_bytes +_uuid_unpack +_uuid_pack +_flock +__LI_data_free +_si_list_release +_srandomdev +__notify_server_check +_semaphore_signal_all +_semaphore_signal_all_trap +_pthread_cond_destroy +_thread_stack_pcs +__thread_stack_pcs +_pthread_get_stackaddr_np +_pthread_get_stacksize_np +_asl_close +_umask +_signal +_signal__ +_sigaction +__sigaction +_mach_port_get_attributes +_thread_info +_thread_policy_set +__signal_nobind +__sigaction_nobind +_CC_SHA1_Init +_CC_SHA1_Update +_cc_sha1_connect +_sha1_hash_in_hardware +__CC_SHA1_Update +_CC_SHA1_Final +_sha1_block_host_order +_modf +_asl_new +_asl_set +_asl_set_query +_asl_send +_asl_get +__asl_msg_index +_gethostname +_asl_msg_to_string +__asl_append_string +__asl_connect +__asl_server_socket +_write$NOCANCEL +_asl_free +_fpathconf +_vproc_swap_integer +_vproc_mig_swap_integer +_sha1_block_data_order +_listxattr +__nrv_alloc_D2A +_atexit +__fpclassify +_host_statistics +_malloc_default_purgeable_zone +_malloc_create_zone +_create_scalable_zone +_protect +_sysconf +_malloc_set_zone_name +_tiny_get_region_from_depot +_tiny_malloc_from_region_no_lock +_malloc_make_purgeable +_find_registered_purgeable_zone +_huge_entry_for_pointer_no_lock +_malloc_make_nonpurgeable +__s2b_D2A +__mult_D2A +__diff_D2A +__ratio_D2A +__b2d_D2A +__ulp_D2A +_log2f +_difftime +_mach_vm_deallocate +_sinf +_cosf +pireducef +sinf_modest +sinf_encode +sinf_done +_strlcat +_OSAtomicTestAndSetBarrier +_expf +expf_done +_vm_copy +_logf +_lrintf +expf_special +_vsnprintf +_valloc +_malloc_zone_valloc +_szone_valloc +_bcmp +_strncasecmp +_bzero +_fflush +_notify_set_state +__notify_server_set_state +_strncat +_fprintf_l +_vfprintf_l +__swsetup +__fflush +__swrite +__swrite +_getopt_long_only +_getopt_internal +cospireducef +sinfpi_r +_roundl +_pthread_cond_timedwait +_srand +_regcomp +_doemit +_p_ere +_wgetnext +_mbrtowc_l +__none_mbrtowc +_ordinary +_wcrtomb_l +__none_wcrtomb +_p_bracket +_allocset +_p_b_term +_p_b_symbol +_CHadd +_doinsert +_dofwd +_altoffset +_nonnewline +_rand +_do_rand +_socketpair +_getsockopt +_pthread_attr_setstacksize +_log10f +_nextafterf +_mktemp +__mktemp +_fwrite +_trunc +_localtime_r +_OSMemoryNotificationCurrentLevel +_nearbyintf +_remove +_mig_deallocate +_si_addrinfo_v4 +_si_list_add +_si_list_to_addrinfo +_si_item_to_addrinfo +_freeaddrinfo +_asinf +_strtoimax_l +__umoddi3 +__udivdi3 +_strtof_l +__strtodg +__rvOK_D2A +__any_on_D2A +__rshift_D2A +__copybits_D2A +__increment_D2A +_mach_port_get_refs +_log2l +exactPowerOfTwo +_getsockname +_getpeername +_atof diff --git a/libsys/Makefile b/libsys/Makefile index 409ef46..6012907 100644 --- a/libsys/Makefile +++ b/libsys/Makefile @@ -1,14 +1,16 @@ NAME = libc -NARCHS != echo $(RC_ARCHS) | wc -w +.include +.include + +NARCHS != $(ECHO) $(RC_ARCHS) | $(WC) -w .ifdef ALTUSRLOCALLIBSYSTEM LIBSYS = $(ALTUSRLOCALLIBSYSTEM) .else LIBSYS = $(SDKROOT)/usr/local/lib/system .endif -NJOBS != perl -e '$$n = `/usr/sbin/sysctl -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)' -BSDMAKE = bsdmake -f Makefile -BSDMAKEJ = $(BSDMAKE) -j $(NJOBS) +NJOBS != $(PERL) -e '$$n = `$(SYSCTL) -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)' +BSDMAKEJ = $(BSDMAKE) -f Makefile -j $(NJOBS) # These variables are to guarantee that the left-hand side of an expression is # always a variable @@ -37,48 +39,48 @@ SUFFIX$(F) = .else SUFFIX$(F) = _$(F) .endif -LIPOARGS$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))' +LIPOARGS$(F) != $(PERL) -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))' .for A in $(RC_ARCHS) build-$(F): build-$(A)-$(F) .endfor # RC_ARCHS build-$(F): .if $(NARCHS) == 1 - cp -p "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).a" "$(SYMROOT)" + $(CP) "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).a" "$(SYMROOT)" .else - lipo -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" + $(LIPO) -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" .endif - ranlib "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" + $(RANLIB) "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" .for A in $(RC_ARCHS) build-$(A)-$(F): $(OBJROOT)/$(A)/libsystem.o - mkdir -p '$(OBJROOT)/$(A)/$(F)' + $(MKDIR) '$(OBJROOT)/$(A)/$(F)' @set -x && \ cd '$(OBJROOT)/$(A)/$(F)' && \ - if lipo -info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | grep -q '^Non-'; then \ - cp -p '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' .; \ + if $(LIPO) -info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | $(GREP) -q '^Non-'; then \ + $(CP) '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' .; \ else \ - arch=`lipo -detailed_info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | sed -E -n 's/.*architecture:? //p' | sort | grep '^$(A)' | head -n 1` && \ - lipo -thin $$arch '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' -output '$(NAME)-partial$(SUFFIX$(F)).a'; \ + arch=`$(LIPO) -detailed_info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | $(SED) -E -n 's/.*architecture:? //p' | $(SORT) | $(GREP) '^$(A)' | $(HEAD) -n 1` && \ + $(LIPO) -thin $$arch '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' -output '$(NAME)-partial$(SUFFIX$(F)).a'; \ fi && \ - ar x '$(NAME)-partial$(SUFFIX$(F)).a' && \ - if lipo -info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | grep -q '^Non-'; then \ - cp -p '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' .; \ + $(AR) x '$(NAME)-partial$(SUFFIX$(F)).a' && \ + if $(LIPO) -info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | $(GREP) -q '^Non-'; then \ + $(CP) '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' .; \ else \ - arch=`lipo -detailed_info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | sed -E -n 's/.*architecture:? //p' | sort | grep '^$(A)' | head -n 1` && \ - lipo -thin $$arch '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' -output 'libsyscall$(SUFFIX$(F)).a'; \ + arch=`$(LIPO) -detailed_info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | $(SED) -E -n 's/.*architecture:? //p' | $(SORT) | $(GREP) '^$(A)' | $(HEAD) -n 1` && \ + $(LIPO) -thin $$arch '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' -output 'libsyscall$(SUFFIX$(F)).a'; \ fi && \ - ar x 'libsyscall$(SUFFIX$(F)).a' && \ - '$(SRCROOT)/libsys/build-libc.pl' '$(LIBSYS)' '$(OBJROOT)/$(A)/$(F)' && \ - ln -s ../libsystem.o && \ + $(AR) x 'libsyscall$(SUFFIX$(F)).a' && \ + NM=$(NM) '$(SRCROOT)/libsys/build-libc.pl' '$(LIBSYS)' '$(OBJROOT)/$(A)/$(F)' && \ + $(LN) -s ../libsystem.o && \ $(BSDMAKEJ) .endfor # RC_ARCHS .endfor # FORMS .for A in $(RC_ARCHS) $(OBJROOT)/$(A)/libsystem.o: $(OBJROOT)/libsystem.c - mkdir -p '$(OBJROOT)/$(A)' - cc -c -o '$(.TARGET)' -arch $(A) '$(.ALLSRC)' + $(MKDIR) '$(OBJROOT)/$(A)' + $(CC) -c -o '$(.TARGET)' -arch $(A) '$(.ALLSRC)' .endfor # RC_ARCHS $(OBJROOT)/libsystem.c: @@ -88,11 +90,11 @@ installhdrs: .for F in $(FORMS) BI-install-$(F): build-$(F) - mkdir -p "$(DSTROOT)/usr/local/lib/system" - @echo "===== Installing $(NAME)$(SUFFIX$(F)).a =====" - install "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" "$(DSTROOT)/usr/local/lib/system" - ranlib "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a" - chmod 0444 "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a" + $(MKDIR) "$(DSTROOT)/usr/local/lib/system" + @$(ECHO) "===== Installing $(NAME)$(SUFFIX$(F)).a =====" + $(INSTALL) "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" "$(DSTROOT)/usr/local/lib/system" + $(RANLIB) "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a" + $(CHMOD) 0444 "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a" .endfor # FORMS install-all: build @@ -102,5 +104,5 @@ install-all: BI-install-$(F) clean: .for A in $(RC_ARCHS) - rm -rf $(OBJROOT)/$(A) + $(RMDIR) $(OBJROOT)/$(A) .endfor # RC_ARCHS diff --git a/libsys/build-libc.pl b/libsys/build-libc.pl index ff11e1d..f74a030 100755 --- a/libsys/build-libc.pl +++ b/libsys/build-libc.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# Copyright (c) 2006-2007 Apple Inc. All rights reserved. +# Copyright (c) 2006-2007, 2009 Apple Inc. All rights reserved. # # @APPLE_LICENSE_HEADER_START@ # @@ -64,11 +64,11 @@ my $SyscallBase = 'libc.syscall'; # list. ########################################################################## sub processLibc { - my($arch, $dir, $sufname) = @_; + my($arch, $dir) = @_; local $_; - my $file = File::Spec->join($dir, "libc-partial$sufname.a"); - my $f = IO::File->new("nm -g -arch $arch $file |"); - die "$MyName: nm -g -arch $arch $file: $!\n" unless defined($f); + my $file = File::Spec->join($dir, 'libc-partial.a'); + my $f = IO::File->new("$ENV{NM} -g -arch $arch $file |"); + die "$MyName: $ENV{NM} -g -arch $arch $file: $!\n" unless defined($f); while(<$f>) { next unless s/^.* T //; chomp; @@ -147,7 +147,7 @@ die "$MyName: $form: Unknown form\n" unless defined($suf); my($suffix, $sufname) = @$suf; readStub($usr_local_lib_system); readLibcSyscalls($arch, $usr_local_lib_system); -processLibc($arch, $usr_local_lib_system, $sufname); +processLibc($arch, $usr_local_lib_system); ########################################################################## # Invert the Stub hash, so the key will correspond to the file to process. @@ -166,6 +166,7 @@ while(my($k, $v) = each(%Stub)) { my $path = File::Spec->join($OutDir, 'Makefile'); my $f = IO::File->new($path, 'w'); die "$MyName: $path: $!\n" unless defined($f); +print $f ".include \n\n"; ########################################################################## # List all the object files @@ -191,12 +192,12 @@ LIB = libc$sufname.a all: \$(LIB) \$(LIB): \$(OBJS) - ar cq \$(.TARGET) `lorder \$(OBJS) | tsort -q` + \$(AR) cq \$(.TARGET) `\$(LORDER) \$(OBJS) | tsort -q` .SUFFIXES: .$suffix .$suffix.o: - mv \$(.IMPSRC) \$(.TARGET) + \$(MV) \$(.IMPSRC) \$(.TARGET) XXX @@ -207,7 +208,7 @@ foreach my $k (sort(keys(%Inv))) { my $n = $k; $n =~ s/^_//; print $f "$n.o: $n.$suffix\n"; - print $f "\tld -arch $arch -r -keep_private_externs"; + print $f "\t\$(LD) -arch $arch -r -keep_private_externs"; foreach my $i (@{$Inv{$k}}) { $_ = $i; s/\$/\$\$/g; -- 2.47.2