-
-
Notifications
You must be signed in to change notification settings - Fork 15.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
darwin: don't include cf-private in framework dependencies #49768
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
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)