[MacPorts] #69815: libjxl @0.10.2 does not build on PPC Leopard, Mac OS X 10.5.8, because of a lot of problems ld has

MacPorts noreply at macports.org
Thu Apr 25 08:22:37 UTC 2024


#69815: libjxl @0.10.2 does not build on PPC Leopard, Mac OS X 10.5.8, because of a
lot of problems ld has
------------------------+-------------------------
  Reporter:  ballapete  |      Owner:  (none)
      Type:  defect     |     Status:  new
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:  2.9.3
Resolution:             |   Keywords:  leopard ppc
      Port:  libjxl     |
------------------------+-------------------------

Comment (by ballapete):

 `libjxl-0.10.2/lib/jpegli.cmake` starts an `if` here:

 {{{
  53 if(JPEG_FOUND AND BUILD_TESTING)
  54 # TODO(eustas): merge into jxl_tests.cmake?
 }}}

 that might end with (there are more `if` then `endif`):

 {{{
 152 # This hides the default visibility symbols from static libraries
 bundled into
 153 # the shared library. In particular this prevents exposing symbols
 from hwy
 154 # in the shared library.
 155 if(LINKER_SUPPORT_EXCLUDE_LIBS)
 156   set_property(TARGET jpeg APPEND_STRING PROPERTY
 157     LINK_FLAGS " ${LINKER_EXCLUDE_LIBS_FLAG}")
 158 endif()
 159 endif()
 }}}

 This might be too specific for `JPEG` only…

 `libjxl-0.10.2/lib/jxl.cmake` has:

 {{{
 240 # Add a jxl.version file as a version script to tag symbols with the
 241 # appropriate version number. This script is also used to limit what's
 exposed
 242 # in the shared library from the static dependencies bundled here.
 243 foreach(target IN ITEMS jxl jxl_dec)
 244   set_target_properties(${target} PROPERTIES
 245       LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/jxl/jxl.version)
 246   if(APPLE)
 247   set_property(TARGET ${target} APPEND_STRING PROPERTY
 248       LINK_FLAGS
 "-Wl,-exported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/jxl/jxl_osx.syms")
 249   elseif(WIN32)
 250     # Nothing needed here, we use __declspec(dllexport) (jxl_export.h)
 251   else()
 252   set_property(TARGET ${target} APPEND_STRING PROPERTY
 253       LINK_FLAGS " -Wl,--version-
 script=${CMAKE_CURRENT_SOURCE_DIR}/jxl/jxl.version")
 254   endif()  # APPLE
 255   # This hides the default visibility symbols from static libraries
 bundled into
 256   # the shared library. In particular this prevents exposing symbols
 from hwy
 257   # and skcms in the shared library.
 258   if(LINKER_SUPPORT_EXCLUDE_LIBS)
 259     set_property(TARGET ${target} APPEND_STRING PROPERTY
 260         LINK_FLAGS " ${LINKER_EXCLUDE_LIBS_FLAG}")
 261   endif()
 262 endforeach()
 }}}

 It's all a bit indirect and not comprehensible for me, no old stuff, too
 modern. I'll execute the `configure stage` and check again for the
 existence of the `C++ switches`!

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


More information about the macports-tickets mailing list