From 8eaba2804804dd2ab64fe5068337bbbbc922b838 Mon Sep 17 00:00:00 2001 From: gjb Date: Sat, 16 Nov 2013 18:40:44 +0000 Subject: MFC r257583, r258012, r258013: r257583 (peter): Remove the WITH_LIBICONV_COMPAT hack that seems to do more harm than good. This caused libc to spoof the ports libiconv namespace and provide a colliding libiconv.so.3 to fool rtld. This should have been removed some time ago. r258012: Remove WITH_LIBICONV_COMPAT file to chase after r257583. r258013: Regenerate src.conf.5 after removal of WITH_LIBICONV_COMPAT. Approved by: re (kib) Sponsored by: The FreeBSD Foundation Sponsored by: The FreeBSD Foundation --- ObsoleteFiles.inc | 6 ++++++ include/Makefile | 10 +--------- include/iconv.h | 19 ------------------- lib/Makefile | 5 ----- lib/libc/iconv/Symbol.map | 8 -------- lib/libc/iconv/iconv.c | 12 ------------ lib/libiconv_compat/Makefile | 9 --------- lib/libiconv_compat/stub.c | 8 -------- share/man/man5/src.conf.5 | 11 +---------- share/mk/bsd.own.mk | 5 ----- tools/build/mk/OptionalObsoleteFiles.inc | 7 ------- tools/build/options/WITH_LIBICONV_COMPAT | 2 -- 12 files changed, 8 insertions(+), 94 deletions(-) delete mode 100644 lib/libiconv_compat/Makefile delete mode 100644 lib/libiconv_compat/stub.c delete mode 100644 tools/build/options/WITH_LIBICONV_COMPAT diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index f60c301..104b0a5 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -38,6 +38,12 @@ # xargs -n1 | sort | uniq -d; # done +# 20131103: WITH_LIBICONV_COMPAT removal +OLD_FILES+=usr/include/_libiconv_compat.h +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 # 20131030: /etc/keys moved to /usr/share/keys OLD_DIRS+=etc/keys OLD_DIRS+=etc/keys/pkg diff --git a/include/Makefile b/include/Makefile index 1f55f4e..44a54e3 100644 --- a/include/Makefile +++ b/include/Makefile @@ -83,15 +83,7 @@ _netipx= netipx # Handle the #define aliases for libiconv .if ${MK_ICONV} == "yes" -CLEANFILES+= _libiconv_compat.h -INCS+= _libiconv_compat.h iconv.h -_libiconv_compat.h: ${.CURDIR}/Makefile - echo "/* Indicate whether libiconv symbols are present */" > _libiconv_compat.h -.if ${MK_LIBICONV_COMPAT} == "yes" - echo "#define __LIBICONV_COMPAT" >> _libiconv_compat.h -.else - echo "#undef __LIBICONV_COMPAT" >> _libiconv_compat.h -.endif +INCS+= iconv.h .endif diff --git a/include/iconv.h b/include/iconv.h index 69cc2c7..c6b0799 100644 --- a/include/iconv.h +++ b/include/iconv.h @@ -40,13 +40,6 @@ #include #include -#include <_libiconv_compat.h> -#ifdef __LIBICONV_COMPAT -#define libiconv_open iconv_open -#define libiconv_close iconv_close -#define libiconv iconv -#define libiconv_t iconv_t -#endif #ifdef __cplusplus typedef bool __iconv_bool; #elif __STDC_VERSION__ >= 199901L @@ -76,22 +69,10 @@ size_t __iconv(iconv_t, const char **, size_t *, char **, /* * GNU interfaces for iconv */ -#ifdef __LIBICONV_COMPAT -#define libiconv_open_into iconv_open_into -#define libiconvctl iconvctl -#define libiconvlist iconvlist -#define libiconv_set_relocation_prefix iconv_set_relocation_prefix -#endif - /* We have iconvctl() */ #define _ICONV_VERSION 0x0108 extern int _iconv_version; -#ifdef __LIBICONV_COMPAT -#define _libiconv_version _iconv_version -#define _LIBICONV_VERSION _ICONV_VERSION -#endif - typedef struct { void *spaceholder[64]; } iconv_allocation_t; diff --git a/lib/Makefile b/lib/Makefile index 9ac8945..074a917 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -81,7 +81,6 @@ SUBDIR= ${SUBDIR_ORDERED} \ ${_libgpib} \ ${_libgssapi} \ ${_librpcsec_gss} \ - ${_libiconv_compat} \ libipsec \ ${_libipx} \ libjail \ @@ -188,10 +187,6 @@ _libcxxrt= libcxxrt _libcplusplus= libc++ .endif -.if ${MK_LIBICONV_COMPAT} != "no" -_libiconv_compat= libiconv_compat -.endif - .if ${MK_LIBTHR} != "no" _libthr= libthr .endif diff --git a/lib/libc/iconv/Symbol.map b/lib/libc/iconv/Symbol.map index 05df2ea..425aa3e 100644 --- a/lib/libc/iconv/Symbol.map +++ b/lib/libc/iconv/Symbol.map @@ -6,15 +6,7 @@ FBSD_1.2 { __iconv; __iconv_free_list; __iconv_get_list; - _libiconv_version; iconv_canonicalize; - libiconv; - libiconv_close; - libiconv_open; - libiconv_open_into; - libiconv_set_relocation_prefix; - libiconvctl; - libiconvlist; }; FBSD_1.3 { diff --git a/lib/libc/iconv/iconv.c b/lib/libc/iconv/iconv.c index f388e8b..a4faf72 100644 --- a/lib/libc/iconv/iconv.c +++ b/lib/libc/iconv/iconv.c @@ -47,18 +47,6 @@ #include "citrus_hash.h" #include "citrus_iconv.h" -#include <_libiconv_compat.h> -#ifdef __LIBICONV_COMPAT -__weak_reference(iconv, libiconv); -__weak_reference(iconv_open, libiconv_open); -__weak_reference(iconv_open_into, libiconv_open_into); -__weak_reference(iconv_close, libiconv_close); -__weak_reference(iconvlist, libiconvlist); -__weak_reference(iconvctl, libiconvctl); -__weak_reference(iconv_set_relocation_prefix, libiconv_set_relocation_prefix); -__weak_reference(_iconv_version, _libiconv_version); -#endif - #define ISBADF(_h_) (!(_h_) || (_h_) == (iconv_t)-1) int _iconv_version = _ICONV_VERSION; diff --git a/lib/libiconv_compat/Makefile b/lib/libiconv_compat/Makefile deleted file mode 100644 index 3d4483a..0000000 --- a/lib/libiconv_compat/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $FreeBSD$ - -LIB= iconv -SHLIB_MAJOR= 3 -SRCS= stub.c - -WARNS?= 0 - -.include diff --git a/lib/libiconv_compat/stub.c b/lib/libiconv_compat/stub.c deleted file mode 100644 index b4e56a2..0000000 --- a/lib/libiconv_compat/stub.c +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Hacks to support things like the dlopen() in libkiconv.so or - * ports that want to hard-code -liconv. - * - * $FreeBSD$ - */ - -int __libiconv_stub__; diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 335e8bb..9a433c2 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: stable/10/tools/build/options/makeman 255964 2013-10-01 07:22:04Z des .\" $FreeBSD$ -.Dd November 6, 2013 +.Dd November 11, 2013 .Dt SRC.CONF 5 .Os .Sh NAME @@ -471,12 +471,6 @@ Set to not build HTML docs. .It Va WITHOUT_ICONV .\" from FreeBSD: stable/10/tools/build/options/WITHOUT_ICONV 254919 2013-08-26 17:15:56Z antoine Set to not build iconv as part of libc. -When set, it also enforces the following options: -.Pp -.Bl -item -compact -.It -.Va WITHOUT_LIBICONV_COMPAT -.El .It Va WITHOUT_INET .\" from FreeBSD: stable/10/tools/build/options/WITHOUT_INET 221266 2011-04-30 17:58:28Z bz Set to not build programs and libraries related to IPv4 networking. @@ -633,9 +627,6 @@ runtime linker. .It Va WITHOUT_LIBCPLUSPLUS .\" from FreeBSD: stable/10/tools/build/options/WITHOUT_LIBCPLUSPLUS 246262 2013-02-02 22:42:46Z dim Set to avoid building libcxxrt and libc++. -.It Va WITH_LIBICONV_COMPAT -.\" from FreeBSD: stable/10/tools/build/options/WITH_LIBICONV_COMPAT 254919 2013-08-26 17:15:56Z antoine -Set to build libiconv API and link time compatibility. .It Va WITHOUT_LIBPTHREAD .\" from FreeBSD: stable/10/tools/build/options/WITHOUT_LIBPTHREAD 188848 2009-02-20 11:09:55Z mtm Set to not build the diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index 9784553..e2f9894 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -368,7 +368,6 @@ __DEFAULT_NO_OPTIONS = \ DEBUG_FILES \ GPL_DTC \ HESIOD \ - LIBICONV_COMPAT \ INSTALL_AS_USER \ LLDB \ NAND \ @@ -491,10 +490,6 @@ MK_${var}:= no MK_LIBTHR:= no .endif -.if ${MK_ICONV} == "no" -MK_LIBICONV_COMPAT:= no -.endif - .if ${MK_LDNS} == "no" MK_LDNS_UTILS:= no MK_UNBOUND:= no diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc index 81ad488..82d83733 100644 --- a/tools/build/mk/OptionalObsoleteFiles.inc +++ b/tools/build/mk/OptionalObsoleteFiles.inc @@ -3190,13 +3190,6 @@ OLD_FILES+=usr/share/man/man1/host.1.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 diff --git a/tools/build/options/WITH_LIBICONV_COMPAT b/tools/build/options/WITH_LIBICONV_COMPAT deleted file mode 100644 index f414798..0000000 --- a/tools/build/options/WITH_LIBICONV_COMPAT +++ /dev/null @@ -1,2 +0,0 @@ -.\" $FreeBSD$ -Set to build libiconv API and link time compatibility. -- cgit v1.1