[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[patches] [PATCH] INET_ANL and IDN option groups



The following two patches add 2 new option groups to EGLIBC. The patches allow users to remove libcidn and libanl libraries [which are rarely used].

Joseph, would you please review these patches when you have a minute available? Thank you.

OPTION_EGLIBC_INET_ANL option group controls libanl.so library which provides support for asynchronous name lookups. None of the functions provided by this library are used by EGLIBC internally. This new group separates out a piece of OPTION_EGLIB_INET option group.

OPTION_EGLIBC_IDN option group controls libcidn.so library. This library provides support for international domain names, a feature which is not widely used. When libc needs to process an internal domain name, it dlopen's libcidn.so to gain access to its functions. If libcidn.so is not available, libc will graciously fail to process a request for international domain name.

Tested on i686-linux-gnu (cross-compiled) with and without the option groups selected with no regressions in the test results.

OK to check in?

Regards,

--
Maxim Kuvyrkov
CodeSourcery
maxim@xxxxxxxxxxxxxxxx
(650) 331-3385 x724
2009-11-12  Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>

	OPTION_EGLIBC_IDN

	* option-groups.def (OPTION_EGLIBC_IDN): New option group.
	* option-groups.default (OPTION_EGLIBC_IDN): Set the default.
	* libidn/Makefile (libcidn): Handle OPTION_EGLIBC_IDN.
diff --git a/libidn/Makefile b/libidn/Makefile
index 8f0067c..d5e1e9b 100644
--- a/libidn/Makefile
+++ b/libidn/Makefile
@@ -25,8 +25,8 @@ distribute := punycode.h stringprep.h idna.h iconvme.h
 
 routines = idn-stub
 
-extra-libs		= libcidn
-extra-libs-others	= $(extra-libs)
+extra-libs-$(OPTION_EGLIBC_IDN) = libcidn
+extra-libs-others-y = $(extra-libs-y)
 
 libcidn-routines := punycode toutf8 nfkc stringprep rfc3454 profiles idna \
 		    iconvme
diff --git a/option-groups.def b/option-groups.def
index 26ef4bb..af0afdd 100644
--- a/option-groups.def
+++ b/option-groups.def
@@ -291,6 +291,12 @@ config OPTION_EGLIBC_GETLOGIN
        fall back on 'getlogin' to find the user's login name for tilde
        expansion when the 'HOME' environment variable is not set.
 
+config OPTION_EGLIBC_IDN
+   bool "International domain names support"
+   help
+       This option group includes the `libcidn' library which
+       provides support for international domain names.
+
 config OPTION_EGLIBC_INET
    bool "Networking support"
    help
diff --git a/option-groups.defaults b/option-groups.defaults
index 4653e64..6e0f4bf 100644
--- a/option-groups.defaults
+++ b/option-groups.defaults
@@ -22,6 +22,7 @@ OPTION_EGLIBC_FMTMSG = y
 OPTION_EGLIBC_FSTAB = y
 OPTION_EGLIBC_FTRAVERSE = y
 OPTION_EGLIBC_GETLOGIN = y
+OPTION_EGLIBC_IDN = y
 OPTION_EGLIBC_INET = y
 OPTION_EGLIBC_LIBM = y
 OPTION_EGLIBC_LOCALES = y
2009-11-12  Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>

	OPTION_EGLIBC_INET_ANL

	* option-groups.def (OPTION_EGLIBC_INET_ANL): New option group.
	* option-groups.default (OPTION_EGLIBC_INET_ANL): Set the default.
	* libidn/Makefile (libanl): Handle OPTION_EGLIBC_INET_ANL.
	(ga_test): Don't run without OPTION_EGLIBC_INET_ANL.
diff --git a/option-groups.def b/option-groups.def
index 26ef4bb..378d62d 100644
--- a/option-groups.def
+++ b/option-groups.def
@@ -300,7 +300,6 @@ config OPTION_EGLIBC_INET
 
        - The following libraries are not installed:
 
-         libanl
          libnsl
          libnss_compat
          libnss_dns
@@ -416,6 +415,13 @@ config OPTION_EGLIBC_INET
        use Unix-domain sockets to communicate with the syslog daemon;
        syslog is valuable in non-networked contexts.
 
+config OPTION_EGLIBC_INET_ANL
+   bool "Asynchronous name lookup"
+   depends OPTION_EGLIBC_INET
+   help
+       This option group includes the `libanl' library which
+       provides support for asynchronous name lookup.
+
 config OPTION_EGLIBC_LIBM
    bool "libm (math library)"
    help
diff --git a/option-groups.defaults b/option-groups.defaults
index 4653e64..8145888 100644
--- a/option-groups.defaults
+++ b/option-groups.defaults
@@ -23,6 +23,7 @@ OPTION_EGLIBC_FSTAB = y
 OPTION_EGLIBC_FTRAVERSE = y
 OPTION_EGLIBC_GETLOGIN = y
 OPTION_EGLIBC_INET = y
+OPTION_EGLIBC_INET_ANL = y
 OPTION_EGLIBC_LIBM = y
 OPTION_EGLIBC_LOCALES = y
 OPTION_EGLIBC_LOCALE_CODE = y
diff --git a/resolv/Makefile b/resolv/Makefile
index cc2739e..961f980 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -43,7 +43,7 @@ include ../Makeconfig
 
 extra-libs-$(OPTION_EGLIBC_INET) += libresolv libnss_dns
 ifeq ($(have-thread-library),yes)
-extra-libs-$(OPTION_EGLIBC_INET) += libanl
+extra-libs-$(OPTION_EGLIBC_INET_ANL) += libanl
 routines-$(OPTION_EGLIBC_INET) += gai_sigqueue
 endif
 extra-libs-others-y += $(extra-libs-y)
@@ -64,7 +64,7 @@ ifneq ($(build-static-nss),yes)
 libnss_dns-inhibit-o	= $(filter-out .os,$(object-suffixes))
 endif
 
-ifeq (yesyesy,$(build-shared)$(have-thread-library)$(OPTION_EGLIBC_INET))
+ifeq (yesyesy,$(build-shared)$(have-thread-library)$(OPTION_EGLIBC_INET_ANL))
 tests: $(objpfx)ga_test
 endif