View Bug Details

IDProjectCategoryView StatusLast Update
0001877DCP-o-maticPackagingpublic2021-01-14 01:57
Reportercarl Assigned Tocarl  
PriorityimmediateSeveritymajorReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Version2.16.0 
Summary0001877: Build for ARM macs
Description

[]

TagsNo tags attached.
Branch
Estimated weeks required
Estimated work requiredMedium

Activities

carl

2020-11-22 18:49

administrator   ~0004016

Last edited: 2020-11-23 00:11

View 6 revisions

Need Xcode 12.2; possibly -target arm64-apple-macos11 ?
ARM mac will be running Big Sur.
lipo -archs <executable> should mention arm64.
Presumably must be 11.0SDK, so we'll need to build for 10.6 (x86 32/64), 10.9 (x86 64) and then 11.0 (x86_64/arm64) separately.
SDK is in Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/MacOSX11.0.sdk

carl

2020-11-22 18:52

administrator   ~0004017

Add LSArchitecturePriority key to your app’s Info.plist file and list the arm64 architecture first to stop it running the x86 version on Rosetta.

carl

2020-11-22 23:33

administrator   ~0004020

Last edited: 2020-11-23 00:13

View 2 revisions

osx-environment needs to be cross-compiled, which could be entertaining: 11.0 branch.

carl

2020-12-19 02:00

administrator   ~0004071

See catalina-arm-build VM.

carl

2020-12-28 18:37

administrator   ~0004083

Last edited: 2020-12-28 18:38

View 2 revisions

carl

2021-01-01 22:38

administrator   ~0004084

Build against 10.9 in new environment hangs on startup in High Sierra (10.13) with

* thread 0000001, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff779b6a16 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame 0000001: 0x00007fff77b7f589 libsystem_pthread.dylib`_pthread_cond_wait + 732
    frame 0000002: 0x000000010b404b86 libglib-2.0.dylib`g_cond_wait + 38
    frame 0000003: 0x000000010b3db2fb libglib-2.0.dylib`g_once_init_enter + 91
    frame 0000004: 0x000000010bad9855 libpango-1.0.dylib`pango_context_set_font_map + 37
    frame 0000005: 0x000000010badc6c2 libpango-1.0.dylib`pango_font_map_create_context + 34
    frame 0000006: 0x00000001057d101f libdcpomatic2.dylib`render_line(std::__1::list<StringText, std::__1::allocator<StringText> >, std::__1::list<boost::shared_ptr<dcpomatic::Font>, std::__1::allocator<boost::shared_ptr<dcpomatic::Font> > >, dcp::Size, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>, int) + 2703
    frame 0000007: 0x00000001057d007b libdcpomatic2.dylib`render_text(std::__1::list<StringText, std::__1::allocator<StringText> >, std::__1::list<boost::shared_ptr<dcpomatic::Font>, std::__1::allocator<boost::shared_ptr<dcpomatic::Font> > >, dcp::Size, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>, int) + 939
    frame 0000008: 0x000000010582bdb4 libdcpomatic2.dylib`dcpomatic_setup() + 1956
    frame 0000009: 0x0000000104cccff0 dcpomatic2`App::OnInit() + 800
    frame 0000010: 0x000000010a3e78fb libwx_osx_cocoau_core-3.0.0.4.0.dylib`wxApp::CallOnInit() + 155
    frame 0000011: 0x000000010af47215 libwx_baseu-3.0.0.4.0.dylib`wxEntry(int&, wchar_t**) + 117
    frame 0000012: 0x0000000104ccb3e4 dcpomatic2`main + 20
    frame 0000013: 0x00007fff77866015 libdyld.dylib`start + 1
    frame 0000014: 0x00007fff77866015 libdyld.dylib`start + 1
  thread 0000002
    frame #0: 0x00007fff779b728a libsystem_kernel.dylib`__workq_kernreturn + 10
    frame 0000001: 0x00007fff77b7e009 libsystem_pthread.dylib`_pthread_wqthread + 1035
    frame 0000002: 0x00007fff77b7dbe9 libsystem_pthread.dylib`start_wqthread + 13
  thread 0000003, name = 'com.apple.NSEventThread'
    frame #0: 0x00007fff779ad1fa libsystem_kernel.dylib`mach_msg_trap + 10
    frame 0000001: 0x00007fff779ac714 libsystem_kernel.dylib`mach_msg + 60
    frame 0000002: 0x00007fff4f882f65 CoreFoundation`__CFRunLoopServiceMachPort + 341
    frame 0000003: 0x00007fff4f8822b7 CoreFoundation`__CFRunLoopRun + 1783
    frame 0000004: 0x00007fff4f881927 CoreFoundation`CFRunLoopRunSpecific + 487
    frame 0000005: 0x00007fff4cf4bfc4 AppKit`_NSEventThread + 184
    frame 0000006: 0x00007fff77b7e661 libsystem_pthread.dylib`_pthread_body + 340
    frame 0000007: 0x00007fff77b7e50d libsystem_pthread.dylib`_pthread_start + 377
    frame 0000008: 0x00007fff77b7dbf9 libsystem_pthread.dylib`thread_start + 13

carl

2021-01-01 22:52

administrator   ~0004085

Also hangs on catalina, can't yet attach lldb but guessing it's the same thing.

carl

2021-01-01 23:04

administrator   ~0004086

Last edited: 2021-01-01 23:05

View 2 revisions

Looks like g_once_init_enter will g_cond_wait while value_location is on the g_once_init_list.

carl

2021-01-01 23:14

administrator   ~0004087

On the console we have:

(process:980): GLib-GObject-WARNING **: 00:12:26.010: cannot register existing type 'PangoContext'

