toolchain/glibc: remove obsolete versions
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48780
This commit is contained in:
		| @@ -366,10 +366,6 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) | |||||||
| 	$(CP) $(TOOLCHAIN_DIR)/lib/libstdc++.so.* $(1)/usr/lib/ | 	$(CP) $(TOOLCHAIN_DIR)/lib/libstdc++.so.* $(1)/usr/lib/ | ||||||
|   endef |   endef | ||||||
|  |  | ||||||
|   use_libutil=$(if $(if $(CONFIG_EGLIBC_USE_VERSION_2_19),$(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),y),libutil) |  | ||||||
|   use_libnsl=$(if $(if $(CONFIG_EGLIBC_USE_VERSION_2_19),$(CONFIG_EGLIBC_OPTION_EGLIBC_NIS),y),libnsl) |  | ||||||
|   use_nsswitch=$(if $(if $(CONFIG_EGLIBC_USE_VERSION_2_19),$(CONFIG_EGLIBC_OPTION_EGLIBC_NSSWITCH),y),libnss_dns libnss_files) |  | ||||||
|  |  | ||||||
|   define Package/glibc/install |   define Package/glibc/install | ||||||
| 	$(CP) ./glibc-files/* $(1)/ | 	$(CP) ./glibc-files/* $(1)/ | ||||||
| 	rm -f $(1)/etc/localtime | 	rm -f $(1)/etc/localtime | ||||||
| @@ -379,7 +375,7 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) | |||||||
| 		$(TOOLCHAIN_DIR)/lib/ld*.so.* \ | 		$(TOOLCHAIN_DIR)/lib/ld*.so.* \ | ||||||
| 		$(TOOLCHAIN_DIR)/lib/ld-$(LIBC_SO_VERSION).so \ | 		$(TOOLCHAIN_DIR)/lib/ld-$(LIBC_SO_VERSION).so \ | ||||||
| 		$(1)/lib/ | 		$(1)/lib/ | ||||||
| 	for file in libanl libc libcidn libcrypt libdl libm $(use_libnsl) $(use_nsswitch) libresolv $(use_libutil); do \ | 	for file in libanl libc libcidn libcrypt libdl libm libnsl libnss_dns libnss_files libresolv libutil; do \ | ||||||
| 		for file in $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so; do \ | 		for file in $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so; do \ | ||||||
| 			if [ -e "$$$$file" ]; then \ | 			if [ -e "$$$$file" ]; then \ | ||||||
| 				$(CP) $$$$file $(1)/lib/; \ | 				$(CP) $$$$file $(1)/lib/; \ | ||||||
|   | |||||||
| @@ -93,12 +93,6 @@ endef | |||||||
|  |  | ||||||
| TARGET_CFLAGS += -DLUA_USE_LINUX $(FPIC) -std=gnu99 | TARGET_CFLAGS += -DLUA_USE_LINUX $(FPIC) -std=gnu99 | ||||||
|  |  | ||||||
| ifneq ($(CONFIG_USE_GLIBC),) |  | ||||||
|   ifeq ($(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),) |  | ||||||
|     TARGET_CFLAGS += -DNO_GETLOGIN |  | ||||||
|   endif |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| define Build/Compile | define Build/Compile | ||||||
| 	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ | 	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ | ||||||
| 		CC="$(TARGET_CROSS)gcc" \ | 		CC="$(TARGET_CROSS)gcc" \ | ||||||
|   | |||||||
| @@ -1,26 +1,12 @@ | |||||||
| choice | choice | ||||||
| 	prompt "(e)glibc version" | 	prompt "(e)glibc version" | ||||||
| 	depends on TOOLCHAINOPTS && USE_GLIBC | 	depends on TOOLCHAINOPTS && USE_GLIBC | ||||||
| 	default EGLIBC_USE_VERSION_2_22 | 	default GLIBC_USE_VERSION_2_22 | ||||||
| 	help | 	help | ||||||
| 	  Select the version of glibc you wish to use. | 	  Select the version of glibc you wish to use. | ||||||
|  |  | ||||||
| 	config EGLIBC_USE_VERSION_2_19 |  | ||||||
| 		bool "eglibc 2.19" |  | ||||||
| 		depends on BROKEN |  | ||||||
| 		select EGLIBC_VERSION_2_19 |  | ||||||
|  |  | ||||||
| 	config GLIBC_USE_VERSION_2_21 |  | ||||||
| 		bool "glibc 2.21" |  | ||||||
| 		select GLIBC_VERSION_2_21 |  | ||||||
|  |  | ||||||
| 	config GLIBC_USE_VERSION_2_22 | 	config GLIBC_USE_VERSION_2_22 | ||||||
| 		bool "glibc 2.22" | 		bool "glibc 2.22" | ||||||
| 		select GLIBC_VERSION_2_22 | 		select GLIBC_VERSION_2_22 | ||||||
|  |  | ||||||
| endchoice | endchoice | ||||||
|  |  | ||||||
| menu "eglibc configuration" |  | ||||||
| 	depends on TOOLCHAINOPTS && USE_GLIBC && EGLIBC_USE_VERSION_2_19 |  | ||||||
| 	source toolchain/glibc/config/Config.in |  | ||||||
| endmenu |  | ||||||
|   | |||||||
| @@ -2,23 +2,10 @@ if USE_GLIBC | |||||||
|  |  | ||||||
| config GLIBC_VERSION | config GLIBC_VERSION | ||||||
| 	string | 	string | ||||||
| 	default "2.19" if EGLIBC_VERSION_2_19 |  | ||||||
| 	default "2.21" if GLIBC_VERSION_2_21 |  | ||||||
| 	default "2.22" if GLIBC_VERSION_2_22 | 	default "2.22" if GLIBC_VERSION_2_22 | ||||||
|  |  | ||||||
| config EGLIBC_VERSION_2_19 |  | ||||||
| 	bool |  | ||||||
|  |  | ||||||
| config GLIBC_VERSION_2_21 |  | ||||||
| 	bool |  | ||||||
|  |  | ||||||
| config GLIBC_VERSION_2_22 | config GLIBC_VERSION_2_22 | ||||||
| 	default y if !TOOLCHAINOPTS | 	default y if !TOOLCHAINOPTS | ||||||
| 	bool | 	bool | ||||||
|  |  | ||||||
| endif | endif | ||||||
|  |  | ||||||
| menu "eglibc configuration" |  | ||||||
| 	depends on !TOOLCHAINOPTS && USE_GLIBC |  | ||||||
| 	source toolchain/glibc/config/Config.in |  | ||||||
| endmenu |  | ||||||
|   | |||||||
| @@ -30,12 +30,6 @@ PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_REVISION) | |||||||
| PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.bz2 | PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.bz2 | ||||||
|  |  | ||||||
| GLIBC_PATH:= | GLIBC_PATH:= | ||||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_19),) |  | ||||||
|   GLIBC_PATH:=libc/ |  | ||||||
|   PKG_SOURCE_PROTO:=svn |  | ||||||
|   PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.bz2 |  | ||||||
|   PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_19 |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| PATCH_DIR:=$(PATH_PREFIX)/patches/$(PKG_VERSION) | PATCH_DIR:=$(PATH_PREFIX)/patches/$(PKG_VERSION) | ||||||
|  |  | ||||||
| @@ -85,11 +79,7 @@ export HOST_CFLAGS := $(HOST_CFLAGS) -idirafter $(CURDIR)/$(PATH_PREFIX)/include | |||||||
|  |  | ||||||
| define Host/SetToolchainInfo | define Host/SetToolchainInfo | ||||||
| 	$(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk | 	$(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk | ||||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_19),) |  | ||||||
| 	$(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.eglibc.org/,' $(TOOLCHAIN_DIR)/info.mk |  | ||||||
| else |  | ||||||
| 	$(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.gnu.org/software/libc/,' $(TOOLCHAIN_DIR)/info.mk | 	$(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.gnu.org/software/libc/,' $(TOOLCHAIN_DIR)/info.mk | ||||||
| endif |  | ||||||
| 	$(SED) 's,^\(LIBC_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | 	$(SED) 's,^\(LIBC_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||||
| 	$(SED) 's,^\(LIBC_SO_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | 	$(SED) 's,^\(LIBC_SO_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||||
| endef | endef | ||||||
| @@ -101,7 +91,6 @@ define Host/Configure | |||||||
| 		touch $(HOST_BUILD_DIR)/.autoconf; \ | 		touch $(HOST_BUILD_DIR)/.autoconf; \ | ||||||
| 	} | 	} | ||||||
| 	mkdir -p $(CUR_BUILD_DIR) | 	mkdir -p $(CUR_BUILD_DIR) | ||||||
| 	grep 'CONFIG_EGLIBC_OPTION_' $(TOPDIR)/.config | sed -e "s,\\(# \)\\?CONFIG_EGLIBC_\\(.*\\),\\1\\2,g" > $(CUR_BUILD_DIR)/option-groups.config |  | ||||||
| 	( cd $(CUR_BUILD_DIR); rm -f config.cache; \ | 	( cd $(CUR_BUILD_DIR); rm -f config.cache; \ | ||||||
| 		$(GLIBC_CONFIGURE) \ | 		$(GLIBC_CONFIGURE) \ | ||||||
| 	); | 	); | ||||||
| @@ -110,9 +99,6 @@ endef | |||||||
| define Host/Prepare | define Host/Prepare | ||||||
| 	$(call Host/Prepare/Default) | 	$(call Host/Prepare/Default) | ||||||
| 	ln -snf $(PKG_SOURCE_SUBDIR) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | 	ln -snf $(PKG_SOURCE_SUBDIR) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_19),) |  | ||||||
| 	$(SED) 's,y,n,' $(HOST_BUILD_DIR)/libc/option-groups.defaults |  | ||||||
| endif |  | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Host/Clean | define Host/Clean | ||||||
|   | |||||||
| @@ -1,903 +0,0 @@ | |||||||
| config EGLIBC_OPTION_EGLIBC_ADVANCED_INET6 |  | ||||||
| 	bool "IPv6 Advanced Sockets API support (RFC3542)" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_INET |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the functions specified by RFC 3542, |  | ||||||
| 	  "Advanced Sockets Application Program Interface (API) for |  | ||||||
| 	  IPv6". |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		inet6_opt_append |  | ||||||
| 		inet6_opt_find |  | ||||||
| 		inet6_opt_finish |  | ||||||
| 		inet6_opt_get_val |  | ||||||
| 		inet6_opt_init |  | ||||||
| 		inet6_option_alloc |  | ||||||
| 		inet6_option_append |  | ||||||
| 		inet6_option_find |  | ||||||
| 		inet6_option_init |  | ||||||
| 		inet6_option_next |  | ||||||
| 		inet6_option_space |  | ||||||
| 		inet6_opt_next |  | ||||||
| 		inet6_opt_set_val |  | ||||||
| 		inet6_rth_add |  | ||||||
| 		inet6_rth_getaddr |  | ||||||
| 		inet6_rth_init |  | ||||||
| 		inet6_rth_reverse |  | ||||||
| 		inet6_rth_segments |  | ||||||
| 		inet6_rth_space |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_BACKTRACE |  | ||||||
| 	bool "Functions for producing backtraces" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for producing a list of |  | ||||||
| 	  the function calls that are currently active in a thread, from |  | ||||||
| 	  within the thread itself.  These functions are often used |  | ||||||
| 	  within signal handlers, to produce diagnostic output. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		backtrace |  | ||||||
| 		backtrace_symbols |  | ||||||
| 		backtrace_symbols_fd |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_BIG_MACROS |  | ||||||
| 	bool "Use extensive inline code" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group specifies whether certain pieces of code |  | ||||||
| 	  should be inlined to achieve maximum speed.  If this option |  | ||||||
| 	  group is not selected, function calls will be used instead, |  | ||||||
| 	  hence reducing the library footprint. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_BSD |  | ||||||
| 	bool "BSD-specific functions, and their compatibility stubs" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions specific to BSD kernels. |  | ||||||
| 	  A number of these functions have stub versions that are also |  | ||||||
| 	  included in libraries built for non-BSD systems for |  | ||||||
| 	  compatibility. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		chflags |  | ||||||
| 		fchflags |  | ||||||
| 		lchmod |  | ||||||
| 		revoke |  | ||||||
| 		setlogin |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_CXX_TESTS |  | ||||||
| 	bool "Tests that link against the standard C++ library." |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_POSIX_WIDE_CHAR_DEVICE_IO |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_LIBM |  | ||||||
| 	help |  | ||||||
| 	  This option group does not include any C library functions; |  | ||||||
| 	  instead, it controls which EGLIBC tests an ordinary 'make |  | ||||||
| 	  tests' runs.  With this group disabled, tests that would |  | ||||||
| 	  normally link against the standard C++ library are not |  | ||||||
| 	  run. |  | ||||||
|  |  | ||||||
| 	  The standard C++ library depends on the math library 'libm' and |  | ||||||
| 	  the wide character I/O functions included in EGLIBC.  If those |  | ||||||
| 	  option groups are disabled, this test must also be disabled. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_CATGETS |  | ||||||
| 	bool "Functions for accessing message catalogs" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_LOCALE_CODE |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for accessing message |  | ||||||
| 	  catalogs: catopen, catclose, and catgets. |  | ||||||
|  |  | ||||||
| 	  This option group depends on the EGLIBC_OPTION_EGLIBC_LOCALE_CODE |  | ||||||
| 	  option group; if you disable that, you must also disable this. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_CHARSETS |  | ||||||
| 	bool "iconv/gconv character set conversion libraries" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
|  |  | ||||||
| 	  This option group includes support for character sets other |  | ||||||
| 	  than ASCII (ANSI_X3.4-1968) and Unicode and ISO-10646 in their |  | ||||||
| 	  various encodings.  This affects both the character sets |  | ||||||
| 	  supported by the wide and multibyte character functions, and |  | ||||||
| 	  those supported by the 'iconv' functions. |  | ||||||
|  |  | ||||||
| 	  With this option group disabled, EGLIBC supports only the |  | ||||||
| 	  following character sets: |  | ||||||
|  |  | ||||||
| 		ANSI_X3.4         - ASCII |  | ||||||
| 		ANSI_X3.4-1968 |  | ||||||
| 		ANSI_X3.4-1986 |  | ||||||
| 		ASCII |  | ||||||
| 		CP367 |  | ||||||
| 		CSASCII |  | ||||||
| 		IBM367 |  | ||||||
| 		ISO-IR-6 |  | ||||||
| 		ISO646-US |  | ||||||
| 		ISO_646.IRV:1991 |  | ||||||
| 		OSF00010020 |  | ||||||
| 		US |  | ||||||
| 		US-ASCII |  | ||||||
|  |  | ||||||
| 		10646-1:1993      - ISO 10646, in big-endian UCS4 form |  | ||||||
| 		10646-1:1993/UCS4 |  | ||||||
| 		CSUCS4 |  | ||||||
| 		ISO-10646 |  | ||||||
| 		ISO-10646/UCS4 |  | ||||||
| 		OSF00010104 |  | ||||||
| 		OSF00010105 |  | ||||||
| 		OSF00010106 |  | ||||||
| 		UCS-4 |  | ||||||
| 		UCS-4BE |  | ||||||
| 		UCS4 |  | ||||||
|  |  | ||||||
| 		UCS-4LE           - ISO 10646, in little-endian UCS4 form |  | ||||||
|  |  | ||||||
| 		ISO-10646/UTF-8   - ISO 10646, in UTF-8 form |  | ||||||
| 		ISO-10646/UTF8 |  | ||||||
| 		ISO-IR-193 |  | ||||||
| 		OSF05010001 |  | ||||||
| 		UTF-8 |  | ||||||
| 		UTF8 |  | ||||||
|  |  | ||||||
| 		ISO-10646/UCS2    - ISO 10646, in target-endian UCS2 form |  | ||||||
| 		OSF00010100 |  | ||||||
| 		OSF00010101 |  | ||||||
| 		OSF00010102 |  | ||||||
| 		UCS-2 |  | ||||||
| 		UCS2 |  | ||||||
|  |  | ||||||
| 		UCS-2BE           - ISO 10646, in big-endian UCS2 form |  | ||||||
| 		UNICODEBIG |  | ||||||
|  |  | ||||||
| 		UCS-2LE           - ISO 10646, in little-endian UCS2 form |  | ||||||
| 		UNICODELITTLE |  | ||||||
|  |  | ||||||
| 		WCHAR_T           - EGLIBC's internal form (target-endian, |  | ||||||
| 							32-bit ISO 10646) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_CRYPT |  | ||||||
| 	bool "Encryption library" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the `libcrypt' library which |  | ||||||
| 	  provides functions for one-way encryption.  Supported |  | ||||||
| 	  encryption algorithms include MD5, SHA-256, SHA-512 and DES. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_CRYPT_UFC |  | ||||||
| 	bool "Ultra fast `crypt' implementation" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_CRYPT |  | ||||||
| 	help |  | ||||||
| 	  This option group provides ultra fast DES-based implementation of |  | ||||||
| 	  the `crypt' function.  When this option group is disabled, |  | ||||||
| 	  (a) the library will not provide the setkey[_r] and encrypt[_r] |  | ||||||
| 	  functions and (b) the crypt[_r] function will return NULL and set the |  | ||||||
| 	  errno to ENOSYS if /salt/ passed does not correspond to either MD5, |  | ||||||
| 	  SHA-256 or SHA-512 algorithm. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_DB_ALIASES |  | ||||||
| 	bool "Functions for accessing the mail aliases database" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for looking up mail |  | ||||||
| 	  aliases in '/etc/aliases' or using nsswitch.  It includes the |  | ||||||
| 	  following functions: |  | ||||||
|  |  | ||||||
| 		endaliasent |  | ||||||
| 		getaliasbyname |  | ||||||
| 		getaliasbyname_r |  | ||||||
| 		getaliasent |  | ||||||
| 		getaliasent_r |  | ||||||
| 		setaliasent |  | ||||||
|  |  | ||||||
| 	  When this option group is disabled, the NSS service libraries |  | ||||||
| 	  also lack support for querying their mail alias tables. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_ENVZ |  | ||||||
| 	bool "Functions for handling envz-style environment vectors." |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group contains functions for creating and operating |  | ||||||
| 	  on envz vectors.  An "envz vector" is a vector of strings in a |  | ||||||
| 	  contiguous block of memory, where each element is a name-value |  | ||||||
| 	  pair, and elements are separated from their neighbors by null |  | ||||||
| 	  characters. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		envz_add        envz_merge  |  | ||||||
| 		envz_entry      envz_remove |  | ||||||
| 		envz_get        envz_strip  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_FCVT |  | ||||||
| 	bool "Functions for converting floating-point numbers to strings" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for converting |  | ||||||
| 	  floating-point numbers to strings. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		ecvt           qecvt |  | ||||||
| 		ecvt_r         qecvt_r |  | ||||||
| 		fcvt           qfcvt |  | ||||||
| 		fcvt_r         qfcvt_r |  | ||||||
| 		gcvt           qgcvt |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_FMTMSG |  | ||||||
| 	bool "Functions for formatting messages" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		addseverity    fmtmsg |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_FSTAB |  | ||||||
| 	bool "Access functions for 'fstab'" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for reading the mount |  | ||||||
| 	  point specification table, '/etc/fstab'.  These functions are |  | ||||||
| 	  not included in the POSIX standard, which provides the |  | ||||||
| 	  'getmntent' family of functions instead. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		endfsent       getfsspec |  | ||||||
| 		getfsent       setfsent |  | ||||||
| 		getfsfile |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_FTRAVERSE |  | ||||||
| 	bool "Functions for traversing file hierarchies" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for traversing file |  | ||||||
| 	  UNIX file hierachies. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		fts_open       ftw |  | ||||||
| 		fts_read       nftw |  | ||||||
| 		fts_children   ftw64 |  | ||||||
| 		fts_set        nftw64 |  | ||||||
| 		fts_close |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_GETLOGIN |  | ||||||
| 	bool "The getlogin function" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_UTMP |  | ||||||
| 	help |  | ||||||
| 	  This function group includes the 'getlogin' and 'getlogin_r' |  | ||||||
| 	  functions, which return the user name associated by the login |  | ||||||
| 	  activity with the current process's controlling terminal. |  | ||||||
|  |  | ||||||
| 	  With this option group disabled, the 'glob' function will not |  | ||||||
| 	  fall back on 'getlogin' to find the user's login name for tilde |  | ||||||
| 	  expansion when the 'HOME' environment variable is not set. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_IDN |  | ||||||
| 	bool "International domain names support" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the `libcidn' library which |  | ||||||
| 	  provides support for international domain names. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_INET |  | ||||||
| 	bool "Networking support" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes networking-specific functions and |  | ||||||
| 	  data.  With EGLIBC_OPTION_EGLIBC_INET disabled, the EGLIBC |  | ||||||
| 	  installation and API changes as follows: |  | ||||||
|  |  | ||||||
| 	  - The following libraries are not installed: |  | ||||||
|  |  | ||||||
| 		libanl |  | ||||||
| 		libnsl |  | ||||||
| 		libnss_compat |  | ||||||
| 		libnss_dns |  | ||||||
| 		libnss_hesiod |  | ||||||
| 		libnss_nis |  | ||||||
| 		libnss_nisplus |  | ||||||
| 		libresolv |  | ||||||
| 		  |  | ||||||
| 	  - The following functions and variables are omitted from libc: |  | ||||||
|  |  | ||||||
| 		authdes_create           hstrerror              svc_fdset |  | ||||||
| 		authdes_getucred         htonl                  svc_getreq |  | ||||||
| 		authdes_pk_create        htons                  svc_getreq_common |  | ||||||
| 		authnone_create          if_freenameindex       svc_getreq_poll |  | ||||||
| 		authunix_create          if_indextoname         svc_getreqset |  | ||||||
| 		authunix_create_default  if_nameindex           svc_max_pollfd |  | ||||||
| 		bindresvport             if_nametoindex         svc_pollfd |  | ||||||
| 		callrpc                  in6addr_any            svcraw_create |  | ||||||
| 		cbc_crypt                in6addr_loopback       svc_register |  | ||||||
| 		clnt_broadcast           inet6_opt_append       svc_run |  | ||||||
| 		clnt_create              inet6_opt_find         svc_sendreply |  | ||||||
| 		clnt_pcreateerror        inet6_opt_finish       svctcp_create |  | ||||||
| 		clnt_perrno              inet6_opt_get_val      svcudp_bufcreate |  | ||||||
| 		clnt_perror              inet6_opt_init         svcudp_create |  | ||||||
| 		clntraw_create           inet6_option_alloc     svcudp_enablecache |  | ||||||
| 		clnt_spcreateerror       inet6_option_append    svcunix_create |  | ||||||
| 		clnt_sperrno             inet6_option_find      svcunixfd_create |  | ||||||
| 		clnt_sperror             inet6_option_init      svc_unregister |  | ||||||
| 		clnttcp_create           inet6_option_next      user2netname |  | ||||||
| 		clntudp_bufcreate        inet6_option_space     xdecrypt |  | ||||||
| 		clntudp_create           inet6_opt_next         xdr_accepted_reply |  | ||||||
| 		clntunix_create          inet6_opt_set_val      xdr_array |  | ||||||
| 		des_setparity            inet6_rth_add          xdr_authdes_cred |  | ||||||
| 		ecb_crypt                inet6_rth_getaddr      xdr_authdes_verf |  | ||||||
| 		endaliasent              inet6_rth_init         xdr_authunix_parms |  | ||||||
| 		endhostent               inet6_rth_reverse      xdr_bool |  | ||||||
| 		endnetent                inet6_rth_segments     xdr_bytes |  | ||||||
| 		endnetgrent              inet6_rth_space        xdr_callhdr |  | ||||||
| 		endprotoent              inet_addr              xdr_callmsg |  | ||||||
| 		endrpcent                inet_aton              xdr_char |  | ||||||
| 		endservent               inet_lnaof             xdr_cryptkeyarg |  | ||||||
| 		ether_aton               inet_makeaddr          xdr_cryptkeyarg2 |  | ||||||
| 		ether_aton_r             inet_netof             xdr_cryptkeyres |  | ||||||
| 		ether_hostton            inet_network           xdr_des_block |  | ||||||
| 		ether_line               inet_nsap_addr         xdr_double |  | ||||||
| 		ether_ntoa               inet_nsap_ntoa         xdr_enum |  | ||||||
| 		ether_ntoa_r             inet_ntoa              xdr_float |  | ||||||
| 		ether_ntohost            inet_ntop              xdr_free |  | ||||||
| 		freeaddrinfo             inet_pton              xdr_getcredres |  | ||||||
| 		freeifaddrs              innetgr                xdr_hyper |  | ||||||
| 		gai_strerror             iruserok               xdr_int |  | ||||||
| 		getaddrinfo              iruserok_af            xdr_int16_t |  | ||||||
| 		getaliasbyname           key_decryptsession     xdr_int32_t |  | ||||||
| 		getaliasbyname_r         key_decryptsession_pk  xdr_int64_t |  | ||||||
| 		getaliasent              key_encryptsession     xdr_int8_t |  | ||||||
| 		getaliasent_r            key_encryptsession_pk  xdr_keybuf |  | ||||||
| 		gethostbyaddr            key_gendes             xdr_key_netstarg |  | ||||||
| 		gethostbyaddr_r          key_get_conv           xdr_key_netstres |  | ||||||
| 		gethostbyname            key_secretkey_is_set   xdr_keystatus |  | ||||||
| 		gethostbyname2           key_setnet             xdr_long |  | ||||||
| 		gethostbyname2_r         key_setsecret          xdr_longlong_t |  | ||||||
| 		gethostbyname_r          netname2host           xdrmem_create |  | ||||||
| 		gethostent               netname2user           xdr_netnamestr |  | ||||||
| 		gethostent_r             ntohl                  xdr_netobj |  | ||||||
| 		getifaddrs               ntohs                  xdr_opaque |  | ||||||
| 		getipv4sourcefilter      passwd2des             xdr_opaque_auth |  | ||||||
| 		get_myaddress            pmap_getmaps           xdr_pmap |  | ||||||
| 		getnameinfo              pmap_getport           xdr_pmaplist |  | ||||||
| 		getnetbyaddr             pmap_rmtcall           xdr_pointer |  | ||||||
| 		getnetbyaddr_r           pmap_set               xdr_quad_t |  | ||||||
| 		getnetbyname             pmap_unset             xdrrec_create |  | ||||||
| 		getnetbyname_r           rcmd                   xdrrec_endofrecord |  | ||||||
| 		getnetent                rcmd_af                xdrrec_eof |  | ||||||
| 		getnetent_r              registerrpc            xdrrec_skiprecord |  | ||||||
| 		getnetgrent              res_init               xdr_reference |  | ||||||
| 		getnetgrent_r            rexec                  xdr_rejected_reply |  | ||||||
| 		getnetname               rexec_af               xdr_replymsg |  | ||||||
| 		getprotobyname           rexecoptions           xdr_rmtcall_args |  | ||||||
| 		getprotobyname_r         rpc_createerr          xdr_rmtcallres |  | ||||||
| 		getprotobynumber         rresvport              xdr_short |  | ||||||
| 		getprotobynumber_r       rresvport_af           xdr_sizeof |  | ||||||
| 		getprotoent              rtime                  xdrstdio_create |  | ||||||
| 		getprotoent_r            ruserok                xdr_string |  | ||||||
| 		getpublickey             ruserok_af             xdr_u_char |  | ||||||
| 		getrpcbyname             ruserpass              xdr_u_hyper |  | ||||||
| 		getrpcbyname_r           setaliasent            xdr_u_int |  | ||||||
| 		getrpcbynumber           sethostent             xdr_uint16_t |  | ||||||
| 		getrpcbynumber_r         setipv4sourcefilter    xdr_uint32_t |  | ||||||
| 		getrpcent                setnetent              xdr_uint64_t |  | ||||||
| 		getrpcent_r              setnetgrent            xdr_uint8_t |  | ||||||
| 		getrpcport               setprotoent            xdr_u_long |  | ||||||
| 		getsecretkey             setrpcent              xdr_u_longlong_t |  | ||||||
| 		getservbyname            setservent             xdr_union |  | ||||||
| 		getservbyname_r          setsourcefilter        xdr_unixcred |  | ||||||
| 		getservbyport            svcauthdes_stats       xdr_u_quad_t |  | ||||||
| 		getservbyport_r          svcerr_auth            xdr_u_short |  | ||||||
| 		getservent               svcerr_decode          xdr_vector |  | ||||||
| 		getservent_r             svcerr_noproc          xdr_void |  | ||||||
| 		getsourcefilter          svcerr_noprog          xdr_wrapstring |  | ||||||
| 		h_errlist                svcerr_progvers        xencrypt |  | ||||||
| 		h_errno                  svcerr_systemerr       xprt_register |  | ||||||
| 		herror                   svcerr_weakauth        xprt_unregister |  | ||||||
| 		h_nerr                   svc_exit |  | ||||||
| 		host2netname             svcfd_create |  | ||||||
|  |  | ||||||
| 	  - The rpcgen, nscd, and rpcinfo commands are not installed. |  | ||||||
|  |  | ||||||
| 	  - The 'rpc' file (a text file listing RPC services) is not installed. |  | ||||||
|  |  | ||||||
| 	  Socket-related system calls do not fall in this option group, |  | ||||||
| 	  because many are also used for other inter-process |  | ||||||
| 	  communication mechanisms.  For example, the 'syslog' routines |  | ||||||
| 	  use Unix-domain sockets to communicate with the syslog daemon; |  | ||||||
| 	  syslog is valuable in non-networked contexts. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_INET_ANL |  | ||||||
| 	bool "Asynchronous name lookup" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_INET |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the `libanl' library which |  | ||||||
| 	  provides support for asynchronous name lookup. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_LIBM |  | ||||||
| 	bool "libm (math library)" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the 'libm' library, containing |  | ||||||
| 	  mathematical functions.  If this option group is omitted, then |  | ||||||
| 	  an EGLIBC installation does not include shared or unshared versions |  | ||||||
| 	  of the math library. |  | ||||||
|  |  | ||||||
| 	  Note that this does not remove all floating-point related |  | ||||||
| 	  functionality from EGLIBC; for example, 'printf' and 'scanf' |  | ||||||
| 	  can still print and read floating-point values with this option |  | ||||||
| 	  group disabled. |  | ||||||
|  |  | ||||||
| 	  Note that the ISO Standard C++ library 'libstdc++' depends on |  | ||||||
| 	  EGLIBC's math library 'libm'.  If you disable this option |  | ||||||
| 	  group, you will not be able to build 'libstdc++' against the |  | ||||||
| 	  resulting EGLIBC installation. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_LIBM_BIG |  | ||||||
| 	bool "Math library size" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group enables default configuration of the math library. |  | ||||||
| 	  Not selecting this option group removes most of the extended and |  | ||||||
| 	  double precision math functions and replaces them with wrappers |  | ||||||
| 	  to the single precision couterparts. |  | ||||||
| 	  Doing so greatly degrades quality of calculations carried |  | ||||||
| 	  out by the functions of the math library, but also significantly |  | ||||||
| 	  reduces the size of the libm. |  | ||||||
| 	  This option group is useful for systems that do not rely on precise |  | ||||||
| 	  floating point math. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_LOCALES |  | ||||||
| 	bool "Locale definitions" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes all locale definitions other than |  | ||||||
| 	  that for the "C" locale.  If this option group is omitted, then |  | ||||||
| 	  only the "C" locale is supported. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_LOCALE_CODE |  | ||||||
| 	bool "Locale functions" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_POSIX_C_LANG_WIDE_CHAR |  | ||||||
| 	help |  | ||||||
| 	  This option group includes locale support functions, programs, |  | ||||||
| 	  and libraries.  With EGLIBC_OPTION_EGLIBC_LOCALE_CODE disabled, |  | ||||||
| 	  EGLIBC supports only the 'C' locale (also known as 'POSIX'), |  | ||||||
| 	  and ignores the settings of the 'LANG' and 'LC_*' environment |  | ||||||
| 	  variables. |  | ||||||
|  |  | ||||||
| 	  With EGLIBC_OPTION_EGLIBC_LOCALE_CODE disabled, the following |  | ||||||
| 	  functions are omitted from libc: |  | ||||||
|  |  | ||||||
| 		duplocale   localeconv  nl_langinfo    rpmatch  strfmon_l |  | ||||||
| 		freelocale  newlocale   nl_langinfo_l  strfmon  uselocale |  | ||||||
|  |  | ||||||
| 	  Furthermore, only the LC_CTYPE and LC_TIME categories of the |  | ||||||
| 	  standard "C" locale are available. |  | ||||||
|  |  | ||||||
| 	  The EGLIBC_OPTION_EGLIBC_CATGETS option group depends on this option |  | ||||||
| 	  group; if you disable EGLIBC_OPTION_EGLIBC_LOCALE_CODE, you must also |  | ||||||
| 	  disable EGLIBC_OPTION_EGLIBC_CATGETS. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_MEMUSAGE |  | ||||||
| 	bool "Memory profiling library" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the `libmemusage' library and |  | ||||||
| 	  the `memusage' and `memusagestat' utilities. |  | ||||||
| 	  These components provide memory profiling functions. |  | ||||||
|  |  | ||||||
| 	  EGLIBC_OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE |  | ||||||
|  |  | ||||||
| 	  Libmemusage library buffers the profiling data in memory |  | ||||||
| 	  before writing it out to disk.  By default, the library |  | ||||||
| 	  allocates 1.5M buffer, which can be substantial for some |  | ||||||
| 	  systems.  EGLIBC_OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option |  | ||||||
| 	  allows to change the default buffer size.  It specifies |  | ||||||
| 	  the number of entries the buffer should have. |  | ||||||
| 	  On most architectures one buffer entry amounts to 48 bytes, |  | ||||||
| 	  so setting this option to the value of 512 will reduce the size of |  | ||||||
| 	  the memory buffer to 24K. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_NIS |  | ||||||
| 	bool "Support for NIS, NIS+, and the special 'compat' services." |  | ||||||
| 	default n |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_INET |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_SUNRPC |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the NIS, NIS+, and 'compat' Name |  | ||||||
| 	  Service Switch service libraries.  When it is disabled, those |  | ||||||
| 	  services libraries are not installed; you should remove any |  | ||||||
| 	  references to them from your 'nsswitch.conf' file. |  | ||||||
|  |  | ||||||
| 	  This option group depends on the EGLIBC_OPTION_EGLIBC_INET option |  | ||||||
| 	  group; you must enable that to enable this option group. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_NSSWITCH |  | ||||||
| 	bool "Name service switch (nsswitch) support" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_INET |  | ||||||
| 	help |  | ||||||
|  |  | ||||||
| 	  This option group includes support for the 'nsswitch' facility. |  | ||||||
| 	  With this option group enabled, all EGLIBC functions for |  | ||||||
| 	  accessing various system databases (passwords and groups; |  | ||||||
| 	  networking; aliases; public keys; and so on) consult the |  | ||||||
| 	  '/etc/nsswitch.conf' configuration file to decide how to handle |  | ||||||
| 	  queries. |  | ||||||
|  |  | ||||||
| 	  With this option group disabled, EGLIBC uses a fixed list of |  | ||||||
| 	  services to satisfy queries on each database, as requested by |  | ||||||
| 	  configuration files specified when EGLIBC is built.  Your |  | ||||||
| 	  'option-groups.config' file must set the following two |  | ||||||
| 	  variables: |  | ||||||
|  |  | ||||||
| 	  EGLIBC_OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG |  | ||||||
|  |  | ||||||
| 		Set this to the name of a file whose contents observe the |  | ||||||
| 		same syntax as an ordinary '/etc/nsswitch.conf' file.  The |  | ||||||
| 		EGLIBC build process parses this file just as EGLIBC would |  | ||||||
| 		at run time if EGLIBC_NSSWITCH were enabled, and |  | ||||||
| 		produces a C library that uses the nsswitch service |  | ||||||
| 		libraries to search for database entries as this file |  | ||||||
| 		specifies, instead of consulting '/etc/nsswitch.conf' at run |  | ||||||
| 		time. |  | ||||||
|  |  | ||||||
| 		This should be an absolute filename.  The EGLIBC build |  | ||||||
| 		process may use it from several different working |  | ||||||
| 		directories.  It may include references to Makefile |  | ||||||
| 		variables like 'common-objpfx' (the top of the build tree, |  | ||||||
| 		with a trailing slash), or '..' (the top of the source tree, |  | ||||||
| 		with a trailing slash). |  | ||||||
|  |  | ||||||
| 		The EGLIBC source tree includes a sample configuration file |  | ||||||
| 		named 'nss/fixed-nsswitch.conf'; for simple configurations, |  | ||||||
| 		you will probably want to delete references to databases not |  | ||||||
| 		needed on your system. |  | ||||||
|  |  | ||||||
| 	  EGLIBC_OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS |  | ||||||
|  |  | ||||||
| 		The EGLIBC build process uses this file to decide which |  | ||||||
| 		functions to make available from which service libraries. |  | ||||||
| 		The file 'nss/fixed-nsswitch.functions' serves as a sample |  | ||||||
| 		configuration file for this setting, and explains its syntax |  | ||||||
| 		and meaning in more detail. |  | ||||||
|  |  | ||||||
| 		This should be an absolute file name.  The EGLIBC build |  | ||||||
| 		process may use it from several different working |  | ||||||
| 		directories.  It may include references to Makefile |  | ||||||
| 		variables like 'common-objpfx' (the top of the build tree, |  | ||||||
| 		with a trailing slash), or '..' (the top of the source tree, |  | ||||||
| 		with a trailing slash). |  | ||||||
|  |  | ||||||
| 		Be sure to mention each function in each service you wish to |  | ||||||
| 		use.  If you do not mention a service's function here, the |  | ||||||
| 		EGLIBC database access functions will not find it, even if |  | ||||||
| 		it is listed in the EGLIBC_OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG |  | ||||||
| 		file. |  | ||||||
|  |  | ||||||
| 	  In this arrangement, EGLIBC will not use the 'dlopen' and |  | ||||||
| 	  'dlsym' functions to find database access functions.  Instead, |  | ||||||
| 	  libc hard-codes references to the service libraries' database |  | ||||||
| 	  access functions.  You must explicitly link your program |  | ||||||
| 	  against the name service libraries (those whose names start |  | ||||||
| 	  with 'libnss_', in the sysroot's '/lib' directory) whose |  | ||||||
| 	  functions you intend to use.  This arrangement helps |  | ||||||
| 	  system-wide static analysis tools decide which functions a |  | ||||||
| 	  system actually uses. |  | ||||||
|  |  | ||||||
| 	  Note that some nsswitch service libraries require other option |  | ||||||
| 	  groups to be enabled; for example, the EGLIBC_OPTION_EGLIBC_INET |  | ||||||
| 	  option group must be enabled to use the 'libnss_dns.so.2' |  | ||||||
| 	  service library, which uses the Domain Name System network |  | ||||||
| 	  protocol to answer queries. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_RCMD |  | ||||||
| 	bool "Support for 'rcmd' and related library functions" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_INET |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for running commands on |  | ||||||
| 	  remote machines via the 'rsh' protocol, and doing authentication |  | ||||||
| 	  related to those functions.  This also includes functions that |  | ||||||
| 	  use the 'rexec' protocol. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		rcmd            ruserok |  | ||||||
| 		rcmd_af         ruserok_af |  | ||||||
| 		rexec           iruserok |  | ||||||
| 		rexec_af        iruserok_af |  | ||||||
| 		rresvport       ruserpass |  | ||||||
| 		rresvport_af |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_RTLD_DEBUG |  | ||||||
| 	bool "Runtime linker debug print outs" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group enables debug output of the runtime linker |  | ||||||
| 	  which is activated via LD_DEBUG and LD_TRACE_PRELINKING |  | ||||||
| 	  environment variables.  Disabling this option group yields |  | ||||||
| 	  a smaller runtime linker binary. |  | ||||||
| 	  BEWARE: Disabling this option group is likely to break |  | ||||||
| 	  the `ldd' utility which may also be used by the prelinker. |  | ||||||
| 	  In particular, the `--unused' ldd option will not work correctly. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_SPAWN |  | ||||||
| 	bool "Support for POSIX posix_spawn functions" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the POSIX functions for executing |  | ||||||
| 	  programs in child processes without using 'fork' or 'vfork'. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		posix_spawn |  | ||||||
| 		posix_spawnattr_destroy |  | ||||||
| 		posix_spawnattr_getflags |  | ||||||
| 		posix_spawnattr_getpgroup |  | ||||||
| 		posix_spawnattr_getschedparam |  | ||||||
| 		posix_spawnattr_getschedpolicy |  | ||||||
| 		posix_spawnattr_getsigdefault |  | ||||||
| 		posix_spawnattr_getsigmask |  | ||||||
| 		posix_spawnattr_init |  | ||||||
| 		posix_spawnattr_setflags |  | ||||||
| 		posix_spawnattr_setpgroup |  | ||||||
| 		posix_spawnattr_setschedparam |  | ||||||
| 		posix_spawnattr_setschedpolicy |  | ||||||
| 		posix_spawnattr_setsigdefault |  | ||||||
| 		posix_spawnattr_setsigmask |  | ||||||
| 		posix_spawn_file_actions_addclose |  | ||||||
| 		posix_spawn_file_actions_adddup2 |  | ||||||
| 		posix_spawn_file_actions_addopen |  | ||||||
| 		posix_spawn_file_actions_destroy |  | ||||||
| 		posix_spawn_file_actions_init |  | ||||||
| 		posix_spawnp |  | ||||||
|  |  | ||||||
| 	  This option group also provides the ability for the iconv, |  | ||||||
| 	  localedef, and locale programs to operate transparently on |  | ||||||
| 	  compressed charset definitions.  When this option group is |  | ||||||
| 	  disabled, those programs will only operate on uncompressed |  | ||||||
| 	  charmap files. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_STREAMS |  | ||||||
| 	bool "Support for accessing STREAMS." |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for reading and writing |  | ||||||
| 	  messages to and from STREAMS.  The STREAMS interface provides a |  | ||||||
| 	  uniform mechanism for implementing networking services and other |  | ||||||
| 	  character-based I/O.  (STREAMS are not to be confused with |  | ||||||
| 	  <stdio.h> FILE objects, also called 'streams'.) |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		getmsg          putpmsg |  | ||||||
| 		getpmsg         fattach |  | ||||||
| 		isastream       fdetach |  | ||||||
| 		putmsg |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_SUNRPC |  | ||||||
| 	bool "Support for the Sun 'RPC' protocol." |  | ||||||
| 	default n |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_INET |  | ||||||
| 	help |  | ||||||
| 	  This option group includes support for the Sun RPC protocols, |  | ||||||
| 	  including the 'rpcgen' and 'rpcinfo' programs. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_UTMP |  | ||||||
| 	bool "Older access functions for 'utmp' login records" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the older 'utent' family of |  | ||||||
| 	  functions for accessing user login records in the 'utmp' file. |  | ||||||
| 	  POSIX omits these functions in favor of the 'utxent' family, |  | ||||||
| 	  and they are obsolete on systems other than Linux. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		endutent |  | ||||||
| 		getutent |  | ||||||
| 		getutent_r |  | ||||||
| 		getutid |  | ||||||
| 		getutid_r |  | ||||||
| 		getutline |  | ||||||
| 		getutline_r |  | ||||||
| 		logwtmp |  | ||||||
| 		pututline |  | ||||||
| 		setutent |  | ||||||
| 		updwtmp |  | ||||||
| 		utmpname |  | ||||||
|  |  | ||||||
| 	  This option group includes the following libraries: |  | ||||||
|  |  | ||||||
| 		libutil.so (and libutil.a) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_UTMPX |  | ||||||
| 	bool "POSIX access functions for 'utmp' login records" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_EGLIBC_UTMP     |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the POSIX functions for reading and |  | ||||||
| 	  writing user login records in the 'utmp' file (usually |  | ||||||
| 	  '/var/run/utmp').  The POSIX functions operate on 'struct |  | ||||||
| 	  utmpx' structures, as opposed to the family of older 'utent' |  | ||||||
| 	  functions, which operate on 'struct utmp' structures. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		endutxent |  | ||||||
| 		getutmp |  | ||||||
| 		getutmpx |  | ||||||
| 		getutxent |  | ||||||
| 		getutxid |  | ||||||
| 		getutxline |  | ||||||
| 		pututxline |  | ||||||
| 		setutxent |  | ||||||
| 		updwtmpx |  | ||||||
| 		utmpxname |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_EGLIBC_WORDEXP |  | ||||||
| 	bool "Shell-style word expansion" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the 'wordexp' function for |  | ||||||
| 	  performing word expansion in the manner of the shell, and the |  | ||||||
| 	  accompanying 'wordfree' function. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_POSIX_C_LANG_WIDE_CHAR |  | ||||||
| 	bool "ISO C library wide character functions, excluding I/O" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the functions defined by the ISO C |  | ||||||
| 	  standard for working with wide and multibyte characters in |  | ||||||
| 	  memory.  Functions for reading and writing wide and multibyte |  | ||||||
| 	  characters from and to files call in the |  | ||||||
| 	  EGLIBC_OPTION_POSIX_WIDE_CHAR_DEVICE_IO option group. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		btowc         mbsinit       wcscspn       wcstoll |  | ||||||
| 		iswalnum      mbsrtowcs     wcsftime      wcstombs |  | ||||||
| 		iswalpha      mbstowcs      wcslen        wcstoul |  | ||||||
| 		iswblank      mbtowc        wcsncat       wcstoull |  | ||||||
| 		iswcntrl      swprintf      wcsncmp       wcstoumax |  | ||||||
| 		iswctype      swscanf       wcsncpy       wcsxfrm |  | ||||||
| 		iswdigit      towctrans     wcspbrk       wctob |  | ||||||
| 		iswgraph      towlower      wcsrchr       wctomb |  | ||||||
| 		iswlower      towupper      wcsrtombs     wctrans |  | ||||||
| 		iswprint      vswprintf     wcsspn        wctype |  | ||||||
| 		iswpunct      vswscanf      wcsstr        wmemchr |  | ||||||
| 		iswspace      wcrtomb       wcstod        wmemcmp |  | ||||||
| 		iswupper      wcscat        wcstof        wmemcpy |  | ||||||
| 		iswxdigit     wcschr        wcstoimax     wmemmove |  | ||||||
| 		mblen         wcscmp        wcstok        wmemset |  | ||||||
| 		mbrlen        wcscoll       wcstol |  | ||||||
| 		mbrtowc       wcscpy        wcstold |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_POSIX_REGEXP |  | ||||||
| 	bool "Regular expressions" |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  This option group includes the POSIX regular expression |  | ||||||
| 	  functions, and the associated non-POSIX extensions and |  | ||||||
| 	  compatibility functions. |  | ||||||
|  |  | ||||||
| 	  With EGLIBC_OPTION_POSIX_REGEXP disabled, the following functions are |  | ||||||
| 	  omitted from libc: |  | ||||||
|  |  | ||||||
| 		re_comp                 re_max_failures         regcomp |  | ||||||
| 		re_compile_fastmap      re_search               regerror |  | ||||||
| 		re_compile_pattern      re_search_2             regexec |  | ||||||
| 		re_exec                 re_set_registers        regfree |  | ||||||
| 		re_match                re_set_syntax           rpmatch |  | ||||||
| 		re_match_2              re_syntax_options |  | ||||||
|  |  | ||||||
| 	  Furthermore, the compatibility regexp interface defined in the |  | ||||||
| 	  <regexp.h> header file, 'compile', 'step', and 'advance', is |  | ||||||
| 	  omitted. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_POSIX_REGEXP_GLIBC |  | ||||||
| 	bool "Regular expressions from GLIBC" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_POSIX_REGEXP |  | ||||||
| 	help |  | ||||||
| 	  This option group specifies which regular expression |  | ||||||
| 	  library to use.  The choice is between regex |  | ||||||
| 	  implementation from GLIBC and regex implementation from |  | ||||||
| 	  libiberty.  The GLIBC variant is fully POSIX conformant and |  | ||||||
| 	  optimized for speed; regex from libiberty is more than twice |  | ||||||
| 	  as small while still is enough for most practical purposes. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| config EGLIBC_OPTION_POSIX_WIDE_CHAR_DEVICE_IO |  | ||||||
| 	bool "Input and output functions for wide characters" |  | ||||||
| 	default y |  | ||||||
| 	select EGLIBC_OPTION_POSIX_C_LANG_WIDE_CHAR |  | ||||||
| 	help |  | ||||||
| 	  This option group includes functions for reading and writing |  | ||||||
| 	  wide characters to and from <stdio.h> streams. |  | ||||||
|  |  | ||||||
| 	  This option group includes the following functions: |  | ||||||
|  |  | ||||||
| 		fgetwc        fwprintf      putwchar      vwscanf |  | ||||||
| 		fgetws        fwscanf       ungetwc       wprintf |  | ||||||
| 		fputwc        getwc         vfwprintf     wscanf |  | ||||||
| 		fputws        getwchar      vfwscanf |  | ||||||
| 		fwide         putwc         vwprintf |  | ||||||
|  |  | ||||||
| 	  This option group further includes the following unlocked |  | ||||||
| 	  variants of the above functions: |  | ||||||
|  |  | ||||||
| 		fgetwc_unlocked           getwc_unlocked |  | ||||||
| 		fgetws_unlocked           getwchar_unlocked |  | ||||||
| 		fputwc_unlocked           putwc_unlocked |  | ||||||
| 		fputws_unlocked           putwchar_unlocked |  | ||||||
| 					 |  | ||||||
| 	  Note that the GNU standard C++ library, 'libstdc++.so', uses |  | ||||||
| 	  some of these functions; you will not be able to link or run |  | ||||||
| 	  C++ programs if you disable this option group. |  | ||||||
|  |  | ||||||
| 	  This option group also affects the behavior of the following |  | ||||||
| 	  functions: |  | ||||||
|  |  | ||||||
| 		fdopen |  | ||||||
| 		fopen |  | ||||||
| 		fopen64 |  | ||||||
| 		freopen |  | ||||||
| 		freopen64 |  | ||||||
|  |  | ||||||
| 	  These functions all take an OPENTYPE parameter which may |  | ||||||
| 	  contain a string of the form ",ccs=CHARSET", indicating that |  | ||||||
| 	  the underlying file uses the character set named CHARSET. |  | ||||||
| 	  This produces a wide-oriented stream, which is only useful |  | ||||||
| 	  when the functions included in this option group are present. |  | ||||||
| 	  If the user attempts to open a file specifying a character set |  | ||||||
| 	  in the OPENTYPE parameter, and EGLIBC was built with this |  | ||||||
| 	  option group disabled, the function returns NULL, and sets |  | ||||||
| 	  errno to EINVAL. |  | ||||||
| @@ -1,48 +0,0 @@ | |||||||
| --- a/libc/aclocal.m4 |  | ||||||
| +++ b/libc/aclocal.m4 |  | ||||||
| @@ -88,6 +88,12 @@ |  | ||||||
|  fi |  | ||||||
|  rm -fr contest*]) |  | ||||||
|   |  | ||||||
| +dnl Test a compiler option or options with an empty input file. |  | ||||||
| +dnl LIBC_TRY_CC_OPTION([options], [action-if-true], [action-if-false]) |  | ||||||
| +AC_DEFUN([LIBC_TRY_CC_OPTION], |  | ||||||
| +[AS_IF([AC_TRY_COMMAND([${CC-cc} $1 -xc /dev/null -S -o /dev/null])], |  | ||||||
| + [$2], [$3])]) |  | ||||||
| + |  | ||||||
|  AC_DEFUN([LIBC_PROG_BINUTILS], |  | ||||||
|  [# Was a --with-binutils option given? |  | ||||||
|  if test -n "$path_binutils"; then |  | ||||||
| --- a/libc/configure |  | ||||||
| +++ b/libc/configure |  | ||||||
| @@ -7404,7 +7404,14 @@ |  | ||||||
|  else |  | ||||||
|    libc_cv_cc_nofma= |  | ||||||
|  for opt in -ffp-contract=off -mno-fused-madd; do |  | ||||||
| -  LIBC_TRY_CC_OPTION($opt, libc_cv_cc_nofma=$opt; break) |  | ||||||
| +  if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null' |  | ||||||
| +  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 |  | ||||||
| +  (eval $ac_try) 2>&5 |  | ||||||
| +  ac_status=$? |  | ||||||
| +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |  | ||||||
| +  test $ac_status = 0; }; }; then : |  | ||||||
| +  libc_cv_cc_nofma=$opt; break |  | ||||||
| +fi |  | ||||||
|  done |  | ||||||
|  fi |  | ||||||
|  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_nofma" >&5 |  | ||||||
| --- a/libc/configure.in |  | ||||||
| +++ b/libc/configure.in |  | ||||||
| @@ -2238,10 +2238,9 @@ |  | ||||||
|  		 libc_cv_cc_submachine, [dnl |  | ||||||
|    libc_cv_cc_submachine=no |  | ||||||
|    for opt in "-march=$submachine" "-mcpu=$submachine"; do |  | ||||||
| -    if AC_TRY_COMMAND([${CC-cc} $opt -xc /dev/null -S -o /dev/null]); then |  | ||||||
| +    LIBC_TRY_CC_OPTION([$opt], [ |  | ||||||
|        libc_cv_cc_submachine="$opt" |  | ||||||
| -      break |  | ||||||
| -    fi |  | ||||||
| +      break], []) |  | ||||||
|    done]) |  | ||||||
|    if test "x$libc_cv_cc_submachine" = xno; then |  | ||||||
|      AC_MSG_ERROR([${CC-cc} does not support $submachine]) |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| --- a/libc/configure.in |  | ||||||
| +++ b/libc/configure.in |  | ||||||
| @@ -1037,7 +1037,7 @@ |  | ||||||
|    critic_missing="$critic_missing gcc") |  | ||||||
|  AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version, |  | ||||||
|    [GNU Make[^0-9]*\([0-9][0-9.]*\)], |  | ||||||
| -  [3.79* | 3.[89]*], critic_missing="$critic_missing make") |  | ||||||
| +  [3.79* | 3.[89]* | 4.* ], critic_missing="$critic_missing make") |  | ||||||
|   |  | ||||||
|  AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version, |  | ||||||
|    [GNU gettext.* \([0-9]*\.[0-9.]*\)], |  | ||||||
| @@ -1,110 +0,0 @@ | |||||||
| partially revert commit 4bff6e0175ed195871f4e01cc4c4c33274b8f6e3 - caused segmentation faults in dlopen |  | ||||||
|  |  | ||||||
| References: |  | ||||||
| http://comments.gmane.org/gmane.comp.lib.glibc.user/1227 |  | ||||||
| http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html |  | ||||||
|  |  | ||||||
| diff --git a/libc/elf/dl-close.c b/libc/elf/dl-close.c |  | ||||||
| index 4b17bf8..733cc1b 100644 |  | ||||||
| --- a/libc/elf/dl-close.c |  | ||||||
| +++ b/libc/elf/dl-close.c |  | ||||||
| @@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map) |  | ||||||
|    if (map->l_direct_opencount > 0 || map->l_type != lt_loaded |  | ||||||
|        || dl_close_state != not_pending) |  | ||||||
|      { |  | ||||||
| -      if (map->l_direct_opencount == 0) |  | ||||||
| -	{ |  | ||||||
| -	  if (map->l_type == lt_loaded) |  | ||||||
| -	    dl_close_state = rerun; |  | ||||||
| -	  else if (map->l_type == lt_library) |  | ||||||
| -	    { |  | ||||||
| -	      struct link_map **oldp = map->l_initfini; |  | ||||||
| -	      map->l_initfini = map->l_orig_initfini; |  | ||||||
| -	      _dl_scope_free (oldp); |  | ||||||
| -	    } |  | ||||||
| -	} |  | ||||||
| +      if (map->l_direct_opencount == 0 && map->l_type == lt_loaded) |  | ||||||
| +	dl_close_state = rerun; |  | ||||||
|   |  | ||||||
|        /* There are still references to this object.  Do nothing more.  */ |  | ||||||
|        if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0)) |  | ||||||
| diff --git a/libc/elf/dl-deps.c b/libc/elf/dl-deps.c |  | ||||||
| index 51cb2fa..eddcbf0 100644 |  | ||||||
| --- a/libc/elf/dl-deps.c |  | ||||||
| +++ b/libc/elf/dl-deps.c |  | ||||||
| @@ -489,6 +489,7 @@ _dl_map_object_deps (struct link_map *map, |  | ||||||
|  		  nneeded * sizeof needed[0]); |  | ||||||
|  	  atomic_write_barrier (); |  | ||||||
|  	  l->l_initfini = l_initfini; |  | ||||||
| +	  l->l_free_initfini = 1; |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|        /* If we have no auxiliary objects just go on to the next map.  */ |  | ||||||
| @@ -689,6 +690,7 @@ Filters not supported with LD_TRACE_PRELINKING")); |  | ||||||
|    l_initfini[nlist] = NULL; |  | ||||||
|    atomic_write_barrier (); |  | ||||||
|    map->l_initfini = l_initfini; |  | ||||||
| +  map->l_free_initfini = 1; |  | ||||||
|    if (l_reldeps != NULL) |  | ||||||
|      { |  | ||||||
|        atomic_write_barrier (); |  | ||||||
| @@ -697,7 +699,7 @@ Filters not supported with LD_TRACE_PRELINKING")); |  | ||||||
|        _dl_scope_free (old_l_reldeps); |  | ||||||
|      } |  | ||||||
|    if (old_l_initfini != NULL) |  | ||||||
| -      map->l_orig_initfini = old_l_initfini; |  | ||||||
| +    _dl_scope_free (old_l_initfini); |  | ||||||
|   |  | ||||||
|    if (errno_reason) |  | ||||||
|      _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname, |  | ||||||
| diff --git a/libc/elf/dl-libc.c b/libc/elf/dl-libc.c |  | ||||||
| index f44fa10..7563093 100644 |  | ||||||
| --- a/libc/elf/dl-libc.c |  | ||||||
| +++ b/libc/elf/dl-libc.c |  | ||||||
| @@ -284,6 +284,10 @@ libc_freeres_fn (free_mem) |  | ||||||
|  	      if (! old->dont_free) |  | ||||||
|  		free (old); |  | ||||||
|  	    } |  | ||||||
| + |  | ||||||
| +	  /* Free the initfini dependency list.  */ |  | ||||||
| +	  if (l->l_free_initfini) |  | ||||||
| +	    free (l->l_initfini); |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|        if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 |  | ||||||
| diff --git a/libc/elf/rtld.c b/libc/elf/rtld.c |  | ||||||
| index b93a01f..2fc83ce 100644 |  | ||||||
| --- a/libc/elf/rtld.c |  | ||||||
| +++ b/libc/elf/rtld.c |  | ||||||
| @@ -2277,6 +2277,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", |  | ||||||
|  	      lnp->dont_free = 1; |  | ||||||
|  	      lnp = lnp->next; |  | ||||||
|  	    } |  | ||||||
| +	  l->l_free_initfini = 0; |  | ||||||
|   |  | ||||||
|  	  if (l != &GL(dl_rtld_map)) |  | ||||||
|  	    _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, |  | ||||||
| diff --git a/libc/include/link.h b/libc/include/link.h |  | ||||||
| index e877104..b1b4065 100644 |  | ||||||
| --- a/libc/include/link.h |  | ||||||
| +++ b/libc/include/link.h |  | ||||||
| @@ -192,6 +192,9 @@ struct link_map |  | ||||||
|  						 during LD_TRACE_PRELINKING=1 |  | ||||||
|  						 contains any DT_SYMBOLIC |  | ||||||
|  						 libraries.  */ |  | ||||||
| +    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be |  | ||||||
| +				       freed, ie. not allocated with |  | ||||||
| +				       the dummy malloc in ld.so.  */ |  | ||||||
|   |  | ||||||
|      /* Collected information about own RPATH directories.  */ |  | ||||||
|      struct r_search_path_struct l_rpath_dirs; |  | ||||||
| @@ -240,9 +243,6 @@ struct link_map |  | ||||||
|   |  | ||||||
|      /* List of object in order of the init and fini calls.  */ |  | ||||||
|      struct link_map **l_initfini; |  | ||||||
| -    /* The init and fini list generated at startup, saved when the |  | ||||||
| -       object is also loaded dynamically.  */ |  | ||||||
| -    struct link_map **l_orig_initfini; |  | ||||||
|   |  | ||||||
|      /* List of the dependencies introduced through symbol binding.  */ |  | ||||||
|      struct link_map_reldeps |  | ||||||
| @@ -1,71 +0,0 @@ | |||||||
| --- a/libc/sunrpc/proto.h |  | ||||||
| +++ b/libc/sunrpc/proto.h |  | ||||||
| @@ -56,12 +56,14 @@ void add_type(int len, const char *type) |  | ||||||
|     $build's C library and $host's GLIBC.  */ |  | ||||||
|  #ifdef _CROSS_RPCGEN_ |  | ||||||
|   |  | ||||||
| +#undef stpcpy |  | ||||||
| + |  | ||||||
|  /* Rather then defining _GNU_SOURCE before including $build's <string.h> |  | ||||||
|     we just declare stpcpy here.  */ |  | ||||||
|  extern char *stpcpy (char *, const char *); |  | ||||||
|   |  | ||||||
| -/* Use $build's i18n support as we can't use $host's.  */ |  | ||||||
| -#define _(X) (gettext (X)) |  | ||||||
| +/* Do not use i18n support  */ |  | ||||||
| +#define _(X) (X) |  | ||||||
|   |  | ||||||
|  /* rpcgen sources check for __GNU_LIBRARY__ to tweak for GLIBC code |  | ||||||
|     that rpcgen generates.  The proper fix would be to rename all those checks |  | ||||||
| --- a/libc/sunrpc/rpc/types.h |  | ||||||
| +++ b/libc/sunrpc/rpc/types.h |  | ||||||
| @@ -70,18 +70,23 @@ typedef unsigned long rpcport_t; |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
|  #ifndef __u_char_defined |  | ||||||
| -typedef __u_char u_char; |  | ||||||
| -typedef __u_short u_short; |  | ||||||
| -typedef __u_int u_int; |  | ||||||
| -typedef __u_long u_long; |  | ||||||
| -typedef __quad_t quad_t; |  | ||||||
| -typedef __u_quad_t u_quad_t; |  | ||||||
| -typedef __fsid_t fsid_t; |  | ||||||
| +typedef unsigned char u_char; |  | ||||||
| +typedef unsigned short u_short; |  | ||||||
| +typedef unsigned int u_int; |  | ||||||
| +typedef unsigned long u_long; |  | ||||||
| +#if __WORDSIZE == 64 |  | ||||||
| +typedef long int quad_t; |  | ||||||
| +typedef unsigned long int u_quad_t; |  | ||||||
| +#elif defined __GLIBC_HAVE_LONG_LONG |  | ||||||
| +typedef long long int quad_t; |  | ||||||
| +typedef unsigned long long int u_quad_t; |  | ||||||
| +#endif |  | ||||||
| +typedef u_quad_t fsid_t; |  | ||||||
|  # define __u_char_defined |  | ||||||
|  #endif |  | ||||||
| -#ifndef __daddr_t_defined |  | ||||||
| -typedef __daddr_t daddr_t; |  | ||||||
| -typedef __caddr_t caddr_t; |  | ||||||
| +#if !defined(__daddr_t_defined) && defined(linux) |  | ||||||
| +typedef long int daddr_t; |  | ||||||
| +typedef char *caddr_t; |  | ||||||
|  # define __daddr_t_defined |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
| --- a/libc/sunrpc/rpc_main.c |  | ||||||
| +++ b/libc/sunrpc/rpc_main.c |  | ||||||
| @@ -997,9 +997,10 @@ mkfile_output (struct commandline *cmd) |  | ||||||
|  	abort (); |  | ||||||
|        temp = rindex (cmd->infile, '.'); |  | ||||||
|        cp = stpcpy (mkfilename, "Makefile."); |  | ||||||
| -      if (temp != NULL) |  | ||||||
| -	*((char *) stpncpy (cp, cmd->infile, temp - cmd->infile)) = '\0'; |  | ||||||
| -      else |  | ||||||
| +      if (temp != NULL) { |  | ||||||
| +        strncpy(cp, cmd->infile, temp - cmd->infile); |  | ||||||
| +        cp[temp - cmd->infile - 1] = 0; |  | ||||||
| +      } else |  | ||||||
|  	stpcpy (cp, cmd->infile); |  | ||||||
|   |  | ||||||
|      } |  | ||||||
| @@ -1,27 +0,0 @@ | |||||||
| --- a/libc/timezone/zic.c |  | ||||||
| +++ b/libc/timezone/zic.c |  | ||||||
| @@ -8,6 +8,8 @@ static char	elsieid[] = "@(#)zic.c	8.19" |  | ||||||
|  #ifdef CROSS_ZIC |  | ||||||
|  #define REPORT_BUGS_TO "" |  | ||||||
|  #define PKGVERSION "" |  | ||||||
| +#undef _ |  | ||||||
| +#define _(X) (X) |  | ||||||
|  #else |  | ||||||
|  #include "config.h" |  | ||||||
|  #endif |  | ||||||
| @@ -490,6 +492,7 @@ char *	argv[]; |  | ||||||
|  #ifdef unix |  | ||||||
|  	(void) umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH)); |  | ||||||
|  #endif /* defined unix */ |  | ||||||
| +#ifndef CROSS_ZIC |  | ||||||
|  #if HAVE_GETTEXT |  | ||||||
|  	(void) setlocale(LC_ALL, ""); |  | ||||||
|  #ifdef TZ_DOMAINDIR |  | ||||||
| @@ -497,6 +500,7 @@ char *	argv[]; |  | ||||||
|  #endif /* defined TEXTDOMAINDIR */ |  | ||||||
|  	(void) textdomain(TZ_DOMAIN); |  | ||||||
|  #endif /* HAVE_GETTEXT */ |  | ||||||
| +#endif |  | ||||||
|  	progname = argv[0]; |  | ||||||
|  	if (TYPE_BIT(zic_t) < 64) { |  | ||||||
|  		(void) fprintf(stderr, "%s: %s\n", progname, |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| --- a/libc/sunrpc/Makefile |  | ||||||
| +++ b/libc/sunrpc/Makefile |  | ||||||
| @@ -175,7 +175,7 @@ $(objpfx)rpcgen: $(addprefix $(objpfx),$ |  | ||||||
|  	$(+link) |  | ||||||
|   |  | ||||||
|  $(addprefix $(objpfx)cross-,$(rpcgen-objs)): $(objpfx)cross-%.o: %.c |  | ||||||
| -	gcc $< -c -D_RPC_THREAD_SAFE_ -D_CROSS_RPCGEN_ \ |  | ||||||
| +	gcc $< -c -D_RPC_THREAD_SAFE_ -D_CROSS_RPCGEN_ $(HOST_CFLAGS) \ |  | ||||||
|  		$(OUTPUT_OPTION) $(compile-mkdep-flags) |  | ||||||
|   |  | ||||||
|  $(objpfx)cross-rpcgen: $(addprefix $(objpfx)cross-,$(rpcgen-objs)) |  | ||||||
| --- a/libc/timezone/Makefile |  | ||||||
| +++ b/libc/timezone/Makefile |  | ||||||
| @@ -182,7 +182,7 @@ $(objpfx)zic: $(addprefix $(objpfx), $(z |  | ||||||
|   |  | ||||||
|  $(addprefix $(objpfx)cross-,$(zic-objs)): $(objpfx)cross-%.o: %.c |  | ||||||
|  	gcc $< -c $(OUTPUT_OPTION) $(CFLAGS-$*.c) $(CPPFLAGS-$*) \ |  | ||||||
| -		-DCROSS_ZIC $(compile-mkdep-flags) |  | ||||||
| +		-DCROSS_ZIC $(HOST_CFLAGS) $(compile-mkdep-flags) |  | ||||||
|   |  | ||||||
|  $(objpfx)cross-zic: $(addprefix $(objpfx)cross-,$(zic-objs)) |  | ||||||
|  	gcc $(addprefix $(objpfx)cross-,$(zic-objs)) -o $@ |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| add /usr/lib to default search path for the dynamic linker |  | ||||||
|  |  | ||||||
| --- a/libc/Makeconfig |  | ||||||
| +++ b/libc/Makeconfig |  | ||||||
| @@ -539,6 +539,9 @@ |  | ||||||
|  default-rpath = $(libdir) |  | ||||||
|  endif |  | ||||||
|   |  | ||||||
| +# Add /usr/lib to default search path for the dynamic linker |  | ||||||
| +user-defined-trusted-dirs := /usr/lib |  | ||||||
| + |  | ||||||
|  ifndef link-extra-libs |  | ||||||
|  link-extra-libs = $(LDLIBS-$(@F)) |  | ||||||
|  link-extra-libs-static = $(link-extra-libs) |  | ||||||
| @@ -1,52 +0,0 @@ | |||||||
| --- a/libc/sunrpc/rpc/types.h |  | ||||||
| +++ b/libc/sunrpc/rpc/types.h |  | ||||||
| @@ -75,18 +75,23 @@ typedef unsigned long rpcport_t; |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
|  #ifndef __u_char_defined |  | ||||||
| -typedef __u_char u_char; |  | ||||||
| -typedef __u_short u_short; |  | ||||||
| -typedef __u_int u_int; |  | ||||||
| -typedef __u_long u_long; |  | ||||||
| -typedef __quad_t quad_t; |  | ||||||
| -typedef __u_quad_t u_quad_t; |  | ||||||
| -typedef __fsid_t fsid_t; |  | ||||||
| +typedef unsigned char u_char; |  | ||||||
| +typedef unsigned short u_short; |  | ||||||
| +typedef unsigned int u_int; |  | ||||||
| +typedef unsigned long u_long; |  | ||||||
| +#if __WORDSIZE == 64 |  | ||||||
| +typedef long int quad_t; |  | ||||||
| +typedef unsigned long int u_quad_t; |  | ||||||
| +#elif defined __GLIBC_HAVE_LONG_LONG |  | ||||||
| +typedef long long int quad_t; |  | ||||||
| +typedef unsigned long long int u_quad_t; |  | ||||||
| +#endif |  | ||||||
| +typedef u_quad_t fsid_t; |  | ||||||
|  # define __u_char_defined |  | ||||||
|  #endif |  | ||||||
| -#ifndef __daddr_t_defined |  | ||||||
| -typedef __daddr_t daddr_t; |  | ||||||
| -typedef __caddr_t caddr_t; |  | ||||||
| +#if !defined(__daddr_t_defined) && defined(linux) |  | ||||||
| +typedef long int daddr_t; |  | ||||||
| +typedef char *caddr_t; |  | ||||||
|  # define __daddr_t_defined |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
| --- a/libc/sunrpc/rpc_main.c |  | ||||||
| +++ b/libc/sunrpc/rpc_main.c |  | ||||||
| @@ -958,9 +958,10 @@ mkfile_output (struct commandline *cmd) |  | ||||||
|  	abort (); |  | ||||||
|        temp = rindex (cmd->infile, '.'); |  | ||||||
|        cp = stpcpy (mkfilename, "Makefile."); |  | ||||||
| -      if (temp != NULL) |  | ||||||
| -	*((char *) stpncpy (cp, cmd->infile, temp - cmd->infile)) = '\0'; |  | ||||||
| -      else |  | ||||||
| +      if (temp != NULL) { |  | ||||||
| +        strncpy(cp, cmd->infile, temp - cmd->infile); |  | ||||||
| +        cp[temp - cmd->infile - 1] = 0; |  | ||||||
| +      } else |  | ||||||
|  	stpcpy (cp, cmd->infile); |  | ||||||
|   |  | ||||||
|      } |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| add /usr/lib to default search path for the dynamic linker |  | ||||||
|  |  | ||||||
| --- a/libc/Makeconfig |  | ||||||
| +++ b/libc/Makeconfig |  | ||||||
| @@ -501,6 +501,9 @@ else |  | ||||||
|  default-rpath = $(libdir) |  | ||||||
|  endif |  | ||||||
|   |  | ||||||
| +# Add /usr/lib to default search path for the dynamic linker |  | ||||||
| +user-defined-trusted-dirs := /usr/lib |  | ||||||
| + |  | ||||||
|  ifndef link-extra-libs |  | ||||||
|  link-extra-libs = $(LDLIBS-$(@F)) |  | ||||||
|  link-extra-libs-static = $(link-extra-libs) |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| Index: eglibc-2.19-r25243/libc/aclocal.m4 |  | ||||||
| =================================================================== |  | ||||||
| --- eglibc-2.19-r25243.orig/libc/aclocal.m4	2013-11-06 15:03:08.000000000 -0800 |  | ||||||
| +++ eglibc-2.19-r25243/libc/aclocal.m4	2014-11-22 15:43:05.343256863 -0800 |  | ||||||
| @@ -1,7 +1,7 @@ |  | ||||||
|  dnl We require that everyone use exactly the same Autoconf version so that |  | ||||||
|  dnl the internal functions defined and used by the main configure script |  | ||||||
|  dnl match those expected by the fragments. |  | ||||||
| -m4_define([GLIBC_AUTOCONF_VERSION], [2.68]) |  | ||||||
| +m4_define([GLIBC_AUTOCONF_VERSION], [2.69]) |  | ||||||
|  m4_if(m4_defn([AC_AUTOCONF_VERSION]), GLIBC_AUTOCONF_VERSION, [], |  | ||||||
|        [m4_fatal(m4_flatten( |  | ||||||
|  Exactly version GLIBC_AUTOCONF_VERSION of Autoconf is required but you have |  | ||||||
| @@ -1,52 +0,0 @@ | |||||||
| --- a/sunrpc/rpc/types.h |  | ||||||
| +++ b/sunrpc/rpc/types.h |  | ||||||
| @@ -75,18 +75,23 @@ typedef unsigned long rpcport_t; |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
|  #ifndef __u_char_defined |  | ||||||
| -typedef __u_char u_char; |  | ||||||
| -typedef __u_short u_short; |  | ||||||
| -typedef __u_int u_int; |  | ||||||
| -typedef __u_long u_long; |  | ||||||
| -typedef __quad_t quad_t; |  | ||||||
| -typedef __u_quad_t u_quad_t; |  | ||||||
| -typedef __fsid_t fsid_t; |  | ||||||
| +typedef unsigned char u_char; |  | ||||||
| +typedef unsigned short u_short; |  | ||||||
| +typedef unsigned int u_int; |  | ||||||
| +typedef unsigned long u_long; |  | ||||||
| +#if __WORDSIZE == 64 |  | ||||||
| +typedef long int quad_t; |  | ||||||
| +typedef unsigned long int u_quad_t; |  | ||||||
| +#elif defined __GLIBC_HAVE_LONG_LONG |  | ||||||
| +typedef long long int quad_t; |  | ||||||
| +typedef unsigned long long int u_quad_t; |  | ||||||
| +#endif |  | ||||||
| +typedef u_quad_t fsid_t; |  | ||||||
|  # define __u_char_defined |  | ||||||
|  #endif |  | ||||||
| -#ifndef __daddr_t_defined |  | ||||||
| -typedef __daddr_t daddr_t; |  | ||||||
| -typedef __caddr_t caddr_t; |  | ||||||
| +#if !defined(__daddr_t_defined) && defined(linux) |  | ||||||
| +typedef long int daddr_t; |  | ||||||
| +typedef char *caddr_t; |  | ||||||
|  # define __daddr_t_defined |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
| --- a/sunrpc/rpc_main.c |  | ||||||
| +++ b/sunrpc/rpc_main.c |  | ||||||
| @@ -958,9 +958,10 @@ mkfile_output (struct commandline *cmd) |  | ||||||
|  	abort (); |  | ||||||
|        temp = rindex (cmd->infile, '.'); |  | ||||||
|        cp = stpcpy (mkfilename, "Makefile."); |  | ||||||
| -      if (temp != NULL) |  | ||||||
| -	*((char *) stpncpy (cp, cmd->infile, temp - cmd->infile)) = '\0'; |  | ||||||
| -      else |  | ||||||
| +      if (temp != NULL) { |  | ||||||
| +        strncpy(cp, cmd->infile, temp - cmd->infile); |  | ||||||
| +        cp[temp - cmd->infile - 1] = 0; |  | ||||||
| +      } else |  | ||||||
|  	stpcpy (cp, cmd->infile); |  | ||||||
|   |  | ||||||
|      } |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| add /usr/lib to default search path for the dynamic linker |  | ||||||
|  |  | ||||||
| --- a/Makeconfig |  | ||||||
| +++ b/Makeconfig |  | ||||||
| @@ -499,6 +499,9 @@ else |  | ||||||
|  default-rpath = $(libdir) |  | ||||||
|  endif |  | ||||||
|   |  | ||||||
| +# Add /usr/lib to default search path for the dynamic linker |  | ||||||
| +user-defined-trusted-dirs := /usr/lib |  | ||||||
| + |  | ||||||
|  ifndef link-extra-libs |  | ||||||
|  link-extra-libs = $(LDLIBS-$(@F)) |  | ||||||
|  link-extra-libs-static = $(link-extra-libs) |  | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau