#13366: libiconv universal support without deactivating any previous version -------------------------------+-------------------------------------------- Reporter: nox@macports.org | Owner: ryandesign@macports.org Type: enhancement | Status: assigned Priority: Normal | Milestone: Port Enhancements Component: ports | Version: Resolution: | Keywords: -------------------------------+-------------------------------------------- Comment (by ryandesign@macports.org): I wanted to convince myself that, without your patch, there is a problem, and that with your patch, the problem is fixed. I tested this way. I'm using Mac OS X 10.4.11 with Xcode 2.4.1 and MacPorts 1.7.0 from trunk r33622 on an Intel Core 2 Duo MacBook Pro. I uninstalled libiconv. Then I installed and activated libiconv @1.12_0. Then I edited the portfile to remove the pre-fetch warning message and tried installing libiconv @1.12_0+universal. It failed: {{{ ---> Staging libiconv into destroot Error: Target org.macports.destroot returned: shell command " cd "/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/libiconv-1.12" && make install DESTDIR=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot " returned error 2 Command output: rm -f $objects && \ mv -f libiconv.new.a libiconv.a) ;; \ esac if test -n ""; then /usr/bin/install -c -m 644 /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib/.new && mv /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib/.new /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib/ ; fi cd srclib && make install prefix='/opt/local' exec_prefix='/opt/local' libdir='/opt/local/lib' make install-am make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. cd src && make install prefix='/opt/local' exec_prefix='/opt/local' libdir='/opt/local/lib' test `ls -ld . | sed -e 's/^d\(.........\).*/\1/'` = rwxrwxrwx || chmod 777 . if [ ! -d /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/bin ] ; then /bin/sh ../build-aux/mkinstalldirs /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/bin ; fi case "darwin8" in \ hpux*) /usr/bin/gcc-4.0 -L/opt/local/lib -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 `if test -n ''; then /opt/local/bin; fi` iconv.o ../srclib/libicrt.a -L/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib -liconv `if test -n '/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot'; then echo " -Wl,+b -Wl,/opt/local/lib"; fi` -o iconv;; \ *) /bin/sh ../libtool --mode=link /usr/bin/gcc-4.0 -L/opt/local/lib -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 `if test -n ''; then /opt/local/bin; fi` iconv.o ../srclib/libicrt.a /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib/libiconv.la -o iconv;; \ esac /usr/bin/gcc-4.0 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 iconv.o -o iconv -L/opt/local/lib ../srclib/libicrt.a /opt/local/lib/libiconv.dylib /usr/bin/ld: for architecture ppc /usr/bin/ld: warning /opt/local/lib/libiconv.dylib cputype (7, architecture i386) does not match cputype (18) for specified -arch flag: ppc (file not loaded) /usr/bin/ld: Undefined symbols: __libiconv_version _iconv_canonicalize _libiconv _libiconv_close _libiconv_open _libiconvctl _libiconvlist collect2: ld returned 1 exit status lipo: can't open input file: /var/tmp//ccXB0zvo.out (No such file or directory) make[1]: *** [install] Error 1 make: *** [install] Error 2 Error: Status 1 encountered during processing. }}} Then I deactivated libiconv @1.12_0 and was able to install libiconv @1.12_0+universal. So this confirms that you cannot currently install libiconv universal if libiconv non-universal is active, which explains why we currently have that pre-fetch warning. Next I activated libiconv @1.12_0 again and tried to install libiconv @1.12_0+universal again, this time using your patch. Unfortunately, the problem seems to remain: {{{ ---> Staging libiconv into destroot Error: Target org.macports.destroot returned: shell command " cd "/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/libiconv-1.12" && make install DESTDIR=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot " returned error 2 Command output: rm -f $objects && \ mv -f libiconv.new.a libiconv.a) ;; \ esac if test -n ""; then /usr/bin/install -c -m 644 /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib/.new && mv /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib/.new /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib/ ; fi cd srclib && make install prefix='/opt/local' exec_prefix='/opt/local' libdir='/opt/local/lib' make install-am make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. cd src && make install prefix='/opt/local' exec_prefix='/opt/local' libdir='/opt/local/lib' test `ls -ld . | sed -e 's/^d\(.........\).*/\1/'` = rwxrwxrwx || chmod 777 . if [ ! -d /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/bin ] ; then /bin/sh ../build-aux/mkinstalldirs /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/bin ; fi case "darwin8" in \ hpux*) /usr/bin/gcc-4.0 -L/opt/local/lib -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 `if test -n ''; then /opt/local/bin; fi` iconv.o ../srclib/libicrt.a -L/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib -liconv `if test -n '/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot'; then echo " -Wl,+b -Wl,/opt/local/lib"; fi` -o iconv;; \ darwin*) /usr/bin/gcc-4.0 -L/opt/local/lib -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 `if test -n ''; then /opt/local/bin; fi` iconv.o ../srclib/libicrt.a -L/opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib -liconv -o iconv;; \ *) /bin/sh ../libtool --mode=link /usr/bin/gcc-4.0 -L/opt/local/lib -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 `if test -n ''; then /opt/local/bin; fi` iconv.o ../srclib/libicrt.a /opt/local/var/macports/build/_Users_rschmidt_macports_dports_textproc_libiconv/work/destroot/opt/local/lib/libiconv.la -o iconv;; \ esac /usr/bin/ld: for architecture ppc /usr/bin/ld: warning /opt/local/lib/libiconv.dylib cputype (7, architecture i386) does not match cputype (18) for specified -arch flag: ppc (file not loaded) /usr/bin/ld: Undefined symbols: __libiconv_version _iconv_canonicalize _libiconv _libiconv_close _libiconv_open _libiconvctl _libiconvlist collect2: ld returned 1 exit status lipo: can't open input file: /var/tmp//ccSQ6Js9.out (No such file or directory) make[1]: *** [install] Error 1 make: *** [install] Error 2 Error: Status 1 encountered during processing. }}} So it doesn't look like your patch fixes the issue. Any ideas? -- Ticket URL: <http://trac.macosforge.org/projects/macports/ticket/13366#comment:8> MacPorts </projects/macports> Ports system for Mac OS