[MacPorts] #29142: libintl and libiconv versions not compatible

MacPorts noreply at macports.org
Sun Apr 17 02:15:50 PDT 2011


#29142: libintl and libiconv versions not compatible
---------------------------------------+------------------------------------
 Reporter:  stephane.jacobs@…          |       Owner:  macports-tickets@…                   
     Type:  defect                     |      Status:  new                                  
 Priority:  Normal                     |   Milestone:                                       
Component:  ports                      |     Version:  1.9.2                                
 Keywords:                             |        Port:  gettext libiconv                     
---------------------------------------+------------------------------------

Comment(by ryandesign@…):

 I have downloaded the fsl source to see what's going on. I see that on
 Leopard, its build scripts say it should create a 4-way universal binary
 -- for the architectures ppc, ppc64, i386 and x86_64. (Look at the files
 in config/apple-darwin9-gcc4.0: most of them include the flags "`-arch ppc
 -arch ppc64 -arch i386 -arch x86_64`".) You've shown that the iconv
 library in your MacPorts is only built for one of those architectures --
 i386 (which is totally normal for MacPorts on Leopard).

 I see that the source includes a copy of libiconv 1.11 (in
 extras/src/libiconv), so I presume it's intending to use its own internal
 copy of this and other libraries, but for some reason has instead chosen
 to use your MacPorts libraries. I can find no mention of "/opt/local" in
 the source, so I assume you have somehow informed the fsl build that you
 would like it to use the MacPorts libiconv instead. Perhaps you've set
 environment variables like CPPFLAGS, LDFLAGS, C_INCLUDE_PATH,
 LIBRARY_PATH, DYLD_LIBRARY_PATH, DYLD_FALLBACK_LIBRARY_PATH...

 Replying to [comment:6 stephane.jacobs@…]:
 > Is it that it's falling back on the library located in /usr/lib,

 Yes. Because of environment variables you set, or whatever reason, it
 initially found the libiconv library provided by MacPorts, found that it
 is version 8, and recorded that somewhere. But then it found that the
 MacPorts library didn't contain all the architectures it needed, so,
 because /usr/lib is a standard location for libraries, it went looking for
 the library there, and found it.

 > whihc is version 7.0.0

 Yes, that is the version of the libiconv library Apple ships with Mac OS
 X. Since version 7 is less than the version 8 MacPorts library it found
 earlier, it now complains about that version mismatch.

 > and for the wrong architecture, for some reason?

 No -- the library in /usr/lib has the right architectures (all four of
 them), but is the wrong library version.

 Long story short: you should either 1) let fsl use its own internal copies
 of the libraries it needs, by unsetting whatever environment variables you
 set, possibly going so far as to remove /opt/local/* from PATH
 temporarily; hopefully this would then work correctly, ignoring anything
 you've installed with MacPorts; 2) if you want fsl to use the MacPorts
 libraries and don't care about universal builds, edit the fsl build files
 and change every occurrence of "`-arch ppc -arch ppc64 -arch i386 -arch
 x86_64`" to just "`-arch i386`"; or 3) if you want fsl to use the MacPorts
 libraries and you do want universal builds, rebuild libiconv and any other
 ports it wants to use for all four architectures -- that is, set
 universal_archs to "`ppc ppc64 i386 x86_64`" in macports.conf and rebuild
 those ports (using e.g. for libiconv: "`sudo port upgrade --enforce-
 variants libiconv +universal`").

-- 
Ticket URL: <https://trac.macports.org/ticket/29142#comment:7>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list