diff options
Diffstat (limited to 'toolchain/eglibc')
| -rw-r--r-- | toolchain/eglibc/Config.in | 40 | ||||
| -rw-r--r-- | toolchain/eglibc/Config.version | 9 | ||||
| -rw-r--r-- | toolchain/eglibc/Makefile | 168 | ||||
| -rw-r--r-- | toolchain/eglibc/config/Config.in | 726 | ||||
| -rw-r--r-- | toolchain/eglibc/patches/2.6.1/101-arm_asm_page_h.patch | 11 | ||||
| -rw-r--r-- | toolchain/eglibc/patches/2.7/101-arm_asm_page_h.patch | 11 | ||||
| -rw-r--r-- | toolchain/eglibc/patches/2.7/103-arm_nptl_cargs6.patch | 13 | ||||
| -rw-r--r-- | toolchain/eglibc/patches/2.7/104-arm_nptl_lowlevellock.patch | 11 | ||||
| -rw-r--r-- | toolchain/eglibc/patches/2.8/103-arm_nptl_cargs6.patch | 13 | ||||
| -rw-r--r-- | toolchain/eglibc/patches/2.8/104-arm_nptl_lowlevellock.patch | 11 | 
10 files changed, 1013 insertions, 0 deletions
| diff --git a/toolchain/eglibc/Config.in b/toolchain/eglibc/Config.in new file mode 100644 index 000000000..3caea3919 --- /dev/null +++ b/toolchain/eglibc/Config.in @@ -0,0 +1,40 @@ +choice +	prompt "eglibc version"  +	depends on TOOLCHAINOPTS && USE_EGLIBC +	default EGLIBC_VERSION_2_8 +	help +	  Select the version of eglibc you wish to use. + +	config EGLIBC_VERSION_2_6_1 +		bool "eglibc 2.6.1" + +	config EGLIBC_VERSION_2_7 +		bool "eglibc 2.7" + +	config EGLIBC_VERSION_2_8 +		bool "eglibc 2.8" + +	config EGLIBC_VERSION_2_9 +		bool "eglibc 2.9" + +	config EGLIBC_VERSION_TRUNK +		bool "eglibc trunk" + +endchoice + +config EGLIBC_REVISION +	string +	prompt "eglibc revision" +	depends on TOOLCHAINOPTS && USE_EGLIBC +	default "5887"  if EGLIBC_VERSION_2_6_1 +	default "5886"  if EGLIBC_VERSION_2_7 +	default "6913"  if EGLIBC_VERSION_2_8 +	default "7430"  if EGLIBC_VERSION_2_9 +	default "HEAD"  if EGLIBC_VERSION_TRUNK +	default "" + +menu "eglibc configuration" +	depends on TOOLCHAINOPTS && USE_EGLIBC +	source toolchain/eglibc/config/Config.in +endmenu + diff --git a/toolchain/eglibc/Config.version b/toolchain/eglibc/Config.version new file mode 100644 index 000000000..edee7cc15 --- /dev/null +++ b/toolchain/eglibc/Config.version @@ -0,0 +1,9 @@ +config EGLIBC_VERSION +	string +	depends on USE_EGLIBC +	default "2.6.1"  if EGLIBC_VERSION_2_6_1 +	default "2.7"    if EGLIBC_VERSION_2_7 +	default "2.8"    if EGLIBC_VERSION_2_8 +	default "2.9"    if EGLIBC_VERSION_2_9 +	default "trunk" + diff --git a/toolchain/eglibc/Makefile b/toolchain/eglibc/Makefile new file mode 100644 index 000000000..e9e1d00da --- /dev/null +++ b/toolchain/eglibc/Makefile @@ -0,0 +1,168 @@ +# +# Copyright (C) 2006-2008 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +PKG_NAME:=eglibc +PKG_VERSION:=$(call qstrip,$(CONFIG_EGLIBC_VERSION)) +PKG_REVISION:=$(call qstrip,$(CONFIG_EGLIBC_REVISION)) + +PKG_SOURCE_PROTO:=svn +PKG_SOURCE_VERSION:=$(PKG_REVISION) +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-r$(PKG_REVISION) +PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.bz2 +ifeq ($(PKG_VERSION),2.6.1) +  PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_6 +endif +ifeq ($(PKG_VERSION),2.7) +  PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_7 +endif +ifeq ($(PKG_VERSION),2.8) +  PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_8 +endif +ifeq ($(PKG_VERSION),2.9) +  PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_9 +endif +ifeq ($(PKG_VERSION),trunk) +  PKG_SOURCE_URL:=svn://svn.eglibc.org/trunk +endif + +PATCH_DIR:=./patches/$(PKG_VERSION) + +STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) +BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) +PKG_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_SOURCE_SUBDIR) + +override CONFIG_AUTOREBUILD= + +include $(INCLUDE_DIR)/host-build.mk + +STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.eglibc_built +STAMP_INSTALLED:=$(TOOLCHAIN_DIR)/stamp/.eglibc_installed + +PKG_BUILD_DIR1:=$(PKG_BUILD_DIR)-initial +PKG_BUILD_DIR2:=$(PKG_BUILD_DIR)-final + +# XXX: {e,}glibc does not build w/ -Os +# http://sourceware.org/bugzilla/show_bug.cgi?id=5203 +EGLIBC_CFLAGS:=$(subst -Os,-O2,$(TARGET_CFLAGS)) + +EGLIBC_CONFIGURE:= \ +	BUILD_CC="$(HOSTCC)" \ +	$(TARGET_CONFIGURE_OPTS) \ +	CFLAGS="$(EGLIBC_CFLAGS)" \ +	$(PKG_BUILD_DIR)/libc/configure \ +		--prefix=/usr \ +		--build=$(GNU_HOST_NAME) \ +		--host=$(REAL_GNU_TARGET_NAME) \ +		--with-headers=$(TOOLCHAIN_DIR)/usr/include \ +		--disable-profile \ +		--without-gd \ +		--without-cvs \ +		--enable-add-ons \ + +ifeq ($(CONFIG_SOFT_FLOAT),) +  EGLIBC_CONFIGURE+= --with-fp +else +  EGLIBC_CONFIGURE+= --without-fp +endif + +EGLIBC_MAKE:= \ +	$(MAKE) \ + + +define Build/SetToolchainInfo +	$(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk +	$(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.eglibc.org/,' $(TOOLCHAIN_DIR)/info.mk +	$(SED) 's,^\(LIBC_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk +	$(SED) 's,^\(LIBC_PATCHVER\)=.*,\1=$(PKG_EXTRAVERSION),' $(TOOLCHAIN_DIR)/info.mk +endef + +define Stage1/Configure +	mkdir -p $(PKG_BUILD_DIR1) +	$(CP) $(PKG_BUILD_DIR)/libc/option-groups.config $(PKG_BUILD_DIR1)/ +	( cd $(PKG_BUILD_DIR1); rm -f config.cache; \ +		$(EGLIBC_CONFIGURE) \ +	); +endef + +define Stage1/Compile +endef + +define Stage1/Install +	mkdir -p $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/usr/{include,lib} +	$(EGLIBC_MAKE) -C $(PKG_BUILD_DIR1) \ +		install_root="$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev" \ +		install-bootstrap-headers=yes \ +		install-headers  +	$(EGLIBC_MAKE) -C $(PKG_BUILD_DIR1) \ +		csu/subdir_lib +	( cd $(PKG_BUILD_DIR1); \ +		$(CP) csu/crt1.o csu/crti.o csu/crtn.o $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/usr/lib/ \ +	) +	$(TARGET_CC) -nostdlib -nostartfiles -shared -x c /dev/null \ +		-o $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/usr/lib/libc.so +endef + +define Stage2/Configure +	mkdir -p $(PKG_BUILD_DIR2) +	$(CP) $(PKG_BUILD_DIR)/libc/option-groups.config $(PKG_BUILD_DIR2)/ +	( cd $(PKG_BUILD_DIR2); rm -f config.cache; \ +		$(EGLIBC_CONFIGURE) \ +	); +endef + +define Stage2/Compile +	$(EGLIBC_MAKE) -C $(PKG_BUILD_DIR2) all +endef + +define Stage2/Install +	$(EGLIBC_MAKE) -C $(PKG_BUILD_DIR2) \ +		install_root="$(TOOLCHAIN_DIR)" \ +		install +	( cd $(TOOLCHAIN_DIR) ; \ +		for d in lib usr/lib ; do \ +		  for f in libc.so libpthread.so libgcc_s.so ; do \ +		    if [ -f $$$$d/$$$$f -a ! -L $$$$d/$$$$f ] ; then \ +		      $(SED) 's,/usr/lib/,,g;s,/lib/,,g' $$$$d/$$$$f ; \ +		    fi \ +		  done \ +		done \ +	) +endef + +define Build/Prepare +	$(call Build/SetToolchainInfo) +	$(call Build/Prepare/Default) +	ln -snf $(PKG_SOURCE_SUBDIR) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) +	$(SED) 's,y,n,' $(PKG_BUILD_DIR)/libc/option-groups.defaults +	grep 'CONFIG_EGLIBC_OPTION_' $(TOPDIR)/.config | sed -e "s,\\(# \)\\?CONFIG_EGLIBC_\\(.*\\),\\1\\2,g" > $(PKG_BUILD_DIR)/libc/option-groups.config +	ln -sf ../ports $(PKG_BUILD_DIR)/libc/ +	( cd $(PKG_BUILD_DIR)/libc; autoconf --force ) +	$(call Stage1/Configure) +	$(call Stage1/Compile) +	$(call Stage1/Install) +endef + +define Build/Configure +endef + +define Build/Compile +	$(call Stage2/Configure) +	$(call Stage2/Compile) +	$(call Stage2/Install) +endef + +define Build/Install +endef + +define Build/Clean +	rm -rf $(PKG_BUILD_DIR) $(PKG_BUILD_DIR1) $(PKG_BUILD_DIR2) \ +		$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev \ +		$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) +endef + +$(eval $(call HostBuild)) diff --git a/toolchain/eglibc/config/Config.in b/toolchain/eglibc/config/Config.in new file mode 100644 index 000000000..c4496bec1 --- /dev/null +++ b/toolchain/eglibc/config/Config.in @@ -0,0 +1,726 @@ +config EGLIBC_OPTION_EGLIBC_ADVANCED_INET6 +   bool "IPv6 Advanced Sockets API support (RFC3542)" +   default y +   depends 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_alloc +         inet6_append +         inet6_find +         inet6_init +         inet6_next +         inet6_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_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 +   depends EGLIBC_OPTION_POSIX_WIDE_CHAR_DEVICE_IO +   depends 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 +   depends 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_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_DB_ALIASES +   bool "Functions for accessing the mail aliases database" +   default y +   help +       This option group includues 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_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 includues the following functions: + +         endfsent       getfsspec +         getfsent       setfsent +         getfsfile + +config EGLIBC_OPTION_EGLIBC_GETLOGIN +   bool "The getlogin function" +   default y +   depends 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_INET +   bool "Networking support" +   default y +   help +       This option group includes networking-specific functions and +       data.  With 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_alloc     svcudp_enablecache +         clnt_spcreateerror       inet6_append    svcunix_create +         clnt_sperrno             inet6_find      svcunixfd_create +         clnt_sperror             inet6_init      svc_unregister +         clnttcp_create           inet6_next      user2netname +         clntudp_bufcreate        inet6_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_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_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 +   depends EGLIBC_OPTION_POSIX_C_LANG_WIDE_CHAR +   help +       This option group includes locale support functions, programs, +       and libraries.  With EGLIBC_LOCALE_FUNCTIONS disabled, +       EGLIBC supports only the 'C' locale (also known as 'POSIX'), +       and ignores the settings of the 'LANG' and 'LC_*' environment +       variables. + +       With 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_CATGETS option group depends on this option +       group; if you disable EGLIBC_LOCALE_CODE, you must also +       disable EGLIBC_CATGETS. + +config EGLIBC_OPTION_EGLIBC_NIS +   bool "Support for NIS, NIS+, and the special 'compat' services." +   default y +   depends EGLIBC_OPTION_EGLIBC_INET +   depends 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_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 +   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_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_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_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_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 +   depends 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_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 y +   depends 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 +   depends 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 +        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 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_WIDE_CHAR_DEVICE_IO +   bool "Input and output functions for wide characters" +   default y +   depends 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. diff --git a/toolchain/eglibc/patches/2.6.1/101-arm_asm_page_h.patch b/toolchain/eglibc/patches/2.6.1/101-arm_asm_page_h.patch new file mode 100644 index 000000000..f7b07789f --- /dev/null +++ b/toolchain/eglibc/patches/2.6.1/101-arm_asm_page_h.patch @@ -0,0 +1,11 @@ +diff -ruN eglibc-2.6-orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c eglibc-2.6/ports/sysdeps/unix/sysv/linux/arm/ioperm.c +--- eglibc-2.6-orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c	2006-08-17 03:23:58.000000000 +0200 ++++ eglibc-2.6/ports/sysdeps/unix/sysv/linux/arm/ioperm.c	2008-11-04 16:21:04.000000000 +0100 +@@ -45,7 +45,6 @@ + #include <sys/mman.h> +  + #include <linux/version.h> +-#include <asm/page.h> + #include <sys/sysctl.h> +  + #define PATH_ARM_SYSTYPE	"/etc/arm_systype" diff --git a/toolchain/eglibc/patches/2.7/101-arm_asm_page_h.patch b/toolchain/eglibc/patches/2.7/101-arm_asm_page_h.patch new file mode 100644 index 000000000..edec70714 --- /dev/null +++ b/toolchain/eglibc/patches/2.7/101-arm_asm_page_h.patch @@ -0,0 +1,11 @@ +diff -ruN eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/ioperm.c +--- eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c	2006-08-17 03:23:58.000000000 +0200 ++++ eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/ioperm.c	2008-11-04 16:12:24.375864916 +0100 +@@ -45,7 +45,6 @@ + #include <sys/mman.h> +  + #include <linux/version.h> +-#include <asm/page.h> + #include <sys/sysctl.h> +  + #define PATH_ARM_SYSTYPE	"/etc/arm_systype" diff --git a/toolchain/eglibc/patches/2.7/103-arm_nptl_cargs6.patch b/toolchain/eglibc/patches/2.7/103-arm_nptl_cargs6.patch new file mode 100644 index 000000000..97bdc9828 --- /dev/null +++ b/toolchain/eglibc/patches/2.7/103-arm_nptl_cargs6.patch @@ -0,0 +1,13 @@ +diff -ruN eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h +--- eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2007-06-06 19:48:04.000000000 +0200 ++++ eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2008-11-04 16:48:29.000000000 +0100 +@@ -73,6 +73,9 @@ + # define DOCARGS_5	DOCARGS_4 + # define UNDOCARGS_5	UNDOCARGS_4 +  ++# define DOCARGS_6    DOCARGS_5 ++# define UNDOCARGS_6  UNDOCARGS_5 ++ + # ifdef IS_IN_libpthread + #  define CENABLE	bl PLTJMP(__pthread_enable_asynccancel) + #  define CDISABLE	bl PLTJMP(__pthread_disable_asynccancel) diff --git a/toolchain/eglibc/patches/2.7/104-arm_nptl_lowlevellock.patch b/toolchain/eglibc/patches/2.7/104-arm_nptl_lowlevellock.patch new file mode 100644 index 000000000..67823070d --- /dev/null +++ b/toolchain/eglibc/patches/2.7/104-arm_nptl_lowlevellock.patch @@ -0,0 +1,11 @@ +diff -ruN eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +--- eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h	2007-09-12 18:26:54.000000000 +0200 ++++ eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h	2008-11-04 17:11:21.000000000 +0100 +@@ -25,6 +25,7 @@ + #include <atomic.h> + #include <sysdep.h> + #include <kernel-features.h> ++#include <tls.h> +  + #define FUTEX_WAIT		0 + #define FUTEX_WAKE		1 diff --git a/toolchain/eglibc/patches/2.8/103-arm_nptl_cargs6.patch b/toolchain/eglibc/patches/2.8/103-arm_nptl_cargs6.patch new file mode 100644 index 000000000..97bdc9828 --- /dev/null +++ b/toolchain/eglibc/patches/2.8/103-arm_nptl_cargs6.patch @@ -0,0 +1,13 @@ +diff -ruN eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h +--- eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2007-06-06 19:48:04.000000000 +0200 ++++ eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2008-11-04 16:48:29.000000000 +0100 +@@ -73,6 +73,9 @@ + # define DOCARGS_5	DOCARGS_4 + # define UNDOCARGS_5	UNDOCARGS_4 +  ++# define DOCARGS_6    DOCARGS_5 ++# define UNDOCARGS_6  UNDOCARGS_5 ++ + # ifdef IS_IN_libpthread + #  define CENABLE	bl PLTJMP(__pthread_enable_asynccancel) + #  define CDISABLE	bl PLTJMP(__pthread_disable_asynccancel) diff --git a/toolchain/eglibc/patches/2.8/104-arm_nptl_lowlevellock.patch b/toolchain/eglibc/patches/2.8/104-arm_nptl_lowlevellock.patch new file mode 100644 index 000000000..67823070d --- /dev/null +++ b/toolchain/eglibc/patches/2.8/104-arm_nptl_lowlevellock.patch @@ -0,0 +1,11 @@ +diff -ruN eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +--- eglibc-2.7-orig/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h	2007-09-12 18:26:54.000000000 +0200 ++++ eglibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h	2008-11-04 17:11:21.000000000 +0100 +@@ -25,6 +25,7 @@ + #include <atomic.h> + #include <sysdep.h> + #include <kernel-features.h> ++#include <tls.h> +  + #define FUTEX_WAIT		0 + #define FUTEX_WAKE		1 | 
