[MacPorts] #58646: gcc8 @8.3.0_4 +universal: does not build/install universal libraries

MacPorts noreply at macports.org
Wed Jun 26 12:19:24 UTC 2019


#58646: gcc8 @8.3.0_4 +universal: does not build/install universal libraries
--------------------+-----------------------
 Reporter:  Ionic   |      Owner:  (none)
     Type:  defect  |     Status:  new
 Priority:  Normal  |  Milestone:
Component:  ports   |    Version:
 Keywords:          |       Port:  gcc8 gcc9
--------------------+-----------------------
 `OpenBLAS @0.6.3_1 +universal` fails to build due to this:
 {{{
 [...]
 /opt/local/bin/gfortran-mp-8 -O3 -m128bit-long-double -Wall -frecursive
 -m32   -o sblat1 sblat1.o ../libopenblas-r1.a -lpthread -lgfortran
 -lpthread -lgfortran
 /opt/local/bin/gfortran-mp-8 -O3 -m128bit-long-double -Wall -frecursive
 -m32   -o dblat1 dblat1.o ../libopenblas-r1.a -lpthread -lgfortran
 -lpthread -lgfortran
 ld: warning: ignoring fileld : warning: ignoring file
 /opt/local/lib/gcc8//opt/local/lib/gcc8/i386i386/libgfortran.dylib, file
 was /builtlibgfortran.dylib,  filefor x86_64 which is  notwas  the built
 for x86_64 which architecture being is not linked (i386):
 /opt/local/lib/gcc8/i386/libgfortran.dylib
 ld: warning: ignoring file /opt/local/lib/gcc8/libgcc_ext.10.5.dylib,
 missing required architecture i386 in file
 /opt/local/lib/gcc8/libgcc_ext.10.5.dylib (1 slices)
 ld: warning: ignoring file /opt/local/lib/gcc8/i386/libquadmath.dylib,
 file was built for x86_64 which is not thethe architecture being linked
 (i386): /opt/local/lib/gcc8/i386/libgfortran.dylib
 ld: warning: ignoring file /opt/local/lib/gcc8/libgcc_ext.10.5.dylib,
 missing required architecture i386 in file
 /opt/local/lib/gcc8/libgcc_ext.10.5.dylib (1 slices)
 ld: warning: ignoring file /opt/local/lib/gcc8/i386/libquadmath.dylib,
 file was built for x86_64 which is not the architecture being linked
 (i386): /opt/local/lib/gcc8/i386 /libquadmath.dylib
 Undefined symbols for architecture i386:
   "__gfortran_internal_pack", referenced from:
       architecture being linked (i386):
 /opt/local/lib/gcc8/i386/libquadmath.dylib
 Undefined symbols for architecture i386:
   "__gfortran_set_args", referenced from:
 [...]
 }}}

 The output is mangled which is probably a side-effect of `-j2`. That's not
 something that should concern us a lot.

 What does concern me is that linking against `libgfortran.dylib`,
 `libgcc_ext.dylib` et al fails in i386 mode, because the libraries do not
 contain the needed architecture.

 {{{
 $ lipo -info /opt/local/lib/gcc8/i386/libgfortran.dylib
 /opt/local/lib/gcc8/libgcc_ext.10.5.dylib
 /opt/local/lib/gcc8/i386/libquadmath.dylib
 Architectures in the fat file: /opt/local/lib/gcc8/libgcc_ext.10.5.dylib
 are: x86_64
 Non-fat file: /opt/local/lib/gcc8/i386/libgfortran.dylib is architecture:
 x86_64
 Non-fat file: /opt/local/lib/gcc8/i386/libquadmath.dylib is architecture:
 x86_64
 }}}

 I'm CCing the last few people to update the port because it's
 nomaintainer. Not creating a ticket against OpenBLAS, because OpenBLAS
 doesn't seem to at fault here.

 `gcc9` seems also to be affected:

 {{{
 $ lipo -info /opt/local/lib/gcc9/i386/libgfortran.dylib
 /opt/local/lib/gcc9/libgcc_ext.10.5.dylib
 /opt/local/lib/gcc9/i386/libquadmath.dylib
 Architectures in the fat file: /opt/local/lib/gcc9/libgcc_ext.10.5.dylib
 are: x86_64
 Non-fat file: /opt/local/lib/gcc9/i386/libgfortran.dylib is architecture:
 x86_64
 Non-fat file: /opt/local/lib/gcc9/i386/libquadmath.dylib is architecture:
 x86_64
 }}}

 I don't have gcc7 installed +universal, so can't say whether this version
 is affected.

 The only older GCC version that I do have installed +universal is 4.9...
 and this one is interesting:

 {{{
 #  lipo -info /opt/local/lib/gcc49/i386/libgfortran.dylib
 /opt/local/lib/gcc49/libgcc_ext.10.5.dylib
 /opt/local/lib/gcc49/i386/libquadmath.dylib
 Architectures in the fat file: /opt/local/lib/gcc49/i386/libgfortran.dylib
 are: x86_64 i386
 Architectures in the fat file: /opt/local/lib/gcc49/libgcc_ext.10.5.dylib
 are: x86_64
 Non-fat file: /opt/local/lib/gcc49/i386/libquadmath.dylib is architecture:
 x86_64
 }}}

 That doesn't look right either, but at least better regarding
 `libgfortran.dylib`.

 I'll attach OpenBLAS's log file just in case it might be helpful.

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


More information about the macports-tickets mailing list