[MacPorts] #13366: libiconv universal support without deactivating any previous version

MacPorts trac at macosforge.org
Thu Jan 31 14:18:40 PST 2008


#13366: libiconv universal support without deactivating any previous version
-------------------------------+--------------------------------------------
  Reporter:  nox at macports.org  |       Owner:  ryandesign at macports.org
      Type:  enhancement       |      Status:  assigned               
  Priority:  Normal            |   Milestone:  Port Enhancements      
 Component:  ports             |     Version:                         
Resolution:                    |    Keywords:                         
-------------------------------+--------------------------------------------
Comment (by ryandesign at 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


More information about the macports-tickets mailing list