svn commit: r257583 - in head: . include lib lib/libc/iconv lib/libiconv_compat share/mk tools/build/mk

Peter Wemm peter at FreeBSD.org
Sun Nov 3 19:04:59 UTC 2013


Author: peter
Date: Sun Nov  3 19:04:57 2013
New Revision: 257583
URL: http://svnweb.freebsd.org/changeset/base/257583

Log:
  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.

Deleted:
  head/lib/libiconv_compat/
Modified:
  head/ObsoleteFiles.inc
  head/include/Makefile
  head/include/iconv.h
  head/lib/Makefile
  head/lib/libc/iconv/Symbol.map
  head/lib/libc/iconv/iconv.c
  head/share/mk/bsd.own.mk
  head/tools/build/mk/OptionalObsoleteFiles.inc

Modified: head/ObsoleteFiles.inc
==============================================================================
--- head/ObsoleteFiles.inc	Sun Nov  3 19:02:18 2013	(r257582)
+++ head/ObsoleteFiles.inc	Sun Nov  3 19:04:57 2013	(r257583)
@@ -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
 # 20131103: removal of utxrm(8), use 'utx rm' instead.
 OLD_FILES+=usr/sbin/utxrm
 OLD_FILES+=usr/share/man/man8/utxrm.8.gz

Modified: head/include/Makefile
==============================================================================
--- head/include/Makefile	Sun Nov  3 19:02:18 2013	(r257582)
+++ head/include/Makefile	Sun Nov  3 19:04:57 2013	(r257583)
@@ -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
 	
 

Modified: head/include/iconv.h
==============================================================================
--- head/include/iconv.h	Sun Nov  3 19:02:18 2013	(r257582)
+++ head/include/iconv.h	Sun Nov  3 19:04:57 2013	(r257583)
@@ -40,13 +40,6 @@
 #include <sys/cdefs.h>
 #include <sys/types.h>
 
-#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 **, s
 /*
  * 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;

Modified: head/lib/Makefile
==============================================================================
--- head/lib/Makefile	Sun Nov  3 19:02:18 2013	(r257582)
+++ head/lib/Makefile	Sun Nov  3 19:04:57 2013	(r257583)
@@ -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

Modified: head/lib/libc/iconv/Symbol.map
==============================================================================
--- head/lib/libc/iconv/Symbol.map	Sun Nov  3 19:02:18 2013	(r257582)
+++ head/lib/libc/iconv/Symbol.map	Sun Nov  3 19:04:57 2013	(r257583)
@@ -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 {

Modified: head/lib/libc/iconv/iconv.c
==============================================================================
--- head/lib/libc/iconv/iconv.c	Sun Nov  3 19:02:18 2013	(r257582)
+++ head/lib/libc/iconv/iconv.c	Sun Nov  3 19:04:57 2013	(r257583)
@@ -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;

Modified: head/share/mk/bsd.own.mk
==============================================================================
--- head/share/mk/bsd.own.mk	Sun Nov  3 19:02:18 2013	(r257582)
+++ head/share/mk/bsd.own.mk	Sun Nov  3 19:04:57 2013	(r257583)
@@ -368,7 +368,6 @@ __DEFAULT_NO_OPTIONS = \
     DEBUG_FILES \
     GPL_DTC \
     HESIOD \
-    LIBICONV_COMPAT \
     INSTALL_AS_USER \
     LLDB \
     NAND \
@@ -492,10 +491,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

Modified: head/tools/build/mk/OptionalObsoleteFiles.inc
==============================================================================
--- head/tools/build/mk/OptionalObsoleteFiles.inc	Sun Nov  3 19:02:18 2013	(r257582)
+++ head/tools/build/mk/OptionalObsoleteFiles.inc	Sun Nov  3 19:04:57 2013	(r257583)
@@ -3136,13 +3136,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


More information about the svn-src-head mailing list