Skip to content

Commit a1f62bd

Browse files
committed
feat: Fix xcconfig build issue
1 parent 1f4f120 commit a1f62bd

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ This project is a buildable and debuggable version of latest Objective-C runtime
1515

1616

1717
## **Requirement**
18-
[![Xcode 11.3](https://img.shields.io/badge/Xcode-11.3-blue?colorA=3caefc&colorB=24292e)](https://developer.apple.com/xcode/)
18+
[![Xcode 12](https://img.shields.io/badge/Xcode-12-blue?colorA=3caefc&colorB=24292e)](https://developer.apple.com/xcode/)
1919
[![macOS Catalina](https://img.shields.io/badge/macOS-Catalina-blue?colorA=blueviolet&colorB=24292e)](https://developer.apple.com/macos/)
2020

2121

@@ -92,10 +92,8 @@ In latest dyld-733.6 (dyld-421.2 later), apple use this [ruby script](https://op
9292
| `GCC_PREPROCESSOR_DEFINITIONS` | LIBC_NO_LIBCRASHREPORTERCLIENT, also append `$(inherited)` to target objc |
9393
| `ORDER_FILE` | $(SRCROOT)/libobjc.order |
9494
| `OTHER_LDFLAGS[sdk=macosx*]` | -lc++abi -Xlinker -sectalign -Xlinker __DATA -Xlinker __objc_data -Xlinker 0x1000 -Xlinker -interposable_list -Xlinker interposable.txt, remove build setting in target objc |
95-
| `OTHER_LDFLAGS[sdk=iphoneos*][arch=*]` | -lc++abi -Wl,-segalign,0x4000 -Xlinker -sectalign -Xlinker __DATA -Xlinker __objc_data -Xlinker 0x1000 -Xlinker -interposable_list -Xlinker interposable.txt -isystem -iframework, remove build setting in target objc |
95+
| `OTHER_LDFLAGS[sdk=iphoneos*][arch=*]` | -lc++abi -Wl,-segalign,0x4000 -Xlinker -sectalign -Xlinker __DATA -Xlinker __objc_data -Xlinker 0x1000 -Xlinker -interposable_list -Xlinker interposable.txt, remove build setting in target objc |
9696
| `OTHER_LDFLAGS[sdk=iphonesimulator*][arch=*]` | -lc++abi -Xlinker -interposable_list -Xlinker interposable.txt, remove build setting in target objc |
97-
| `OTHER_TAPI_FLAGS` | redirect $(DSTROOT)/usr/include/objc/ObjectiveC.apinotes => $(SRCROOT)/runtime/Module/ObjectiveC.apinotes |
98-
| `OTHER_TAPI_FLAGS` | redirect $(DSTROOT)/usr/include/objc/module.modulemap => $(SRCROOT)/runtime/Module/module.modulemap |
9997

10098
### Run Script
10199
Evidently public macosx sdk is our only choice, we need to update value of parameter `-sdk` from `macosx.internal` to `macosx` in run script of objc target.

objc.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ ORDER_FILE = $(SRCROOT)/libobjc.order
1717
// resolve ld: library not found for -lCrashReporterClient clang: error: linker command failed with exit code 1 (use -v to see invocation)
1818
// OTHER_LDFLAGS[sdk=macosx*] = -lCrashReporterClient -lc++abi -Xlinker -sectalign -Xlinker __DATA -Xlinker __objc_data -Xlinker 0x1000 -Xlinker -interposable_list -Xlinker interposable.txt
1919
OTHER_LDFLAGS[sdk=macosx*] = -lc++abi -Xlinker -sectalign -Xlinker __DATA -Xlinker __objc_data -Xlinker 0x1000 -Xlinker -interposable_list -Xlinker interposable.txt
20-
OTHER_LDFLAGS[sdk=iphoneos*][arch=*] = -lc++abi -Wl,-segalign,0x4000 -Xlinker -sectalign -Xlinker __DATA -Xlinker __objc_data -Xlinker 0x1000 -Xlinker -interposable_list -Xlinker interposable.txt -isystem -iframework
20+
OTHER_LDFLAGS[sdk=iphoneos*][arch=*] = -lc++abi -Wl,-segalign,0x4000 -Xlinker -sectalign -Xlinker __DATA -Xlinker __objc_data -Xlinker 0x1000 -Xlinker -interposable_list -Xlinker interposable.txt
2121
OTHER_LDFLAGS[sdk=iphonesimulator*][arch=*] = -lc++abi -Xlinker -interposable_list -Xlinker interposable.txt

objc4/objc.xcodeproj/project.pbxproj

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -881,12 +881,12 @@
881881
GCC_OPTIMIZATION_LEVEL = 0;
882882
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
883883
HEADER_SEARCH_PATHS = (
884-
"$(inherited)",
885884
"$(DSTROOT)/usr/include/**",
886885
"$(DSTROOT)/usr/local/include/**",
887886
"$(CONFIGURATION_BUILD_DIR)/usr/include/**",
888887
"$(CONFIGURATION_BUILD_DIR)/usr/local/include/**",
889888
/System/Library/Frameworks/System.framework/PrivateHeaders,
889+
"$(inherited)",
890890
);
891891
INSTALL_PATH = /usr/lib;
892892
IS_ZIPPERED = YES;
@@ -897,8 +897,10 @@
897897
"-fno-objc-convert-messages-to-runtime-calls",
898898
"$(OTHER_CFLAGS)",
899899
);
900-
OTHER_TAPI_FLAGS = "-exclude-public-header $(SRCROOT)/runtime/Module/ObjectiveC.apinotes -exclude-public-header $(SRCROOT)/runtime/Module/module.modulemap -Xparser -Wno-deprecated-declarations -Xparser -Wno-unavailable-declarations -Xparser -D_OBJC_PRIVATE_H_=1 -DOBJC_DECLARE_SYMBOLS=1";
900+
OTHER_TAPI_FLAGS = "-exclude-public-header $(DSTROOT)/usr/include/objc/ObjectiveC.apinotes -exclude-public-header $(DSTROOT)/usr/include/objc/module.modulemap -Xparser -Wno-deprecated-declarations -Xparser -Wno-unavailable-declarations -Xparser -D_OBJC_PRIVATE_H_=1 -DOBJC_DECLARE_SYMBOLS=1";
901+
PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/objc;
901902
PRODUCT_NAME = objc.A;
903+
PUBLIC_HEADERS_FOLDER_PATH = /usr/include/objc;
902904
SUPPORTS_TEXT_BASED_API = YES;
903905
TAPI_VERIFY_MODE = Pedantic;
904906
UNEXPORTED_SYMBOLS_FILE = unexported_symbols;
@@ -917,12 +919,12 @@
917919
GCC_CW_ASM_SYNTAX = NO;
918920
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
919921
HEADER_SEARCH_PATHS = (
920-
"$(inherited)",
921922
"$(DSTROOT)/usr/include/**",
922923
"$(DSTROOT)/usr/local/include/**",
923924
"$(CONFIGURATION_BUILD_DIR)/usr/include/**",
924925
"$(CONFIGURATION_BUILD_DIR)/usr/local/include/**",
925926
/System/Library/Frameworks/System.framework/PrivateHeaders,
927+
"$(inherited)",
926928
);
927929
INSTALL_PATH = /usr/lib;
928930
IS_ZIPPERED = YES;
@@ -932,8 +934,10 @@
932934
"-fno-objc-convert-messages-to-runtime-calls",
933935
"$(OTHER_CFLAGS)",
934936
);
935-
OTHER_TAPI_FLAGS = "-exclude-public-header $(SRCROOT)/runtime/Module/ObjectiveC.apinotes -exclude-public-header $(SRCROOT)/runtime/Module/module.modulemap -Xparser -Wno-deprecated-declarations -Xparser -Wno-unavailable-declarations -Xparser -D_OBJC_PRIVATE_H_=1 -DOBJC_DECLARE_SYMBOLS=1";
937+
OTHER_TAPI_FLAGS = "-exclude-public-header $(DSTROOT)/usr/include/objc/ObjectiveC.apinotes -exclude-public-header $(DSTROOT)/usr/include/objc/module.modulemap -Xparser -Wno-deprecated-declarations -Xparser -Wno-unavailable-declarations -Xparser -D_OBJC_PRIVATE_H_=1 -DOBJC_DECLARE_SYMBOLS=1";
938+
PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/objc;
936939
PRODUCT_NAME = objc.A;
940+
PUBLIC_HEADERS_FOLDER_PATH = /usr/include/objc;
937941
SUPPORTS_TEXT_BASED_API = YES;
938942
TAPI_VERIFY_MODE = Pedantic;
939943
UNEXPORTED_SYMBOLS_FILE = unexported_symbols;

0 commit comments

Comments
 (0)