[MacPorts] #68292: gcc12/libgcc12 12.3.0_1 +stdlib_flag missing libgccjit.0.dylib

MacPorts noreply at macports.org
Fri Sep 29 15:46:44 UTC 2023


#68292: gcc12/libgcc12 12.3.0_1 +stdlib_flag missing libgccjit.0.dylib
--------------------+----------------------------
 Reporter:  vallon  |      Owner:  (none)
     Type:  defect  |     Status:  new
 Priority:  Normal  |  Milestone:
Component:  ports   |    Version:  2.8.1
 Keywords:          |       Port:  gcc12 libgcc12
--------------------+----------------------------
 Did a port upgrade yesterday.  Today I found emacs doesn't launch:

 {{{
 $ emacs
 dyld[13763]: Library not loaded: @rpath/libgccjit.0.dylib
   Referenced from: <830528A4-22BE-31B3-9504-6F4423092F0E>
 /opt/local/bin/emacs-29.1
   Reason: tried: '/opt/local/lib/gcc12/libgccjit.0.dylib' (no such file),
 '/System/Volumes/Preboot/Cryptexes/OS/opt/local/lib/gcc12/libgccjit.0
 }}}

 /opt/local/lib/gcc12/libgccjit.0.dylib is a broken symlink to
 /opt/local/lib/libgcc/libgccjit.0.dylib:

 {{{
 $ ls -l /opt/local/lib/gcc12/libgccjit.0.dylib
 lrwxr-xr-x 1 root admin 39 Sep 29 01:10
 /opt/local/lib/gcc12/libgccjit.0.dylib ->
 /opt/local/lib/libgcc/libgccjit.0.dylib

 $ ls -l /opt/local/lib/libgcc
 total 1284
 -rwxr-xr-x 1 root admin   71872 Sep 28 13:53 libatomic.1.dylib
 lrwxr-xr-x 1 root admin      17 Sep 28 13:53 libatomic.dylib ->
 libatomic.1.dylib
 # no gccjit
 # all files recently created
 }}}

 The /libgcc/ files are owned by libgcc12:

 {{{
 $ port contents libgcc12 | grep /opt/local/lib/libgcc/libatomic
   /opt/local/lib/libgcc/libatomic.1.dylib
   /opt/local/lib/libgcc/libatomic.dylib
 }}}

 My logs show libgcc12 was upgraded recently:

 {{{
 $ grep libgcc12 2023092[89]/dump-port-state
 20230928/dump-port-state:  libgcc12 @12.3.0_0+stdlib_flag (active)
 requested_variants='' platform='darwin 22' archs='arm64'
 date='2023-05-15T10:54:51-0400'
 20230929/dump-port-state:  libgcc12 @12.3.0_0+stdlib_flag
 requested_variants='' platform='darwin 22' archs='arm64'
 date='2023-05-15T10:54:51-0400'
 20230929/dump-port-state:  libgcc12 @12.3.0_1+stdlib_flag (active)
 requested_variants='' platform='darwin 22' archs='arm64'
 date='2023-09-28T13:53:39-0400'
 }}}

 Try to reactivate old libgcc12:

 {{{
 $ sudo port activate libgcc12 @12.3.0_0+stdlib_flag
 --->  Computing dependencies for libgcc12
 --->  Deactivating libgcc12 @12.3.0_1+stdlib_flag
 --->  Cleaning libgcc12
 --->  Activating libgcc12 @12.3.0_0+stdlib_flag
 --->  Cleaning libgcc12

 $ ls -l /opt/local/lib/libgcc | grep gccjit
 # not there
 }}}

 Maybe the symlink:

 {{{
 $ port contents gcc12 | grep /opt/local/lib/gcc12/libgccjit.0.dylib
   /opt/local/lib/gcc12/libgccjit.0.dylib

 $ grep ' gcc12 ' 2023092[89]/dump-port-state
 20230928/dump-port-state:  gcc12 @12.3.0_0+stdlib_flag (active)
 requested_variants='' platform='darwin 22' archs='arm64'
 date='2023-05-15T13:04:27-0400'
 20230929/dump-port-state:  gcc12 @12.3.0_0+stdlib_flag
 requested_variants='' platform='darwin 22' archs='arm64'
 date='2023-05-15T13:04:27-0400'
 20230929/dump-port-state:  gcc12 @12.3.0_1+stdlib_flag (active)
 requested_variants='' platform='darwin 22' archs='arm64'
 date='2023-09-29T01:10:50-0400'

 $ sudo port activate gcc12 @12.3.0_0+stdlib_flag
 --->  Computing dependencies for gcc12
 --->  Deactivating gcc12 @12.3.0_1+stdlib_flag
 --->  Cleaning gcc12
 --->  Activating gcc12 @12.3.0_0+stdlib_flag
 --->  Cleaning gcc12

 $ ls -l /opt/local/lib/gcc12/libgccjit.0.dylib
 -rwxr-xr-x 1 root admin 37112256 May 15 13:04
 /opt/local/lib/gcc12/libgccjit.0.dylib
 }}}

 Then:

 {{{
 $ emacs
 # happy
 }}}

 It appears:

 - 12.3.0_0 had a file $p/lib/gcc12/libgccjit.0.dylib
 - 12.3.0_1 turned that into a symlink to $p/lib/libgcc/libgccjit.0.dylib,
 but libgcc12 doesn't create that file.

-- 
Ticket URL: <https://trac.macports.org/ticket/68292>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list