[MacPorts] #38890: perl5.12 @5.12.4_2 upgrade from _1 fails to build, arch mismatch
#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
#38890: perl5.12 @5.12.4_2 upgrade from _1 fails to build, arch mismatch ---------------------------+-------------------------------- Reporter: gunnlaugur@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: duplicate | Keywords: Port: perl5.12 | ---------------------------+-------------------------------- Changes (by larryv@…): * status: new => closed * resolution: => duplicate Comment: `perl5.12` does not actually use libstdc++, so there should be no dependency. This is a suspected bug in `ld(1)`. Duplicate of #36438. -- Ticket URL: <https://trac.macports.org/ticket/38890#comment:1> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts