diff options
author | peter <peter@FreeBSD.org> | 2013-08-13 07:15:01 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2013-08-13 07:15:01 +0000 |
commit | 995e1f0063b0515ed5821ebab3aff02dbbe44719 (patch) | |
tree | 9bba3bf02dbd5d242b50c29cd7221d5ae286e560 /tools | |
parent | d9e76bbffc59d724ea0ffe9896012f4ac0859bc7 (diff) | |
download | FreeBSD-src-995e1f0063b0515ed5821ebab3aff02dbbe44719.zip FreeBSD-src-995e1f0063b0515ed5821ebab3aff02dbbe44719.tar.gz |
The iconv in libc did two things - implement the standard APIs, the GNU
extensions and also tried to be link time compatible with ports libiconv.
This splits that functionality and enables the parts that shouldn't
interfere with the port by default.
WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker
symbols and even a stub libiconv.so.3 that are good enough to be able
to 'pkg delete -f libiconv' on a running system and reasonably expect it
to work.
I have tortured many machines over the last few days to try and reduce
the possibilities of foot-shooting as much as I can. I've successfully
recompiled to enable and disable the libiconv_compat modes, ports that use
libiconv alongside system iconv etc. If you don't enable the
WITH_LIBICONV_COMPAT switch, they don't share symbol space.
This is an extension of behavior on other system. iconv(3) is a standard
libc interface and libiconv port expects to be able to run alongside it on
systems that have it.
Bumped osreldate.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/build/mk/OptionalObsoleteFiles.inc | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc index 4c337b6..633ead0 100644 --- a/tools/build/mk/OptionalObsoleteFiles.inc +++ b/tools/build/mk/OptionalObsoleteFiles.inc @@ -2198,6 +2198,27 @@ OLD_FILES+=usr/share/man/man5/hesiod.conf.5.gz # to be filled in #.endif +.if ${MK_ICONV} == no +OLD_FILES+=usr/bin/iconv +OLD_FILES+=usr/bin/mkcsmapper +OLD_FILES+=usr/bin/mkesdb +OLD_FILES+=usr/include/_libiconv_compat.h +OLD_FILES+=usr/include/iconv.h +OLD_FILES+=usr/share/man/man1/iconv.1.gz +OLD_FILES+=usr/share/man/man1/mkcsmapper.1.gz +OLD_FILES+=usr/share/man/man1/mkesdb.1.gz +OLD_FILES+=usr/share/man/man3/__iconv.3.gz +OLD_FILES+=usr/share/man/man3/__iconv_free_list.3.gz +OLD_FILES+=usr/share/man/man3/__iconv_get_list.3.gz +OLD_FILES+=usr/share/man/man3/iconv.3.gz +OLD_FILES+=usr/share/man/man3/iconv_canonicalize.3.gz +OLD_FILES+=usr/share/man/man3/iconv_close.3.gz +OLD_FILES+=usr/share/man/man3/iconv_open.3.gz +OLD_FILES+=usr/share/man/man3/iconv_open_into.3.gz +OLD_FILES+=usr/share/man/man3/iconvctl.3.gz +OLD_FILES+=usr/share/man/man3/iconvlist.3.gz +.endif + .if ${MK_INET6} == no OLD_FILES+=sbin/ping6 OLD_FILES+=sbin/rtsol @@ -3338,6 +3359,13 @@ OLD_FILES+=usr/share/man/man8/verify_krb5_conf.8.gz # to be filled in #.endif +.if ${MK_LIBICONV_COMPAT} == no +OLD_FILES+=usr/lib/libiconv.a +OLD_FILES+=usr/lib/libiconv.so +OLD_FILES+=usr/lib/libiconv.so.3 +OLD_FILES+=usr/lib/libiconv_p.a +.endif + .if ${MK_LIBCPLUSPLUS} == no OLD_LIBS+=lib/libcxxrt.so.1 OLD_FILES+=usr/lib/libc++.a @@ -4347,7 +4375,3 @@ OLD_FILES+=usr/bin/svnserve OLD_FILES+=usr/bin/svnsync OLD_FILES+=usr/bin/svnversion .endif - -.if ${MK_ICONV} == no -OLD_FILES+=usr/bin/iconv -.endif |