Mac 32-bit (i386) can not use Objective C symbols (starting with _OBJC_IVAR) in the exp file. Therefore it uses separate symbol file WebKitLegacy.i386.exp. However iphonesimulator i386 doesn't have any restriction and it can use the regular WebKitLegacy.generated.exp file.
Created attachment 302633 [details] Proposed patch
Created attachment 302636 [details] Updated patch
Comment on attachment 302636 [details] Updated patch View in context: https://bugs.webkit.org/attachment.cgi?id=302636&action=review > Source/WebKit/mac/Configurations/WebKitLegacy.xcconfig:39 > EXPORTED_SYMBOLS_FILE_armv7k = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp; > EXPORTED_SYMBOLS_FILE_armv7s = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp; > EXPORTED_SYMBOLS_FILE_arm64 = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp; > -EXPORTED_SYMBOLS_FILE_i386 = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.i386.exp; > +EXPORTED_SYMBOLS_FILE_i386[sdk=*simulator*] = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp; > +EXPORTED_SYMBOLS_FILE_i386[sdk=macosx*] = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.i386.exp; > EXPORTED_SYMBOLS_FILE_x86_64[sdk=iphonesimulator*] = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp; > EXPORTED_SYMBOLS_FILE_x86_64[sdk=macosx*] = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.LP64.exp; I know that you are just trying to fix a small problem, but looking at this, I notice that the list doesn’t cover 64-bit non-iPhone simulators, and that the entire construct is way over-complicated. If I’m reading this correctly, there are three exports files we use: WebKitLegacy.generated.exp, WebKitLegacy.i386.exp, and WebKitLegacy.LP64.exp. Weird naming scheme. It also looks like WebKitLegacy.generated.exp is the default. Here’s how I’d rewrite this entire section of the .xcconfig file (lines 30-39): EXPORTED_SYMBOLS_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp; EXPORTED_SYMBOLS_FILE[sdk=macosx] = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.LP64.exp; EXPORTED_SYMBOLS_FILE[sdk=macosx][arch=i386] = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.i386.exp;
Created attachment 302643 [details] Updated patch Agree with you. It simplifies the code quite a bit and make it more readable as well. I made a small change for WebKitLegacy.LP64.exp file (added [arch=x86_64]).
Comment on attachment 302643 [details] Updated patch View in context: https://bugs.webkit.org/attachment.cgi?id=302643&action=review > Source/WebKit/mac/Configurations/WebKitLegacy.xcconfig:32 > +EXPORTED_SYMBOLS_FILE[sdk=macosx][arch=x86_64] = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.LP64.exp; Neat! r=me once you see that the bots are OK with this.
Created attachment 302656 [details] Updated patch
Comment on attachment 302656 [details] Updated patch Clearing flags on attachment: 302656 Committed r213017: <http://trac.webkit.org/changeset/213017>
All reviewed patches have been landed. Closing bug.