[MacPorts] #65794: gcc12 -universal on x86_64 installs dylibs built for arm64

MacPorts noreply at macports.org
Wed Sep 7 16:06:40 UTC 2022


#65794: gcc12 -universal on x86_64 installs dylibs built for arm64
--------------------------+--------------------
 Reporter:  ShadSterling  |      Owner:  (none)
     Type:  defect        |     Status:  new
 Priority:  Normal        |  Milestone:
Component:  ports         |    Version:  2.7.2
 Keywords:                |       Port:  gcc12
--------------------------+--------------------
 It looks like a bunch of libraries in `/opt/local/lib/gcc12/` are for
 arm64 only when they should at least include x86_64

 I discovered this by attempting to update R +builtin_lapack, which failed
 to build with
 {{{
 :info:build make[4]: Entering directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_R/R/work/R-4.2.1/src/library/grDevices'
 :info:build byte-compiling package 'grDevices'
 :info:build Warning in solve.default(rgb) :
 :info:build   unable to load shared object
 '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_R/R/work/R-4.2.1/modules//lapack.so':
 :info:build
 dlopen(/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_R/R/work/R-4.2.1/modules//lapack.so,
 0x0006): symbol not found in flat namespace (__gfortran_concat_string)
 :info:build Error in solve.default(rgb) : LAPACK routines cannot be loaded
 :info:build Error: unable to load R code in package 'grDevices'
 }}}
 because earlier in the log building `libRlapack.dylib` failed with
 {{{
 :info:build /opt/local/bin/clang-mp-14 -dynamiclib
 -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module
 -multiply_defined suppress -fopenmp -L/opt/local/lib
 -Wl,-headerpad_max_install_names -Wl,-rpath,/opt/local/lib/libgcc
 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -a
 rch x86_64 -o libRlapack.dylib dlamch.o dlapack.o cmplx.o  -install_name
 libRlapack.dylib -compatibility_version 4.2.0 -current_version 4.2.1
 -headerpad_max_install_names -L"../../../lib" -lRblas
 -L/opt/local/lib/gcc12/gcc/x86_64-apple-darwin21/12.2.0
 -L/opt/local/lib/gcc12 -lgfortran -lquadmath  -L"../../../lib"
 -lR
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build #ar -cr libRlapack.dylib dlamch.o dlapack.o cmplx.o
 }}}
 Trying to work around that by switching to R +openblas, building openblas
 +native-universal fails with
 {{{
 :info:build
 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/fc/opt/local/bin
 /gfortran-mp-12 -Os -m64 -O3 -m128bit-long-double -Wall -frecursive -fno-
 optimize-sibling-calls -m64  -msse3 -mssse3 -msse4.1 -mavx -mavx2
  -mavx2 -O3 -m128bit-long-double -Wall -frecursive -fno-optimize-sibling-
 calls -m64  -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mavx2 -fno-tree-
 vectorize -L/opt/local/lib -Wl,-headerpad_max_install_names
 -Wl,-rpath,/opt/local/lib/libgcc
 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
 -arch x86_64 -
 o zblat3 zblat3.o ../libopenblas-r1.a -lpthread -lgfortran -lpthread
 -lgfortran
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ignoring file /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is
 universal (arm64) but does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgfortran.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib, file is universal (arm64) but
 does not contain the x86_64 architecture:
 /opt/local/lib/gcc12/libgcc_s.1.1.dylib
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build ld: warning: ignoring file
 /opt/local/lib/gcc12/libquadmath.dylib, building for macOS-x86_64 but
 attempting to link with file built for macOS-arm64
 :info:build Undefined symbols for architecture x86_64:
 :info:build   "__gfortran_set_args", referenced from:
 :info:build       _main in sblat1.o
 :info:build   "__gfortran_set_options", referenced from:
 :info:build       _main in sblat1.o
 :info:build   "__gfortran_st_write", referenced from:
 :info:build       _itest1_.part.0 in sblat1.o
 :info:build       _stest_.constprop.0 in sblat1.o
 :info:build       _stest_ in sblat1.o
 :info:build       _check3_ in sblat1.o
 :info:build       _check2_ in sblat1.o
 :info:build       _check1_ in sblat1.o
 :info:build       _check0_ in sblat1.o
 :info:build       ...
 :info:build   "__gfortran_st_write_done", referenced from:
 :info:build       _itest1_.part.0 in sblat1.o
 :info:build       _stest_.constprop.0 in sblat1.o
 :info:build       _stest_ in sblat1.o
 :info:build       _check3_ in sblat1.o
 :info:build       _check2_ in sblat1.o
 :info:build       _check1_ in sblat1.o
 :info:build       _check0_ in sblat1.o
 :info:build       ...
 :info:build   "__gfortran_stop_string", referenced from:
 :info:build       _check3_ in sblat1.o
 :info:build       _check2_ in sblat1.o
 :info:build       _check1_ in sblat1.o
 :info:build       _check0_ in sblat1.o
 :info:build       _MAIN__ in sblat1.o
 :info:build   "__gfortran_transfer_character_write", referenced from:
 :info:build       _check3_ in sblat1.o
 :info:build       _check2_ in sblat1.o
 :info:build       _check1_ in sblat1.o
 :info:build       _check0_ in sblat1.o
 :info:build       _MAIN__ in sblat1.o
 :info:build       _header_ in sblat1.o
 :info:build   "__gfortran_transfer_integer_write", referenced from:
 :info:build       _itest1_.part.0 in sblat1.o
 :info:build       _stest_.constprop.0 in sblat1.o
 :info:build       _stest_ in sblat1.o
 :info:build       _MAIN__ in sblat1.o
 :info:build       _header_ in sblat1.o
 :info:build   "__gfortran_transfer_real_write", referenced from:
 :info:build       _stest_.constprop.0 in sblat1.o
 :info:build       _stest_ in sblat1.o
 :info:build ld: symbol(s) not found for architecture x86_64
 }}}

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


More information about the macports-tickets mailing list