darwin: don't include cf-private in framework dependencies#49768
darwin: don't include cf-private in framework dependencies#49768LnL7 merged 12 commits intoNixOS:masterfrom
Conversation
Using cf-private can cause problems, it's better to include it explicitly in places where it's actually required.
It's not included implicitly by the frameworks anymore.
Undefined symbols for architecture x86_64:
"_NSDefaultRunLoopMode", referenced from:
_Cocoa_PumpEvents in SDL_cocoaevents.o
"_NSURLIsAliasFileKey", referenced from:
-[SDLWindow performDragOperation:] in SDL_cocoawindow.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in SDL_cocoaclipboard.o
objc-class-ref in SDL_cocoakeyboard.o
objc-class-ref in SDL_cocoawindow.o
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in SDL_cocoamouse.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in SDL_cocoaevents.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in SDL_cocoaevents.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in SDL_cocoawindow.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in SDL_cocoawindow.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in SDL_cocoaevents.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table67 in SDL_cocoawindow.o
ld: symbol(s) not found for architecture x86_64
It's not included implicitly by the frameworks anymore.
Undefined symbols for architecture x86_64:
"_NSDefaultRunLoopMode", referenced from:
_QZ_PumpEvents in SDL_QuartzEvents.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in SDL_QuartzEvents.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in SDL_QuartzEvents.o
ld: symbol(s) not found for architecture x86_64
Using defaults makes it much easier to understand what the values are.
93e5400 to
8abc1cc
Compare
|
Success on x86_64-linux (full log) Attempted: SDL, SDL2 Partial log (click to expand)
|
|
Success on aarch64-linux (full log) Attempted: SDL, SDL2 Partial log (click to expand)
|
|
Success on x86_64-darwin (full log) Attempted: SDL, SDL2 Partial log (click to expand)
|
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in nsfile.o
objc-class-ref in nsimage.o
ld: symbol(s) not found for architecture x86_64
|
Success on aarch64-linux (full log) Attempted: SDL, SDL2, atomicparsley Partial log (click to expand)
|
|
Success on x86_64-linux (full log) Attempted: SDL, SDL2, atomicparsley Partial log (click to expand)
|
|
Success on x86_64-darwin (full log) Attempted: SDL, SDL2, atomicparsley Partial log (click to expand)
|
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in GPGDefaults.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in PinentryController.o
objc-class-ref in GPGDefaults.o
objc-class-ref in KeychainSupport.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in GPGDefaults.o
"_OBJC_CLASS_$_NSSet", referenced from:
objc-class-ref in GPGDefaults.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in GPGDefaults.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in os_macosx.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in contacts.o
objc-class-ref in FormatHelper.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in FormatHelper.o
ld: symbol(s) not found for architecture x86_64
|
Success on aarch64-linux (full log) Attempted: SDL, SDL2, atomicparsley, vim The following builds were skipped because they don't evaluate on aarch64-linux: pinentry_mac Partial log (click to expand)
|
|
Success on x86_64-darwin (full log) Attempted: SDL, SDL2, atomicparsley, pinentry_mac, vim Partial log (click to expand)
|
|
Success on x86_64-linux (full log) Attempted: SDL, SDL2, atomicparsley, vim The following builds were skipped because they don't evaluate on x86_64-linux: pinentry_mac Partial log (click to expand)
|
|
Success on aarch64-linux (full log) Attempted: SDL, SDL2, atomicparsley, vim The following builds were skipped because they don't evaluate on aarch64-linux: contacts, pinentry_mac Partial log (click to expand)
|
|
Success on x86_64-darwin (full log) Attempted: SDL, SDL2, atomicparsley, contacts, pinentry_mac, vim Partial log (click to expand)
|
|
Success on x86_64-linux (full log) Attempted: SDL, SDL2, atomicparsley, vim The following builds were skipped because they don't evaluate on x86_64-linux: contacts, pinentry_mac Partial log (click to expand)
|
Undefined symbols for architecture x86_64:
"_CFNotificationCenterAddObserver", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_CFNotificationCenterGetLocalCenter", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_NSDefaultRunLoopMode", referenced from:
_ns_send_appdefined in nsterm.o
-[EmacsApp run] in nsterm.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in nsimage.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in macfont.o
"_OBJC_CLASS_$_NSLocale", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSMutableSet", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table8 in nsterm.o
GCC_except_table1 in nsselect.o
ld: symbol(s) not found for architecture x86_64
7615163 to
f495707
Compare
|
Success on x86_64-linux (full log) Attempted: SDL, SDL2, atomicparsley, emacs, vim The following builds were skipped because they don't evaluate on x86_64-linux: contacts, pinentry_mac Partial log (click to expand)
|
|
Success on x86_64-darwin (full log) Attempted: SDL, SDL2, atomicparsley, contacts, emacs, pinentry_mac, vim Partial log (click to expand)
|
|
Success on aarch64-linux (full log) Attempted: SDL, SDL2, atomicparsley, emacs, vim The following builds were skipped because they don't evaluate on aarch64-linux: contacts, pinentry_mac Partial log (click to expand)
|
Undefined symbols for architecture x86_64:
"_CFNotificationCenterAddObserver", referenced from:
_main in main.o
"_CFNotificationCenterGetDistributedCenter", referenced from:
_main in main.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in main.o
objc-class-ref in x-screen.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table25 in main.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_NSDefaultRunLoopMode", referenced from:
_X11ApplicationMain in libXquartz.a(X11Application.o)
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
objc-class-ref in libXquartz.a(X11Controller.o)
objc-class-ref in libxpbproxy.a(x-selection.o)
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in libxpbproxy.a(x-selection.o)
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in libxpbproxy.a(x-selection.o)
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
objc-class-ref in libXquartz.a(X11Controller.o)
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table29 in libxpbproxy.a(x-selection.o)
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_NSDefaultRunLoopMode", referenced from:
_X11ApplicationMain in libXquartz.a(X11Application.o)
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
objc-class-ref in libXquartz.a(X11Controller.o)
objc-class-ref in libxpbproxy.a(x-selection.o)
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in libxpbproxy.a(x-selection.o)
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in libxpbproxy.a(x-selection.o)
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
objc-class-ref in libXquartz.a(X11Controller.o)
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in libXquartz.a(X11Application.o)
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table29 in libxpbproxy.a(x-selection.o)
ld: symbol(s) not found for architecture x86_64
|
Success on x86_64-linux (full log) Attempted: SDL, SDL2, atomicparsley, emacs, vim, xorg.xorgserver The following builds were skipped because they don't evaluate on x86_64-linux: contacts, pinentry_mac, quartz-wm, xquartz Partial log (click to expand)
|
|
Success on x86_64-darwin (full log) Attempted: SDL, SDL2, atomicparsley, contacts, emacs, pinentry_mac, quartz-wm, vim, xorg.xorgserver, xquartz Partial log (click to expand)
|
|
I think this is mostly ready now, I'll keep an eye on hydra. |
|
Success on aarch64-linux (full log) Attempted: SDL, SDL2, atomicparsley, emacs, vim, xorg.xorgserver The following builds were skipped because they don't evaluate on aarch64-linux: contacts, pinentry_mac, quartz-wm, xquartz Partial log (click to expand)
|
|
Looks like a lot of work, let me know if I can help with my limited nix knowledge |
|
Most of the regressions should be fixed. I'll try to look into adding the missing parts to https://github.com/apple/swift-corelibs-foundation, then we can get rid of those cf-private workarounds. |
Motivation for this change
Using cf-private can cause problems, it's better to include it
explicitly in places where it's actually required.
Fixes #49781
NOTE: this will break some things, a bit more testing is required.
Things done
sandboxinnix.confon non-NixOS)nix-shell -p nox --run "nox-review wip"./result/bin/)nix path-info -Sbefore and after)