[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[patches] [PATCH] INET_ANL and IDN option groups
- To: patches@xxxxxxxxxx
- Subject: [patches] [PATCH] INET_ANL and IDN option groups
- From: Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>
- Date: Fri, 13 Nov 2009 17:06:21 +0300
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