[MacPorts] #57168: nspr does not build on Mojave 10.14

MacPorts noreply at macports.org
Wed Sep 26 09:49:52 UTC 2018


#57168: nspr does not build on Mojave 10.14
---------------------+--------------------
 Reporter:  breiter  |      Owner:  (none)
     Type:  defect   |     Status:  new
 Priority:  Normal   |  Milestone:
Component:  ports    |    Version:
 Keywords:           |       Port:
---------------------+--------------------
 nspr fails to build on macOS Mojave 10.10.

 {{{
 :debug:build system:  cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_nspr/nspr/work/nspr-4.20/nspr"
 && /usr/bin/make -j8 -w all
 :info:build make: Entering directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_nspr/nspr/work/nspr-4.20/nspr'
 :info:build /Applications/Xcode.app/Contents/Developer/usr/bin/make -C
 config export
 :info:build make[1]: Entering directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_nspr/nspr/work/nspr-4.20/nspr/config'
 :info:build /usr/bin/clang -arch i386  now.o -L/opt/local/lib
 -Wl,-headerpad_max_install_names
 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
 -arch x86_64  -o now
 :info:build ld: warning: The i386 architecture is deprecated for macOS
 (remove from the Xcode build setting: ARCHS)
 :info:build ld: warning: ignoring file
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd,
 missing required architecture i386 in file
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd
 :info:build Undefined symbols for architecture i386:
 }}}

 This happens because at build time CC gets defined  in config/autoconf.mk
 as `/usr/bin/clang -arch i386` and the MacOS10.14.sdk does not contain
 i386 symbols. CC should not be defined to use `-arch i386`. Rather,
 `./configure` should have the argument `--enable-64bit` passed and then
 the build system will configure `/usr/bin/clang -arch x86_64` and the
 software builds and works.

 The seems to be an attempt to conditionally set this argument in the
 Portfile using set merger_configure_args which I don't understand. This
 does not work to set the argument on configure.args. It does work if I
 explicitly set the argument in the configure.args expression, however this
 would mean it would not build correctly in a 32-bit Intel system.

 {{{
 --- Portfile.old        2018-09-26 11:44:45.000000000 +0200
 +++ Portfile    2018-09-26 11:45:12.000000000 +0200
 @@ -33,10 +33,8 @@
  configure.args \
      --disable-debug \
      --enable-optimize='${configure.optflags}' \
 -    --libdir=${prefix}/lib/nspr
 -
 -set merger_configure_args(ppc64)  "--enable-64bit"
 -set merger_configure_args(x86_64) "--enable-64bit"
 +    --libdir=${prefix}/lib/nspr \
 +    --enable-64bit"

  variant debug description "build with debugging symbols" {
      configure.args-delete   --disable-debug \
 }}}

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


More information about the macports-tickets mailing list