FreeBSD 10-CURRENT switched to native iconv instead of libiconv library. Our team has a code that uses iconv invocations and we compile it on earlier version of FreeBSD. When we launch the executable on 10-Current it doesn't start with an error:

Shared object "libiconv.so.3" not found, required by our-lib.so

and this happens due to our compilation with -libiconv which is now absent. But we don't want to compile on two different versions of FreeBSD. So is there a way to have only one binary compiled on previous versions of FreeBSD if we use iconv?

  • Libiconv.so.3 should be still installable via the ports - and run side-by-side with the libc iconv portion. Thus, you can try to install it via the ports. – maxschlepzig Sep 1 '15 at 13:32

FreeBSD switched to new native code in order to replace non-free (GPLd) code by free code under the BSD license.

It is obvious that after having an own free implementation, there is a wish to remove the tainted old libraries.

If your code was written standard compliant, a simple recompilation should fix your problem. Note that the original iconv implementation (on Solaris) was/is in libc and I guess that FreeBSD did put their new code into libc as well.

  • BTW: Given that iconv_t is an opaque type, it may be sufficient to create an empty library with the old name... – schily Sep 1 '15 at 13:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.