[MacPorts] #61933: wxmaxima crashes on macOS Big Sur v11k - conflicting wxWidget libs

MacPorts noreply at macports.org
Tue Dec 29 18:20:00 UTC 2020


#61933: wxmaxima crashes on  macOS Big Sur v11k - conflicting wxWidget libs
------------------------+--------------------------
  Reporter:  chlangley  |      Owner:  MSoegtropIMC
      Type:  defect     |     Status:  assigned
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:
Resolution:             |   Keywords:
      Port:  wxmaxima   |
------------------------+--------------------------

Comment (by ggruener):

 The `is implemented in both...` warning is repeated very many times.

 These warnings are then followed by very many

 {{{
 ../src/common/object.cpp(251): assert "classTable->Get(m_className) ==
 NULL" failed in Register(): Class "wxCommandEvent" already in RTTI table -
 have you used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some
 object file twice)?
 }}}

 And then

 {{{
  ../src/common/stdpbase.cpp(62): assert "traits" failed in Get(): create
 wxApp before calling this
 Segmentation fault
 }}}

 Inspecting
 `/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/lib/`
 shows that three equal files exist per each lib instead of two symbolic
 links pointing to the versioned lib. For example:

 {{{
 -rwxr-xr-x  1 root  wheel   743K Nov 23 09:52
 libwx_osx_cocoau_xrc-3.0.0.4.0.dylib*
 -rwxr-xr-x  1 root  wheel   743K Nov 23 09:52
 libwx_osx_cocoau_xrc-3.0.0.dylib*
 -rwxr-xr-x  1 root  wheel   743K Nov 23 09:52
 libwx_osx_cocoau_xrc-3.0.dylib*
 }}}

 Making symbolic links to the versioned lib fixes the problem. For example:

 {{{
 -rwxr-xr-x   1 root  wheel   743K Nov 23 09:52
 libwx_osx_cocoau_xrc-3.0.0.4.0.dylib*
 lrwxr-xr-x   1 root  wheel    36B Dec 29 15:25
 libwx_osx_cocoau_xrc-3.0.0.dylib@ -> libwx_osx_cocoau_xrc-3.0.0.4.0.dylib
 lrwxr-xr-x   1 root  wheel    32B Dec 29 15:25
 libwx_osx_cocoau_xrc-3.0.dylib@ -> libwx_osx_cocoau_xrc-3.0.0.dylib
 }}}

 I fixed the symlinks for all libs in the directory. After this fix,
 `wxmaxima` starts correctly without warning.

 So I guess the source of the problem lies in the installation of port
 `wxWidgets-3.0`. Perhaps it can be corrected to create symlinks instead of
 copies of the libs.

-- 
Ticket URL: <https://trac.macports.org/ticket/61933#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list