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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to