(process:980): GLib-CRITICAL **: 00:12:26.010: g_once_init_leave: assertion 'result != 0' failed

(process:980): GLib-GObject-CRITICAL **: 00:12:26.010: g_object_new_with_properties: assertion 'G_TYPE_IS_OBJECT (object_type)' failed

carl

2021-01-01 23:21

administrator   ~0004088

That first warning is happening here:

* thread 0000001, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x00000001066ab930 libglib-2.0.dylib`g_log
    frame 0000001: 0x000000010660dcaa libgobject-2.0.dylib`check_type_name_I + 250
    frame 0000002: 0x000000010660e82a libgobject-2.0.dylib`g_type_register_static + 74
    frame 0000003: 0x000000010660e796 libgobject-2.0.dylib`g_type_register_static_simple + 102
    frame 0000004: 0x0000000106dab661 libpango-1.0.dylib`pango_context_get_type_once + 65
    frame 0000005: 0x0000000106dab695 libpango-1.0.dylib`pango_context_new + 37
    frame 0000006: 0x0000000106dae6b4 libpango-1.0.dylib`pango_font_map_create_context + 20
    frame 0000007: 0x0000000100bb001f libdcpomatic2.dylib`render_line(std::__1::list<StringText, std::__1::allocator<StringText> >, std::__1::list<boost::shared_ptr<dcpomatic::Font>, std::__1::allocator<boost::shared_ptr<dcpomatic::Font> > >, dcp::Size, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>, int) + 2703
    frame 0000008: 0x0000000100baf07b libdcpomatic2.dylib`render_text(std::__1::list<StringText, std::__1::allocator<StringText> >, std::__1::list<boost::shared_ptr<dcpomatic::Font>, std::__1::allocator<boost::shared_ptr<dcpomatic::Font> > >, dcp::Size, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>, int) + 939
    frame 0000009: 0x0000000100c0adb4 libdcpomatic2.dylib`dcpomatic_setup() + 1956
    frame 0000010: 0x0000000100015ff0 dcpomatic2`App::OnInit() + 800
    frame 0000011: 0x000000010570e8fb libwx_osx_cocoau_core-3.0.0.4.0.dylib`wxApp::CallOnInit() + 155
    frame 0000012: 0x0000000106255215 libwx_baseu-3.0.0.4.0.dylib`wxEntry(int&, wchar_t**) + 117
    frame 0000013: 0x00000001000143e4 dcpomatic2`main + 20
    frame 0000014: 0x00007fff77866015 libdyld.dylib`start + 1

carl

2021-01-01 23:23

administrator   ~0004089

First call to pango_context_get_type_once is made as a result of DoM's Pango::init() call.

carl

2021-01-01 23:40

administrator   ~0004090

Last edited: 2021-01-02 19:02

View 3 revisions

Maybe because I'm using quite an old pangomm; rebuilding environment with 2.42.2; seems to work.

carl

2021-01-01 23:41

administrator   ~0004091

It's weird that I had a build not a million miles away from this running on Big Sur the other day.

carl

2021-01-07 22:52

administrator   ~0004092

Builds and runs on x86; needs testing.

carl

2021-01-14 01:56

administrator   ~0004096

Apparently it works... https://dcpomatic.com/forum/viewtopic.php?f=2&p=7154#p7154

Bug History

Date Modified Username Field Change
2020-11-22 15:44 carl New Bug
2020-11-22 18:49 carl Note Added: 0004016
2020-11-22 18:50 carl Note Edited: 0004016 View Revisions
2020-11-22 18:50 carl Note Edited: 0004016 View Revisions
2020-11-22 18:52 carl Note Added: 0004017
2020-11-22 18:59 carl Note Edited: 0004016 View Revisions
2020-11-22 22:55 carl Priority normal => immediate
2020-11-22 22:55 carl Estimated work required => Undecided
2020-11-22 22:59 carl Note Edited: 0004016 View Revisions
2020-11-22 23:33 carl Note Added: 0004020
2020-11-23 00:11 carl Note Edited: 0004016 View Revisions
2020-11-23 00:13 carl Note Edited: 0004020 View Revisions
2020-11-30 23:01 carl Estimated work required Undecided => Major
2020-12-08 20:53 carl Priority immediate => urgent
2020-12-19 02:00 carl Note Added: 0004071
2020-12-19 02:01 carl Assigned To => carl
2020-12-19 02:01 carl Status new => acknowledged
2020-12-28 18:37 carl Note Added: 0004083
2020-12-28 18:38 carl Note Edited: 0004083 View Revisions
2021-01-01 22:38 carl Note Added: 0004084
2021-01-01 22:52 carl Note Added: 0004085
2021-01-01 23:04 carl Note Added: 0004086
2021-01-01 23:05 carl Note Edited: 0004086 View Revisions
2021-01-01 23:14 carl Note Added: 0004087
2021-01-01 23:21 carl Note Added: 0004088
2021-01-01 23:23 carl Note Added: 0004089
2021-01-01 23:40 carl Note Added: 0004090
2021-01-01 23:41 carl Note Added: 0004091
2021-01-02 00:04 carl Note Edited: 0004090 View Revisions
2021-01-02 19:02 carl Note Edited: 0004090 View Revisions
2021-01-07 22:52 carl Status acknowledged => resolved
2021-01-07 22:52 carl Resolution open => fixed
2021-01-07 22:52 carl Note Added: 0004092
2021-01-07 22:52 carl Status resolved => confirmed
2021-01-07 22:52 carl Priority urgent => immediate
2021-01-07 23:55 carl Estimated work required Major => Medium
2021-01-14 01:56 carl Note Added: 0004096
2021-01-14 01:57 carl Status confirmed => resolved