[MacPorts] #38890: perl5.12 @5.12.4_2 upgrade from _1 fails to build, arch mismatch

MacPorts noreply at macports.org
Mon Apr 22 19:54:37 PDT 2013


#38890: perl5.12 @5.12.4_2 upgrade from _1 fails to build, arch mismatch
--------------------------+--------------------------------
 Reporter:  gunnlaugur@…  |      Owner:  macports-tickets@…
     Type:  defect        |     Status:  new
 Priority:  Normal        |  Milestone:
Component:  ports         |    Version:  2.1.3
 Keywords:                |       Port:  perl5.12
--------------------------+--------------------------------
 A normal `port upgrade outdated` fails for me on `perl5.12`, with the
 following salient bit in the log:
 {{{
 :info:build /usr/bin/clang -L/opt/local/lib -arch x86_64 -arch i386
 -fstack-protector -force_flat_namespace -o miniperl \
 :info:build           gv.o toke.o perly.o pad.o regcomp.o dump.o util.o
 mg.o reentr.o mro.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o
 pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o
 globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o
 pp_sort.o   \
 :info:build         miniperlmain.o opmini.o perlmini.o -ldl -lm -lutil -lc
 :info:build ld: in /opt/local/lib/libstdc++.6.dylib, file was built for
 unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x
 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being
 linked (i386): /opt/local/lib/libstdc++.6.dylib for architecture i386
 }}}

 Presumably this is because my existing installed `perl5.12` has a
 `+universal` variant:
 {{{
 $ port installed perl5.12
 The following ports are currently installed:
   perl5.12 @5.12.4_1+universal (active)
 }}}

 whereas my installed `libstdcxx-devel` does not:
 {{{
 $ port installed libstdcxx-devel
 The following ports are currently installed:
   libstdcxx-devel @4.8-20121216_0 (active)
 $ file /opt/local/lib/libstdc++.6.dylib
 /opt/local/lib/libstdc++.6.dylib: Mach-O 64-bit x86_64 dynamically linked
 shared library
 }}}

 And indeed `port clean perl5.12; port install perl5.12 -universal` worked
 just fine, after which `port upgrade outdated` was able to proceed
 normally.

 Don't know how this `+universal` mismatch arose. I didn't demote
 `libstdcxx-devel` from `+universal` (assuming that was installed
 previously) to 64-bit-only. Not on purpose at least! And I didn't
 purposely install `perl5.12` with the `+universal` variant either.

 In any case, the `perl5.12 +universal` port variant should probably
 explicitly declare the dependency on `libstdcxx-devel +universal`, rather
 than fail with a build error with the reason hidden away in a logfile.

-- 
Ticket URL: <https://trac.macports.org/ticket/38890>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list