[MacPorts] #54228: octave @4.2.1 build failure on SnowLeopard with clang-3.9 due to malformed object error, but succeeds with clang-3.8

MacPorts noreply at macports.org
Thu May 25 04:30:45 UTC 2017


#54228: octave @4.2.1 build failure on SnowLeopard with clang-3.9 due to malformed
object error, but succeeds with clang-3.8
-------------------------+--------------------
 Reporter:  kencu        |      Owner:
     Type:  defect       |     Status:  new
 Priority:  Normal       |  Milestone:
Component:  ports        |    Version:
 Keywords:  snowleopard  |       Port:  octave
-------------------------+--------------------
 During a revbump of octave, with my default compiler now set to clang-3.9,
 this failure occurs:
 {{{
 /opt/local/bin/ranlib: file: .libs/libgnu.a(unistd.o) has no symbols
 /opt/local/bin/ranlib: file: .libs/libgnu.a(wctype-h.o) has no symbols
 /opt/local/bin/ranlib: file: .libs/libgnu.a(xsize.o) has no symbols
   GEN      liboctave/operators/mx-ui64nda-i16nda.h
   GEN      liboctave/operators/mx-ui64nda-ui16nda.h
 /usr/bin/ranlib: object: .libs/libgnu.a(strftime.o) malformed object
 (unknown load command 2)
 make[3]: *** [libgnu.la] Error 1
 make[3]: Leaving directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/work/octave-4.2.1/libgnu'
 make[2]: *** [all-recursive] Error 1
 }}}
 with clang-3.8, the build goes past this point without trouble, and
 ultimately succeeds.
 {{{
 /opt/local/bin/ranlib: file: .libs/libgnu.a(unistd.o) has no symbols
 /opt/local/bin/ranlib: file: .libs/libgnu.a(wctype-h.o) has no symbols
 /opt/local/bin/ranlib: file: .libs/libgnu.a(xsize.o) has no symbols
   GEN      liboctave/operators/mx-ui16nda-ui64nda.h
 /usr/bin/ranlib: file: .libs/libgnu.a(bitrotate.o) has no symbols
 /usr/bin/ranlib: file: .libs/libgnu.a(c-ctype.o) has no symbols
 /usr/bin/ranlib: file: .libs/libgnu.a(fd-hook.o) has no symbols
 /usr/bin/ranlib: file: .libs/libgnu.a(getprogname.o) has no symbols
 }}}

 I note `/usr/bin/ranlib` slips in there, instead of
 `/opt/local/bin/ranlib`, and I *think* this error occurs because the
 default `/usr/bin/ranlib` on 10.6 can handle the objects from clang-3.8,
 but can't handle the objects from clang-3.9, but I note that the
 troublesome object that causes the failure `.libs/libgnu.a(strftime.o)
 malformed object` never appears in the build log during the clang-3.8
 build, for some reason.

 During the clang-3.9 build, this appears:
 {{{
 ld: warning: target OS does not support re-exporting symbol
 _av_bprint_strftime from libavutil/libavutil.dylib
 }}}

 Whereas during the clang-3.8 build, it looks like this:
 {{{
   CC       liboctave/wrappers/liboctave_wrappers_libwrappers_la-strftime-
 wrapper.lo
 }}}

 so there is some difference in the way octave builds on these two systems
 as well.

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


More information about the macports-tickets mailing list