On Apr 19, 2013, at 4:55 PM, "Adam Dershowitz Ph.D., P.E." <[email protected]> wrote:
> 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) Reported a couple of hours ago. https://trac.macports.org/ticket/38858 > 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) Strictly speaking yes, but the final Perl installation does not seem to use libstdc++. This particular clang invocation probably should not use "-L/opt/local/lib". > 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. I don't think perl5.12 has been changed materially for many months. I would guess that you simply did not have libstdcxx installed the last time you updated it. Unless you're building perl5.12 with a MacPorts GCC, you should be able to work around this by force-deactivating libstdcxx for the duration of the update. sudo port -f deactivate libstdcxx sudo port upgrade perl5.12 sudo port activate libstdcxx vq _______________________________________________ macports-users mailing list [email protected] https://lists.macosforge.org/mailman/listinfo/macports-users
