[MacPorts] #57821: libiconv breaks compatibility with OS-provided

MacPorts noreply at macports.org
Fri Dec 28 01:51:02 UTC 2018


#57821: libiconv breaks compatibility with OS-provided
------------------------+----------------------
 Reporter:  mouse07410  |      Owner:  (none)
     Type:  defect      |     Status:  new
 Priority:  Normal      |  Milestone:
Component:  ports       |    Version:
 Keywords:              |       Port:  libiconv
------------------------+----------------------
 {{{libiconv}}} port changes the names of the functions it provides from
 likes of {{{iconv_open}}} to likes of {{{libiconv_open}}}. This makes it
 impossible to use Macports components (such as gcc8) with 3rd-party stuff
 like Haskell GHC-8.4.3 compiler whose libraries were linked against
 {/usr/lib/libiconv.dylib}.

 Here's how the problem manifests itself:
 {{{
 Linking dist/build/tests/tests ...
 Undefined symbols for architecture x86_64:
   "_iconv", referenced from:
       _hs_iconv in libHSbase-4.11.1.0.a(iconv.o)
      (maybe you meant:
 _base_GHCziIOziEncodingziIconv_iconvEncoding16_closure,
 _base_GHCziIOziEncodingziIconv_iconvEncoding1_info ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding3_closure ,
 . . . . . _
 base_GHCziIOziEncodingziIconv_iconvEncoding6_info ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding2_info ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding11_closure ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding13_bytes , _hs_iconv ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding_info , _hs_iconv_close ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding12_closure ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding_closure ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding2_closure ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding14_info ,
 _base_GHCziIOziEncodingziIconv_iconvEncoding12_info )
   "_iconv_open", referenced from:
       _hs_iconv_open in libHSbase-4.11.1.0.a(iconv.o)
      (maybe you meant: _hs_iconv_open)
   "_iconv_close", referenced from:
       _hs_iconv_close in libHSbase-4.11.1.0.a(iconv.o)
      (maybe you meant: _hs_iconv_close)
   "_locale_charset", referenced from:
       _localeEncoding in libHSbase-4.11.1.0.a(PrelIOUtils.o)
 ld: symbol(s) not found for architecture x86_64
 clang: error: linker command failed with exit code 1 (use -v to see
 invocation)
 `clang' failed in phase `Linker'. (Exit code: 1)
 make: *** [build] Error 1
 }}}

 I wonder why it was decided to add prefix {{{lib}}} to the function names,
 and wish this was reverted.

 Coincidentally, I'm stymied trying to understand why it does not try to
 link against what's in {{{/usr/lib}}}.

-- 
Ticket URL: <https://trac.macports.org/ticket/57821>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list