Perl upgrade issue

Adam Dershowitz Ph.D., P.E. dersh at alum.mit.edu
Fri Apr 19 13:55:49 PDT 2013


I have a fresh install of macports (new computer).  
I see that:  perl5.12                       5.12.4_1 < 5.12.4_2 

I just tried to do an upgrade.  But it fails with these errors at the end of the log file:

: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
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
:info:build make: *** [miniperl] Error 1
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_perl5.12/perl5.12/work/perl-5.12.4'
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_perl5.12/perl5.12/work/perl-5.12.4" && /usr/bin/make -j8 -w all 
:info:build Exit code: 2
:error:build org.macports.build for port perl5.12 returned: command execution failed


I believe that the reason for this error is that it seems that there is a mismatch between standard library not being universal and perl being universal:
$port installed perl5.12  libstdcxx
The following ports are currently installed:
  libstdcxx @4.8-20130411_0 (active)
  perl5.12 @5.12.4_1+universal (active)

What I am trying to understand is how that can happen, and why an upgrade would make this problem show up.  I don't believe that I have explicitly installed anything +universal.  But, I understand that certain things require universal, so some installs (wine-devel?), would have caused dependents to be reinstalled as universal.  So, I do have a bunch of things installed as universal.
So, I assume that I could get the upgrade of perl5.12 to work but manually installing libstdcxx as universal.  But, it seems that will cause many things to then be rebuilt, since many things depend on it.
My main question is why this would have developed if all I did was install ports and upgraded periodically.  

--Adam






More information about the macports-users mailing list