add support for alternative C libraries (currently only glibc/eglibc) other (related) changes: - kernel headers are now installed using "make headers_install" on 2.6 - target names now contain an openwrt "vendor" tag (e.g. mips-openwrt-linux-gnu) - build directory names now contain gcc/libc name/version - default cpu for x86 is now i486 (required to build glibc/eglibc)
SVN-Revision: 13931
This commit is contained in:
		| @@ -31,7 +31,7 @@ include $(INCLUDE_DIR)/package-bin.mk | |||||||
| include $(INCLUDE_DIR)/autotools.mk | include $(INCLUDE_DIR)/autotools.mk | ||||||
|  |  | ||||||
| override MAKEFLAGS= | override MAKEFLAGS= | ||||||
| CONFIG_SITE:=$(INCLUDE_DIR)/site/$(patsubst %gnueabi,%,$(REAL_GNU_TARGET_NAME)) | CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME) | ||||||
| ifneq ($(CONFIG_LINUX_2_4),) | ifneq ($(CONFIG_LINUX_2_4),) | ||||||
|   CONFIG_SITE:=$(subst linux-,linux2.4-,$(CONFIG_SITE)) |   CONFIG_SITE:=$(subst linux-,linux2.4-,$(CONFIG_SITE)) | ||||||
| endif | endif | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								include/site/arm-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/arm-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/arm-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/arm-openwrt-linux-gnueabi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/arm-openwrt-linux-gnueabi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/arm-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
| 
 | 
 | ||||||
| . $TOPDIR/include/site/i386-linux | . $TOPDIR/include/site/arm-linux | ||||||
| . $TOPDIR/include/site/linux-uclibc | . $TOPDIR/include/site/linux-uclibc | ||||||
| 
 | 
 | ||||||
							
								
								
									
										5
									
								
								include/site/armeb-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/armeb-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/armeb-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/armeb-openwrt-linux-gnueabi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/armeb-openwrt-linux-gnueabi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/armeb-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/armeb-openwrt-linux-uclibc-gnueabi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/armeb-openwrt-linux-uclibc-gnueabi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/armeb-linux | ||||||
|  | . $TOPDIR/include/site/linux-uclibc | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/avr32-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/avr32-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/avr32-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/cris-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/cris-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/cris-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
| @@ -23,6 +23,5 @@ ac_cv_sizeof_uint32_t=4 | |||||||
| ac_cv_sizeof_uint64_t=8 | ac_cv_sizeof_uint64_t=8 | ||||||
| ac_cv_sizeof_unsigned_int=4 | ac_cv_sizeof_unsigned_int=4 | ||||||
| ac_cv_sizeof_unsigned_long=4 | ac_cv_sizeof_unsigned_long=4 | ||||||
| ac_cv_sizeof_unsigned_long_long=8 |  | ||||||
| ac_cv_sizeof_unsigned_short=2 | ac_cv_sizeof_unsigned_short=2 | ||||||
| ac_cv_sizeof_void_p=4 | ac_cv_sizeof_void_p=4 | ||||||
							
								
								
									
										5
									
								
								include/site/i486-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/i486-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/i486-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/i486-openwrt-linux-uclibc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/i486-openwrt-linux-uclibc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/i486-linux | ||||||
|  | . $TOPDIR/include/site/linux-uclibc | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/i686-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/i686-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/i686-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										71
									
								
								include/site/linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								include/site/linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | |||||||
|  | ac_atomic_add=yes | ||||||
|  | ac_atomic_sub=yes | ||||||
|  | ac_cv_c_gettext_without_libintl=yes | ||||||
|  | ac_cv_c_long_double=no | ||||||
|  | ac_cv_conv_longlong_to_float=yes | ||||||
|  | ac_cv_file__dev_zero=yes | ||||||
|  | ac_cv_func___va_copy=no | ||||||
|  | ac_cv_func__exit=yes | ||||||
|  | ac_cv_func_bcopy=yes | ||||||
|  | ac_cv_func_bzero=yes | ||||||
|  | ac_cv_func_bcmp=yes | ||||||
|  | ac_cv_func_fchmod=yes | ||||||
|  | ac_cv_func_getaddrinfo=yes | ||||||
|  | ac_cv_func_getcwd=yes | ||||||
|  | ac_cv_func_getdomainname=yes | ||||||
|  | ac_cv_func_getpgrp_void=yes | ||||||
|  | ac_cv_func_getpwuid_r=yes | ||||||
|  | ac_cv_func_index=yes | ||||||
|  | ac_cv_func_lstat_dereferences_slashed_symlink=yes | ||||||
|  | ac_cv_func_lstat_empty_string_bug=no | ||||||
|  | ac_cv_func_lstat=yes | ||||||
|  | ac_cv_func_malloc_0_nonnull=yes | ||||||
|  | ac_cv_func_malloc_works=yes | ||||||
|  | ac_cv_func_memcmp_clean=yes | ||||||
|  | ac_cv_func_memcmp_working=yes | ||||||
|  | ac_cv_func_posix_getgrgid_r=yes | ||||||
|  | ac_cv_func_posix_getpwuid_r=yes | ||||||
|  | ac_cv_func_pthread_key_delete=yes | ||||||
|  | ac_cv_func_realloc_0_nonnull=yes | ||||||
|  | ac_cv_func_realloc_works=yes | ||||||
|  | ac_cv_func_rename=yes | ||||||
|  | ac_cv_func_rindex=yes | ||||||
|  | ac_cv_func_setlocale=yes | ||||||
|  | ac_cv_func_setpgrp_void=yes | ||||||
|  | ac_cv_func_setresuid=no | ||||||
|  | ac_cv_func_setvbuf_reversed=no | ||||||
|  | ac_cv_func_stat_empty_string_bug=no | ||||||
|  | ac_cv_func_stat_ignores_trailing_slash=no | ||||||
|  | ac_cv_func_strerror=yes | ||||||
|  | ac_cv_func_strftime=yes | ||||||
|  | ac_cv_func_utimes=yes | ||||||
|  | ac_cv_func___adjtimex=yes | ||||||
|  | ac_cv_func_va_copy=no | ||||||
|  | ac_cv_func_vsnprintf=yes | ||||||
|  | ac_cv_have_accrights_in_msghdr=no | ||||||
|  | ac_cv_have_broken_snprintf=no | ||||||
|  | ac_cv_have_control_in_msghdr=yes | ||||||
|  | ac_cv_have_decl_sys_siglist=no | ||||||
|  | ac_cv_have_openpty_ctty_bug=yes | ||||||
|  | ac_cv_have_space_d_name_in_struct_dirent=yes | ||||||
|  | ac_cv_header_netinet_sctp_h=no | ||||||
|  | ac_cv_header_netinet_sctp_uio_h=no | ||||||
|  | ac_cv_int64_t=yes | ||||||
|  | ac_cv_lbl_unaligned_fail=no | ||||||
|  | ac_cv_linux_kernel_pppoe=yes | ||||||
|  | ac_cv_linux_vers=2 | ||||||
|  | ac_cv_pack_bitfields_reversed=yes | ||||||
|  | ac_cv_path_LDCONFIG= | ||||||
|  | ac_cv_regexec_segfault_emptystr=no | ||||||
|  | ac_cv_sctp=no | ||||||
|  | ac_cv_sys_restartable_syscalls=yes | ||||||
|  | ac_cv_time_r_type=POSIX | ||||||
|  | ac_cv_type_suseconds_t=yes | ||||||
|  | ac_cv_uchar=no | ||||||
|  | ac_cv_uint=yes | ||||||
|  | ac_cv_uint64_t=yes | ||||||
|  | ac_cv_ulong=yes | ||||||
|  | ac_cv_ushort=yes | ||||||
|  | ac_cv_va_copy=C99 | ||||||
|  | ac_cv_va_val_copy=yes | ||||||
|  | as_cv_unaligned_access=yes | ||||||
							
								
								
									
										5
									
								
								include/site/mips-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/mips-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/mips-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/mipsel-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/mipsel-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/mipsel-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/powerpc-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/powerpc-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/powerpc-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								include/site/x86_64-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								include/site/x86_64-openwrt-linux-gnu
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . $TOPDIR/include/site/x86_64-linux | ||||||
|  | . $TOPDIR/include/site/linux-gnu | ||||||
|  |  | ||||||
| @@ -12,7 +12,7 @@ __target_inc=1 | |||||||
| DEVICE_TYPE?=router | DEVICE_TYPE?=router | ||||||
|  |  | ||||||
| # Default packages - the really basic set | # Default packages - the really basic set | ||||||
| DEFAULT_PACKAGES:=base-files libgcc uclibc busybox dropbear mtd uci opkg | DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg | ||||||
| # For router targets | # For router targets | ||||||
| DEFAULT_PACKAGES.router:=dnsmasq iptables ppp ppp-mod-pppoe kmod-ipt-nathelper firewall | DEFAULT_PACKAGES.router:=dnsmasq iptables ppp ppp-mod-pppoe kmod-ipt-nathelper firewall | ||||||
|  |  | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ ifneq ($(DUMP),1) | |||||||
|     LIB_SUFFIX:=64 |     LIB_SUFFIX:=64 | ||||||
|   endif |   endif | ||||||
| else | else | ||||||
|   UCLIBC_VERSION:=<UCLIBC_VERSION> |   LIBC_VERSION:=<LIBC_VERSION> | ||||||
|   LIBGCC_VERSION:=<LIBGCC_VERSION> |   LIBGCC_VERSION:=<LIBGCC_VERSION> | ||||||
| endif | endif | ||||||
|  |  | ||||||
| @@ -88,22 +88,28 @@ $(call Package/gcc/Default) | |||||||
|   DEPENDS+=@INSTALL_LIBSTDCPP |   DEPENDS+=@INSTALL_LIBSTDCPP | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/uclibc/Default | define Package/libc/Default | ||||||
|   SECTION:=libs |   SECTION:=libs | ||||||
|   CATEGORY:=Base system |   CATEGORY:=Base system | ||||||
|   DEPENDS:=@!NATIVE_TOOLCHAIN |   DEPENDS:=@!NATIVE_TOOLCHAIN | ||||||
|   URL:=http://uclibc.org/ |   VERSION:=$(LIBC_VERSION)-$(PKG_RELEASE) | ||||||
|   VERSION:=$(UCLIBC_VERSION)$(UCLIBC_PATCHVER)-$(PKG_RELEASE) |   URL:=$(LIBC_URL) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/libc | ||||||
|  | $(call Package/libc/Default) | ||||||
|  |   TITLE:=C library | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/libpthread | define Package/libpthread | ||||||
| $(call Package/uclibc/Default) | $(call Package/libc/Default) | ||||||
|   TITLE:=POSIX thread library |   TITLE:=POSIX thread library | ||||||
|  |   DEPENDS:= +librt | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/uclibc | define Package/librt | ||||||
| $(call Package/uclibc/Default) | $(call Package/libc/Default) | ||||||
|   TITLE:=C library embedded systems |   TITLE:=POSIX.1b RealTime extension library | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/ldd | define Package/ldd | ||||||
| @@ -112,10 +118,11 @@ $(call Package/uclibc/Default) | |||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/ldconfig | define Package/ldconfig | ||||||
| $(call Package/uclibc/Default) | $(call Package/libc/Default) | ||||||
|   TITLE:=Shared library path configuration |   TITLE:=Shared library path configuration | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  |  | ||||||
| define Build/Prepare | define Build/Prepare | ||||||
| 	mkdir -p $(PKG_BUILD_DIR) | 	mkdir -p $(PKG_BUILD_DIR) | ||||||
| endef | endef | ||||||
| @@ -184,40 +191,62 @@ define Package/libgcc/install | |||||||
| 	$(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libgcc_s.so.* $(1)/lib/ | 	$(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libgcc_s.so.* $(1)/lib/ | ||||||
| endef | endef | ||||||
|  |  | ||||||
| ifeq ($(word 1,$(subst ., ,$(LIBGCC_VERSION))),4) | define Package/libssp/install | ||||||
|   define Package/libssp/install |  | ||||||
| 	$(INSTALL_DIR) $(1)/lib | 	$(INSTALL_DIR) $(1)/lib | ||||||
| 	$(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libssp.so.* $(1)/lib/ | 	$(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libssp.so.* $(1)/lib/ | ||||||
|   endef | endef | ||||||
| endif |  | ||||||
|  |  | ||||||
| define Package/libstdcpp/install | define Package/libstdcpp/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/usr/lib | ||||||
|  | 	$(CP) $(TOOLCHAIN_DIR)/usr/lib$(LIB_SUFFIX)/libstdc++.so.* $(1)/usr/lib/ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/glibc/install | ||||||
| 	$(INSTALL_DIR) $(1)/lib | 	$(INSTALL_DIR) $(1)/lib | ||||||
| 	$(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libstdc++.so.* $(1)/lib/ | 	$(CP) $(TOOLCHAIN_DIR)/lib/ld*.so.* $(1)/lib/ | ||||||
|  | 	$(CP) $(TOOLCHAIN_DIR)/lib/ld-$(LIBC_VERSION).so $(1)/lib/ | ||||||
|  | 	for file in libanl libc libcidn libcrypt libdl libm libnsl libnss_dns libnss_files libresolv libutil; do \ | ||||||
|  | 		$(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \ | ||||||
|  | 		$(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_VERSION).so $(1)/lib/; \ | ||||||
|  | 	done | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/eglibc/install | ||||||
|  | $(call Package/glibc/install,$1) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/uClibc/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib | ||||||
|  | 	for file in ld$(LIB_SUFFIX)-uClibc libc libcrypt libdl libm libnsl libresolv libuClibc libutil; do \ | ||||||
|  | 		$(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \ | ||||||
|  | 		$(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_VERSION).so $(1)/lib/; \ | ||||||
|  | 	done | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/libc/install | ||||||
|  | $(call Package/$(LIBC)/install,$1) | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/libpthread/install | define Package/libpthread/install | ||||||
| 	$(INSTALL_DIR) $(1)/lib | 	$(INSTALL_DIR) $(1)/lib | ||||||
| 	$(CP) $(TOOLCHAIN_DIR)/lib/libpthread.so.* $(1)/lib/ | 	$(CP) $(TOOLCHAIN_DIR)/lib/libpthread.so.* $(1)/lib/ | ||||||
| 	$(CP) $(TOOLCHAIN_DIR)/lib/libpthread-$(UCLIBC_VERSION).so $(1)/lib/ | 	$(CP) $(TOOLCHAIN_DIR)/lib/libpthread-$(LIBC_VERSION).so $(1)/lib/ | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/uclibc/install | define Package/librt/install | ||||||
| 	$(INSTALL_DIR) $(1)/lib | 	$(INSTALL_DIR) $(1)/lib | ||||||
| 	for file in ld$(LIB_SUFFIX)-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \ | 	$(CP) $(TOOLCHAIN_DIR)/lib/librt.so.* $(1)/lib/ | ||||||
| 		$(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \ | 	$(CP) $(TOOLCHAIN_DIR)/lib/librt-$(LIBC_VERSION).so $(1)/lib/ | ||||||
| 		$(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \ |  | ||||||
| 	done |  | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/ldd/install | define Package/ldd/install | ||||||
| 	$(INSTALL_DIR) $(1)/bin/ | 	$(INSTALL_DIR) $(1)/usr/bin/ | ||||||
| 	$(CP) $(TOOLCHAIN_DIR)/target-utils/ldd $(1)/bin/ | 	$(CP) $(TOOLCHAIN_DIR)/usr/bin/ldd $(1)/usr/bin/ | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/ldconfig/install | define Package/ldconfig/install | ||||||
| 	$(INSTALL_DIR) $(1)/bin/ | 	$(INSTALL_DIR) $(1)/sbin/ | ||||||
| 	$(CP) $(TOOLCHAIN_DIR)/target-utils/ldconfig $(1)/bin/ | 	$(CP) $(TOOLCHAIN_DIR)/sbin/ldconfig $(1)/sbin/ | ||||||
| endef | endef | ||||||
|  |  | ||||||
| ifneq ($(DUMP),1) | ifneq ($(DUMP),1) | ||||||
| @@ -225,10 +254,11 @@ ifneq ($(DUMP),1) | |||||||
| endif | endif | ||||||
|  |  | ||||||
| $(eval $(call BuildPackage,base-files$(TARGET))) | $(eval $(call BuildPackage,base-files$(TARGET))) | ||||||
|  | $(eval $(call BuildPackage,libc)) | ||||||
| $(eval $(call BuildPackage,libgcc)) | $(eval $(call BuildPackage,libgcc)) | ||||||
| $(eval $(call BuildPackage,libssp)) | $(eval $(call BuildPackage,libssp)) | ||||||
| $(eval $(call BuildPackage,libstdcpp)) | $(eval $(call BuildPackage,libstdcpp)) | ||||||
| $(eval $(call BuildPackage,libpthread)) | $(eval $(call BuildPackage,libpthread)) | ||||||
| $(eval $(call BuildPackage,uclibc)) | $(eval $(call BuildPackage,librt)) | ||||||
| $(eval $(call BuildPackage,ldd)) | $(eval $(call BuildPackage,ldd)) | ||||||
| $(eval $(call BuildPackage,ldconfig)) | $(eval $(call BuildPackage,ldconfig)) | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| #  | #  | ||||||
| # Copyright (C) 2006 OpenWrt.org | # Copyright (C) 2006-2008 OpenWrt.org | ||||||
| # | # | ||||||
| # This is free software, licensed under the GNU General Public License v2. | # This is free software, licensed under the GNU General Public License v2. | ||||||
| # See /LICENSE for more information. | # See /LICENSE for more information. | ||||||
| @@ -37,7 +37,7 @@ define Package/kexec-tools/config | |||||||
| endef | endef | ||||||
|  |  | ||||||
| CONFIGURE_ARGS = \ | CONFIGURE_ARGS = \ | ||||||
| 		--target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-uclibc \ | 		--target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-$(TARGET_SUFFIX) \ | ||||||
| 		--host=$(GNU_TARGET_NAME)-uclibc \ | 		--host=$(GNU_TARGET_NAME)-uclibc \ | ||||||
| 		--build=$(GNU_HOST_NAME) \ | 		--build=$(GNU_HOST_NAME) \ | ||||||
| 		--program-prefix="" \ | 		--program-prefix="" \ | ||||||
| @@ -49,7 +49,9 @@ CONFIGURE_ARGS = \ | |||||||
| 		--libexecdir=/usr/lib \ | 		--libexecdir=/usr/lib \ | ||||||
| 		--sysconfdir=/etc \ | 		--sysconfdir=/etc \ | ||||||
|  |  | ||||||
| CONFIGURE_VARS += BUILD_CC=$(HOSTCC) | CONFIGURE_VARS += \ | ||||||
|  | 	BUILD_CC=$(HOSTCC) \ | ||||||
|  | 	TARGET_CC=$(TARGET_CC) \ | ||||||
|  |  | ||||||
| define Build/Compile | define Build/Compile | ||||||
| 	$(MAKE) -C $(PKG_BUILD_DIR) all | 	$(MAKE) -C $(PKG_BUILD_DIR) all | ||||||
|   | |||||||
							
								
								
									
										23
									
								
								rules.mk
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								rules.mk
									
									
									
									
									
								
							| @@ -34,11 +34,14 @@ _SINGLE=export MAKEFLAGS=$(space); | |||||||
| ARCH:=$(call qstrip,$(shell echo $(CONFIG_ARCH) | sed -e 's/i[3-9]86/i386/')) | ARCH:=$(call qstrip,$(shell echo $(CONFIG_ARCH) | sed -e 's/i[3-9]86/i386/')) | ||||||
| BOARD:=$(call qstrip,$(CONFIG_TARGET_BOARD)) | BOARD:=$(call qstrip,$(CONFIG_TARGET_BOARD)) | ||||||
| TARGET_OPTIMIZATION:=$(call qstrip,$(CONFIG_TARGET_OPTIMIZATION)) | TARGET_OPTIMIZATION:=$(call qstrip,$(CONFIG_TARGET_OPTIMIZATION)) | ||||||
|  | TARGET_SUFFIX=$(call qstrip,$(CONFIG_TARGET_SUFFIX)) | ||||||
| BUILD_SUFFIX:=$(call qstrip,$(CONFIG_BUILD_SUFFIX)) | BUILD_SUFFIX:=$(call qstrip,$(CONFIG_BUILD_SUFFIX)) | ||||||
| GCCV:=$(call qstrip,$(CONFIG_GCC_VERSION)) | GCCV:=$(call qstrip,$(CONFIG_GCC_VERSION)) | ||||||
|  | LIBC:=$(call qstrip,$(CONFIG_LIBC)) | ||||||
|  | LIBCV:=$(call qstrip,$(CONFIG_LIBC_VERSION)) | ||||||
| SUBDIR:=$(patsubst $(TOPDIR)/%,%,${CURDIR}) | SUBDIR:=$(patsubst $(TOPDIR)/%,%,${CURDIR}) | ||||||
|  |  | ||||||
| OPTIMIZE_FOR_CPU=$(ARCH) | OPTIMIZE_FOR_CPU=$(shell echo $(ARCH) | sed -e 's/i386/i486/') | ||||||
|  |  | ||||||
| ifeq ($(ARCH),powerpc) | ifeq ($(ARCH),powerpc) | ||||||
|   FPIC:=-fPIC |   FPIC:=-fPIC | ||||||
| @@ -51,29 +54,29 @@ BIN_DIR:=$(TOPDIR)/bin | |||||||
| INCLUDE_DIR:=$(TOPDIR)/include | INCLUDE_DIR:=$(TOPDIR)/include | ||||||
| SCRIPT_DIR:=$(TOPDIR)/scripts | SCRIPT_DIR:=$(TOPDIR)/scripts | ||||||
| BUILD_DIR_BASE:=$(TOPDIR)/build_dir | BUILD_DIR_BASE:=$(TOPDIR)/build_dir | ||||||
| BUILD_DIR:=$(BUILD_DIR_BASE)/$(ARCH)$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX)) | BUILD_DIR:=$(BUILD_DIR_BASE)/target-$(ARCH)_$(LIBC)-$(LIBCV)$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX)) | ||||||
| BUILD_DIR_HOST:=$(BUILD_DIR_BASE)/host | BUILD_DIR_HOST:=$(BUILD_DIR_BASE)/host | ||||||
| BUILD_DIR_TOOLCHAIN:=$(BUILD_DIR_BASE)/toolchain-$(ARCH)_gcc$(GCCV) | BUILD_DIR_TOOLCHAIN:=$(BUILD_DIR_BASE)/toolchain-$(ARCH)_gcc-$(GCCV)_$(LIBC)-$(LIBCV) | ||||||
| STAGING_DIR:=$(TOPDIR)/staging_dir/$(ARCH) | STAGING_DIR:=$(TOPDIR)/staging_dir/target-$(ARCH)_$(LIBC)-$(LIBCV) | ||||||
| STAGING_DIR_HOST:=$(TOPDIR)/staging_dir/host | STAGING_DIR_HOST:=$(TOPDIR)/staging_dir/host | ||||||
| TOOLCHAIN_DIR:=$(TOPDIR)/staging_dir/toolchain-$(ARCH)_gcc$(GCCV) | TOOLCHAIN_DIR:=$(TOPDIR)/staging_dir/toolchain-$(ARCH)_gcc-$(GCCV)_$(LIBC)-$(LIBCV) | ||||||
| PACKAGE_DIR:=$(BIN_DIR)/packages/$(ARCH) | PACKAGE_DIR:=$(BIN_DIR)/packages/$(ARCH) | ||||||
| STAMP_DIR:=$(BUILD_DIR)/stamp | STAMP_DIR:=$(BUILD_DIR)/stamp | ||||||
| STAMP_DIR_HOST=$(BUILD_DIR_HOST)/stamp | STAMP_DIR_HOST=$(BUILD_DIR_HOST)/stamp | ||||||
| TARGET_DIR:=$(BUILD_DIR)/root-$(BOARD) | TARGET_DIR:=$(BUILD_DIR)/root-$(BOARD) | ||||||
| IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/ipkg | IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/ipkg | ||||||
|  |  | ||||||
| TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(STAGING_DIR_HOST)/bin:$(STAGING_DIR)/host/bin:$(PATH) | TARGET_PATH:=$(TOOLCHAIN_DIR)/usr/bin:$(STAGING_DIR_HOST)/bin:$(STAGING_DIR)/host/bin:$(PATH) | ||||||
| TARGET_CFLAGS:=$(TARGET_OPTIMIZATION)$(if $(CONFIG_DEBUG), -g3) | TARGET_CFLAGS:=$(TARGET_OPTIMIZATION)$(if $(CONFIG_DEBUG), -g3) | ||||||
| TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include | TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include | ||||||
| TARGET_LDFLAGS:=-L$(TOOLCHAIN_DIR)/lib -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib | TARGET_LDFLAGS:=-L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib | ||||||
| LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-lgcc_s,$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a)) | LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-lgcc_s,$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a)) | ||||||
|  |  | ||||||
| ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) | ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) | ||||||
|   -include $(TOOLCHAIN_DIR)/info.mk |   -include $(TOOLCHAIN_DIR)/info.mk | ||||||
|   REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc$(if $(CONFIG_EABI_SUPPORT),gnueabi) |   REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX)) | ||||||
|   GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux |   GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux | ||||||
|   TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-linux-uclibc$(if $(CONFIG_EABI_SUPPORT),gnueabi)-) |   TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))-) | ||||||
|   TARGET_CFLAGS+= -fhonour-copts |   TARGET_CFLAGS+= -fhonour-copts | ||||||
| endif | endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -41,6 +41,30 @@ menuconfig EXTRA_TARGET_ARCH | |||||||
|  |  | ||||||
| source "toolchain/binutils/Config.in" | source "toolchain/binutils/Config.in" | ||||||
| source "toolchain/gcc/Config.in" | source "toolchain/gcc/Config.in" | ||||||
|  |  | ||||||
|  | choice | ||||||
|  | 	prompt "LIBC implementation" if TOOLCHAINOPTS | ||||||
|  | 	default USE_UCLIBC | ||||||
|  | 	help | ||||||
|  | 	  Select the LIBC implementation. | ||||||
|  |  | ||||||
|  | 	config USE_EGLIBC | ||||||
|  | 		bool "Use eglibc" | ||||||
|  | 		depends !avr32 | ||||||
|  | 		select NO_STRIP | ||||||
|  | 	 | ||||||
|  | 	config USE_GLIBC | ||||||
|  | 		bool "Use glibc" | ||||||
|  | 		depends !avr32 | ||||||
|  | 		select NO_STRIP | ||||||
|  | 	 | ||||||
|  | 	config USE_UCLIBC | ||||||
|  | 		bool "Use uClibc" | ||||||
|  |  | ||||||
|  | endchoice | ||||||
|  |  | ||||||
|  | source "toolchain/eglibc/Config.in" | ||||||
|  | source "toolchain/glibc/Config.in" | ||||||
| source "toolchain/uClibc/Config.in" | source "toolchain/uClibc/Config.in" | ||||||
|  |  | ||||||
| config GDB | config GDB | ||||||
| @@ -82,7 +106,7 @@ config TARGET_OPTIMIZATION | |||||||
| 	prompt "Target Optimizations" if TOOLCHAINOPTS | 	prompt "Target Optimizations" if TOOLCHAINOPTS | ||||||
| 	default "-O2 -pipe -march=i686 -funit-at-a-time" if TARGET_x86_mediacenter | 	default "-O2 -pipe -march=i686 -funit-at-a-time" if TARGET_x86_mediacenter | ||||||
| 	default "-O2 -pipe -march=i486 -funit-at-a-time" if TARGET_x86 | 	default "-O2 -pipe -march=i486 -funit-at-a-time" if TARGET_x86 | ||||||
| 	default "-Os -pipe -march=i486 -funit-at-a-time" if TARGET_rdc | 	default "-Os -pipe -march=i486 -funit-at-a-time" if TARGET_rdc || TARGET_uml | ||||||
| 	default "-Os -pipe -mips32r2 -mtune=mips32r2 -funit-at-a-time" if TARGET_ar71xx | 	default "-Os -pipe -mips32r2 -mtune=mips32r2 -funit-at-a-time" if TARGET_ar71xx | ||||||
| 	default "-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time" if mipsel || mips | 	default "-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time" if mipsel || mips | ||||||
| 	default "-Os -pipe -march=armv5te -mtune=xscale -funit-at-a-time" if TARGET_ixp4xx || TARGET_iop32x || TARGET_pxa || TARGET_orion | 	default "-Os -pipe -march=armv5te -mtune=xscale -funit-at-a-time" if TARGET_ixp4xx || TARGET_iop32x || TARGET_pxa || TARGET_orion | ||||||
| @@ -91,5 +115,32 @@ config TARGET_OPTIMIZATION | |||||||
| 	help | 	help | ||||||
| 	  Optimizations to use when building for the target host. | 	  Optimizations to use when building for the target host. | ||||||
|  |  | ||||||
|  | config USE_UCLIBC | ||||||
|  | 	bool | ||||||
|  | 	default y if !TOOLCHAINOPTS | ||||||
|  |  | ||||||
| source "toolchain/gcc/Config.version" | source "toolchain/gcc/Config.version" | ||||||
|  |  | ||||||
|  | source "toolchain/eglibc/Config.version" | ||||||
|  | source "toolchain/glibc/Config.version" | ||||||
| source "toolchain/uClibc/Config.version" | source "toolchain/uClibc/Config.version" | ||||||
|  |  | ||||||
|  | config LIBC | ||||||
|  | 	string | ||||||
|  | 	default "eglibc"  if USE_EGLIBC | ||||||
|  | 	default "glibc"   if USE_GLIBC | ||||||
|  | 	default "uClibc"  if USE_UCLIBC | ||||||
|  |  | ||||||
|  | config LIBC_VERSION | ||||||
|  | 	string | ||||||
|  | 	default EGLIBC_VERSION  if USE_EGLIBC | ||||||
|  | 	default GLIBC_VERSION   if USE_GLIBC | ||||||
|  | 	default UCLIBC_VERSION  if USE_UCLIBC | ||||||
|  |  | ||||||
|  | config TARGET_SUFFIX | ||||||
|  | 	string | ||||||
|  | 	default "gnueabi"         if (USE_EGLIBC || USE_GLIBC) && EABI_SUPPORT | ||||||
|  | 	default "gnu"             if (USE_EGLIBC || USE_GLIBC) && !EABI_SUPPORT | ||||||
|  | 	default "uclibc-gnueabi"  if USE_UCLIBC && EABI_SUPPORT | ||||||
|  | 	default "uclibc"          if USE_UCLIBC && !EABI_SUPPORT | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,26 +1,49 @@ | |||||||
| #  | #  | ||||||
| # Copyright (C) 2007 OpenWrt.org | # Copyright (C) 2007-2008 OpenWrt.org | ||||||
| # | # | ||||||
| # This is free software, licensed under the GNU General Public License v2. | # This is free software, licensed under the GNU General Public License v2. | ||||||
| # See /LICENSE for more information. | # See /LICENSE for more information. | ||||||
| # | # | ||||||
| # Main makefile for the toolchain | # Main makefile for the toolchain | ||||||
| # | # | ||||||
|  | # Steps: | ||||||
|  | # 1) toolchain/binutils/install | ||||||
|  | #    build & install binutils | ||||||
|  | # 2) toolchain/gcc/prepare | ||||||
|  | #    build & install a minimal gcc, needed for steps 3 & 4 | ||||||
|  | # 3) toolchain/kernel-headers/install | ||||||
|  | #    install kernel headers, needed for step 4 | ||||||
|  | # 4) toolchain/libc/prepare | ||||||
|  | #    build & install libc headers & support files, needed for step 5 | ||||||
|  | # 5) toolchain/gcc/compile | ||||||
|  | #    build & install an initial gcc, needed for step 6 | ||||||
|  | # 6) toolchain/libc/compile | ||||||
|  | #    build & install the final libc | ||||||
|  | # 7) toolchain/gcc/install | ||||||
|  | #    build & install the final gcc | ||||||
|  | # 8) toolchain/libc/install | ||||||
|  | #    build & install libc utilities | ||||||
|  | # | ||||||
|  |  | ||||||
| curdir:=toolchain | curdir:=toolchain | ||||||
|  |  | ||||||
| # subdirectories to descend into | # subdirectories to descend into | ||||||
| $(curdir)/builddirs := kernel-headers $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_NATIVE_TOOLCHAIN),,binutils gcc uClibc) | $(curdir)/builddirs := kernel-headers $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_NATIVE_TOOLCHAIN),,binutils gcc $(LIBC) $(if $(CONFIG_GLIBC_PORTS),glibc-ports)) | ||||||
| $(curdir)/builddirs-compile:=. $(filter-out kernel-headers,$($(curdir)/builddirs)) | $(curdir)/builddirs-compile:=$($(curdir)/builddirs-prepare) | ||||||
| $(curdir)/builddirs-install:=$($(curdir)/builddirs-compile) | $(curdir)/builddirs-install:=$($(curdir)/builddirs-compile) | ||||||
|  |  | ||||||
| # builddir dependencies | # builddir dependencies | ||||||
| $(curdir)/uClibc/prepare:=$(curdir)/kernel-headers/prepare | $(curdir)/$(LIBC)/prepare:=$(curdir)/kernel-headers/install | ||||||
| ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) | ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) | ||||||
|   $(curdir)/binutils/prepare:=$(curdir)/uClibc/prepare |  | ||||||
|   $(curdir)/gcc/prepare:=$(curdir)/binutils/install |   $(curdir)/gcc/prepare:=$(curdir)/binutils/install | ||||||
|   $(curdir)/uClibc/compile:=$(curdir)/gcc/compile |   $(curdir)/kernel-headers/install:=$(curdir)/gcc/prepare | ||||||
|   $(curdir)/gcc/install:=$(curdir)/uClibc/compile |   $(curdir)/gcc/compile:=$(curdir)/$(LIBC)/prepare | ||||||
|   $(curdir)/uClibc/install:=$(curdir)/gcc/install |   $(curdir)/$(LIBC)/compile:=$(curdir)/gcc/compile | ||||||
|  |   $(curdir)/gcc/install:=$(curdir)/$(LIBC)/compile | ||||||
|  |   $(curdir)/$(LIBC)/install:=$(curdir)/gcc/install | ||||||
|  |   ifneq ($(CONFIG_GLIBC_PORTS),) | ||||||
|  |     $(curdir)/glibc/prepare:=$(curdir)/glibc-ports/prepare | ||||||
|  |   endif | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifneq ($(ARCH),) | ifneq ($(ARCH),) | ||||||
| @@ -29,7 +52,7 @@ ifneq ($(ARCH),) | |||||||
| 		set -x; \ | 		set -x; \ | ||||||
| 		mkdir -p "$$dir"; \ | 		mkdir -p "$$dir"; \ | ||||||
| 		cd "$$dir"; \ | 		cd "$$dir"; \ | ||||||
| 		mkdir -p bin lib include stamp; \ | 		mkdir -p stamp lib usr/include usr/lib ; \ | ||||||
| 	); done | 	); done | ||||||
| 	@grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@ | 	@grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@ | ||||||
| 	@touch $@ | 	@touch $@ | ||||||
|   | |||||||
| @@ -23,20 +23,28 @@ PATCH_DIR:=./patches/$(PKG_VERSION) | |||||||
|  |  | ||||||
| STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) | STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) | ||||||
| BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) | BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) | ||||||
|  |  | ||||||
| override CONFIG_AUTOREBUILD= | override CONFIG_AUTOREBUILD= | ||||||
|  |  | ||||||
| include $(INCLUDE_DIR)/host-build.mk | include $(INCLUDE_DIR)/host-build.mk | ||||||
|  |  | ||||||
| EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc) | EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX)) | ||||||
|  |  | ||||||
|  | define Build/Prepare | ||||||
|  | 	$(call Build/Prepare/Default) | ||||||
|  | 	ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||||
|  | 	$(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/ | ||||||
|  | endef | ||||||
|  |  | ||||||
| define Build/Configure | define Build/Configure | ||||||
| 	$(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/ |  | ||||||
| 	(cd $(PKG_BUILD_DIR); \ | 	(cd $(PKG_BUILD_DIR); \ | ||||||
| 		./configure \ | 		./configure \ | ||||||
| 		--prefix=$(STAGING_DIR_HOST) \ | 		--prefix=$(TOOLCHAIN_DIR)/usr \ | ||||||
| 		--build=$(GNU_HOST_NAME) \ | 		--build=$(GNU_HOST_NAME) \ | ||||||
| 		--host=$(GNU_HOST_NAME) \ | 		--host=$(GNU_HOST_NAME) \ | ||||||
| 		--target=$(REAL_GNU_TARGET_NAME) \ | 		--target=$(REAL_GNU_TARGET_NAME) \ | ||||||
|  | 		--with-sysroot=$(TOOLCHAIN_DIR) \ | ||||||
|  | 		--disable-multilib \ | ||||||
| 		--disable-werror \ | 		--disable-werror \ | ||||||
| 		--disable-nls \ | 		--disable-nls \ | ||||||
| 		$(EXTRA_TARGET) \ | 		$(EXTRA_TARGET) \ | ||||||
| @@ -53,4 +61,10 @@ define Build/Install | |||||||
| 	$(MAKE) -C $(PKG_BUILD_DIR) install | 	$(MAKE) -C $(PKG_BUILD_DIR) install | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | define Build/Clean | ||||||
|  | 	rm -rf \ | ||||||
|  | 		$(PKG_BUILD_DIR) \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||||
|  | endef | ||||||
|  |  | ||||||
| $(eval $(call HostBuild)) | $(eval $(call HostBuild)) | ||||||
|   | |||||||
							
								
								
									
										40
									
								
								toolchain/eglibc/Config.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								toolchain/eglibc/Config.in
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								toolchain/eglibc/Config.version
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								toolchain/eglibc/Config.version
									
									
									
									
									
										Normal file
									
								
							| @@ -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" | ||||||
|  |  | ||||||
							
								
								
									
										168
									
								
								toolchain/eglibc/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								toolchain/eglibc/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -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)) | ||||||
							
								
								
									
										726
									
								
								toolchain/eglibc/config/Config.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										726
									
								
								toolchain/eglibc/config/Config.in
									
									
									
									
									
										Normal file
									
								
							| @@ -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. | ||||||
							
								
								
									
										11
									
								
								toolchain/eglibc/patches/2.6.1/101-arm_asm_page_h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								toolchain/eglibc/patches/2.6.1/101-arm_asm_page_h.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -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" | ||||||
							
								
								
									
										11
									
								
								toolchain/eglibc/patches/2.7/101-arm_asm_page_h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								toolchain/eglibc/patches/2.7/101-arm_asm_page_h.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -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" | ||||||
							
								
								
									
										13
									
								
								toolchain/eglibc/patches/2.7/103-arm_nptl_cargs6.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								toolchain/eglibc/patches/2.7/103-arm_nptl_cargs6.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -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) | ||||||
							
								
								
									
										11
									
								
								toolchain/eglibc/patches/2.7/104-arm_nptl_lowlevellock.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								toolchain/eglibc/patches/2.7/104-arm_nptl_lowlevellock.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||||
							
								
								
									
										13
									
								
								toolchain/eglibc/patches/2.8/103-arm_nptl_cargs6.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								toolchain/eglibc/patches/2.8/103-arm_nptl_cargs6.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -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) | ||||||
							
								
								
									
										11
									
								
								toolchain/eglibc/patches/2.8/104-arm_nptl_lowlevellock.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								toolchain/eglibc/patches/2.8/104-arm_nptl_lowlevellock.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||||
| @@ -40,6 +40,7 @@ config EXTRA_GCC_CONFIG_OPTIONS | |||||||
|  |  | ||||||
| config SSP_SUPPORT | config SSP_SUPPORT | ||||||
| 	bool | 	bool | ||||||
|  | 	depends !GCC_VERSION_3_4_6 | ||||||
| 	prompt "Enable Smash Stacking Protection support" if TOOLCHAINOPTS | 	prompt "Enable Smash Stacking Protection support" if TOOLCHAINOPTS | ||||||
| 	default n | 	default n | ||||||
| 	help | 	help | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| # Makefile for to build a gcc/uClibc toolchain |  | ||||||
| # | # | ||||||
| # Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.org> | # Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.org> | ||||||
| # Copyright (C) 2004 Manuel Novoa III <mjn3@uclibc.org> | # Copyright (C) 2004 Manuel Novoa III <mjn3@uclibc.org> | ||||||
| # Copyright (C) 2005-2006 Felix Fietkau <nbd@openwrt.org> | # Copyright (C) 2005-2006 Felix Fietkau <nbd@openwrt.org> | ||||||
|  | # Copyright (C) 2006-2008 OpenWrt.org | ||||||
| # | # | ||||||
| # This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||||
| # it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||||
| @@ -40,111 +40,163 @@ PATCH_DIR=./patches/$(PKG_VERSION) | |||||||
|  |  | ||||||
| STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) | STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) | ||||||
| BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) | BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) | ||||||
|  |  | ||||||
| override CONFIG_AUTOREBUILD= | override CONFIG_AUTOREBUILD= | ||||||
|  |  | ||||||
| include $(INCLUDE_DIR)/host-build.mk | include $(INCLUDE_DIR)/host-build.mk | ||||||
|  |  | ||||||
| STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed | STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed | ||||||
| BUILD_DIR1:=$(BUILD_DIR_HOST)/gcc-$(PKG_VERSION)-initial |  | ||||||
| BUILD_DIR2:=$(BUILD_DIR_HOST)/gcc-$(PKG_VERSION)-final | PKG_BUILD_DIR0:=$(PKG_BUILD_DIR)-minimal | ||||||
|  | PKG_BUILD_DIR1:=$(PKG_BUILD_DIR)-initial | ||||||
|  | PKG_BUILD_DIR2:=$(PKG_BUILD_DIR)-final | ||||||
|  |  | ||||||
| SEP:=, | SEP:=, | ||||||
| TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)" | TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)" | ||||||
|  |  | ||||||
| ifeq ($(CONFIG_SSP_SUPPORT),y) | GCC_CONFIGURE_COMMON:= \ | ||||||
|   SSP:=--enable-libssp | 	SHELL="$(BASH)" \ | ||||||
|  | 	$(PKG_BUILD_DIR)/configure \ | ||||||
|  | 		--prefix=$(TOOLCHAIN_DIR)/usr \ | ||||||
|  | 		--build=$(GNU_HOST_NAME) \ | ||||||
|  | 		--host=$(GNU_HOST_NAME) \ | ||||||
|  | 		--target=$(REAL_GNU_TARGET_NAME) \ | ||||||
|  | 		--with-gnu-ld \ | ||||||
|  | 		--enable-target-optspace \ | ||||||
|  | 		--disable-libmudflap \ | ||||||
|  | 		--disable-multilib \ | ||||||
|  | 		--disable-nls \ | ||||||
|  | 		$(SOFT_FLOAT_CONFIG_OPTION) \ | ||||||
|  | 		$(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \ | ||||||
|  |  | ||||||
|  | ifneq ($(CONFIG_SSP_SUPPORT),) | ||||||
|  | 	GCC_CONFIGURE_COMMON+= \ | ||||||
|  | 		--enable-libssp | ||||||
| else | else | ||||||
|   SSP:=--disable-libssp | 	GCC_CONFIGURE_COMMON+= \ | ||||||
|  | 		--disable-libssp | ||||||
| endif | endif | ||||||
|  |  | ||||||
| EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-biarch --enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc) | ifneq ($(CONFIG_EXTRA_TARGET_ARCH),) | ||||||
|  | 	GCC_CONFIGURE_COMMON+= \ | ||||||
|  | 		--enable-biarch \ | ||||||
|  | 		--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX) | ||||||
|  | endif | ||||||
|  |  | ||||||
| define Stage1/Configure | ifeq ($(LIBC),uClibc) | ||||||
| 	$(SED) 's,TARGET_CROSS=.*,TARGET_CROSS=$(REAL_GNU_TARGET_NAME)-,' $(TOOLCHAIN_DIR)/info.mk | 	GCC_CONFIGURE_COMMON+= \ | ||||||
| 	$(SED) 's,GCC_VERSION=.*,GCC_VERSION=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | 		--disable-__cxa_atexit | ||||||
| 	mkdir -p $(BUILD_DIR1) | else | ||||||
| 	(cd $(BUILD_DIR1); rm -f config.cache; \ | 	GCC_CONFIGURE_COMMON+= \ | ||||||
| 		SHELL="$(BASH)" \ | 		--enable-__cxa_atexit | ||||||
| 		$(PKG_BUILD_DIR)/configure \ | endif | ||||||
| 		--prefix=$(TOOLCHAIN_DIR) \ |  | ||||||
| 		--build=$(GNU_HOST_NAME) \ | GCC_CONFIGURE_STAGE0:= \ | ||||||
| 		--host=$(GNU_HOST_NAME) \ | 	$(GCC_CONFIGURE_COMMON) \ | ||||||
| 		--target=$(REAL_GNU_TARGET_NAME) \ | 		--with-newlib \ | ||||||
|  | 		--without-headers \ | ||||||
|  | 		--enable-languages=c \ | ||||||
|  | 		--disable-libgomp \ | ||||||
|  | 		--disable-libssp \ | ||||||
|  | 		--disable-shared \ | ||||||
|  | 		--disable-threads \ | ||||||
|  |  | ||||||
|  | GCC_CONFIGURE_STAGE1:= \ | ||||||
|  | 	$(GCC_CONFIGURE_COMMON) \ | ||||||
|  | 		--with-newlib \ | ||||||
|  | 		--with-sysroot=$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev \ | ||||||
| 		--enable-languages=c \ | 		--enable-languages=c \ | ||||||
| 		--disable-shared \ | 		--disable-shared \ | ||||||
| 		--with-sysroot=$(BUILD_DIR_HOST)/uClibc_dev/ \ | 		--disable-threads \ | ||||||
| 		--disable-__cxa_atexit \ |  | ||||||
| 		--enable-target-optspace \ |  | ||||||
| 		--with-gnu-ld \ |  | ||||||
| 		--disable-nls \ |  | ||||||
| 		--disable-libmudflap \ |  | ||||||
| 		--disable-multilib \ |  | ||||||
| 		$(SSP) \ |  | ||||||
| 		$(EXTRA_TARGET) \ |  | ||||||
| 		$(SOFT_FLOAT_CONFIG_OPTION) \ |  | ||||||
| 		$(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \ |  | ||||||
| 	); |  | ||||||
| endef |  | ||||||
| define Stage1/Compile |  | ||||||
| 	export SHELL="$(BASH)"; $(MAKE) -C $(BUILD_DIR1) all-gcc |  | ||||||
| endef |  | ||||||
| define Stage1/Install |  | ||||||
| 	export SHELL="$(BASH)"; $(MAKE) -C $(BUILD_DIR1) install-gcc |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Stage2/Configure | GCC_CONFIGURE_STAGE2:= \ | ||||||
| 	mkdir -p $(BUILD_DIR2) $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME) | 	$(GCC_CONFIGURE_COMMON) \ | ||||||
| 	# Important!  Required for limits.h to be fixed. |  | ||||||
| 	rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include |  | ||||||
| 	ln -sf ../include $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include |  | ||||||
| 	rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib |  | ||||||
| 	ln -sf ../lib $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib |  | ||||||
| 	(cd $(BUILD_DIR2); rm -f config.cache; \ |  | ||||||
| 		SHELL="$(BASH)" \ |  | ||||||
| 		$(PKG_BUILD_DIR)/configure \ |  | ||||||
| 		--prefix=$(TOOLCHAIN_DIR) \ |  | ||||||
| 		--build=$(GNU_HOST_NAME) \ |  | ||||||
| 		--host=$(GNU_HOST_NAME) \ |  | ||||||
| 		--target=$(REAL_GNU_TARGET_NAME) \ |  | ||||||
| 		--enable-languages=$(TARGET_LANGUAGES) \ | 		--enable-languages=$(TARGET_LANGUAGES) \ | ||||||
| 		--enable-shared \ | 		--enable-shared \ | ||||||
| 		--disable-__cxa_atexit \ | 		--enable-threads \ | ||||||
| 		--enable-target-optspace \ | 		--with-slibdir=$(TOOLCHAIN_DIR)/lib \ | ||||||
| 		--with-gnu-ld \ |  | ||||||
| 		--disable-nls \ | GCC_MAKE:= \ | ||||||
| 		--disable-libmudflap \ | 	export SHELL="$(BASH)"; \ | ||||||
| 		--disable-multilib \ | 	$(MAKE) \ | ||||||
| 		$(SSP) \ |  | ||||||
| 		$(EXTRA_TARGET) \ |  | ||||||
| 		$(SOFT_FLOAT_CONFIG_OPTION) \ | define Build/SetToolchainInfo | ||||||
| 		$(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \ | 	$(SED) 's,TARGET_CROSS=.*,TARGET_CROSS=$(REAL_GNU_TARGET_NAME)-,' $(TOOLCHAIN_DIR)/info.mk | ||||||
|  | 	$(SED) 's,GCC_VERSION=.*,GCC_VERSION=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | define Stage0/Configure | ||||||
|  | 	mkdir -p $(PKG_BUILD_DIR0) | ||||||
|  | 	(cd $(PKG_BUILD_DIR0); rm -f config.cache; \ | ||||||
|  | 		$(GCC_CONFIGURE_STAGE0) \ | ||||||
|  | 	); | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage0/Compile | ||||||
|  | 	$(GCC_MAKE) -C $(PKG_BUILD_DIR0) all-gcc | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage0/Install | ||||||
|  | 	$(GCC_MAKE) -C $(PKG_BUILD_DIR0) install-gcc | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | define Stage1/Configure | ||||||
|  | 	mkdir -p $(PKG_BUILD_DIR1) | ||||||
|  | 	(cd $(PKG_BUILD_DIR1); rm -f config.cache; \ | ||||||
|  | 		$(GCC_CONFIGURE_STAGE1) \ | ||||||
|  | 	); | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage1/Compile | ||||||
|  | 	$(GCC_MAKE) -C $(PKG_BUILD_DIR1) all-build-libiberty all-gcc | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage1/Install | ||||||
|  | 	$(GCC_MAKE) -C $(PKG_BUILD_DIR1) install-gcc | ||||||
|  | 	# XXX: glibc insists on linking against libgcc_eh | ||||||
|  | 	( cd $(TOOLCHAIN_DIR)/usr/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION) ; \ | ||||||
|  | 		[ -e libgcc_eh.a ] || ln -sf libgcc.a libgcc_eh.a ; \ | ||||||
|  | 	) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | define Stage2/Configure | ||||||
|  | 	mkdir -p $(PKG_BUILD_DIR2) $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME) | ||||||
|  | 	# Important!  Required for limits.h to be fixed. | ||||||
|  | 	rm -rf $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sys-include | ||||||
|  | 	ln -sf ../include $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sys-include | ||||||
|  | 	rm -rf $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib | ||||||
|  | 	ln -sf ../lib $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib | ||||||
|  | 	(cd $(PKG_BUILD_DIR2); rm -f config.cache; \ | ||||||
|  | 		$(GCC_CONFIGURE_STAGE2) \ | ||||||
| 	); | 	); | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Stage2/Compile | define Stage2/Compile | ||||||
| 	export SHELL="\$(BASH)"; \$(MAKE) -C \$(BUILD_DIR2) all | 	$(GCC_MAKE) -C $(PKG_BUILD_DIR2) all | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define SetupExtraArch | define SetupExtraArch | ||||||
| 	for app in $(TOOLCHAIN_DIR)/bin/$(OPTIMIZE_FOR_CPU)*-{gcc,gcc-*,g++}; do \ | 	for app in $(TOOLCHAIN_DIR)/usr/bin/$(OPTIMIZE_FOR_CPU)*-{gcc,gcc-*,g++}; do \ | ||||||
| 		[ -e $$$$app ] || continue; \ | 		[ -e $$$$app ] || continue; \ | ||||||
| 		old_base=$$$$(basename $$$$app); \ | 		old_base=$$$$(basename $$$$app); \ | ||||||
| 		new_base=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-$$$${old_base##$(OPTIMIZE_FOR_CPU)-}; \ | 		new_base=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-$$$${old_base##$(OPTIMIZE_FOR_CPU)-}; \ | ||||||
| 		sed -e "s/@CC_BASE@/$$$$old_base/" \ | 		sed -e "s/@CC_BASE@/$$$$old_base/" \ | ||||||
| 			-e 's/@EXTRA_ARCH_OPTS@/$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_OPTS))/' \ | 			-e 's/@EXTRA_ARCH_OPTS@/$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_OPTS))/' \ | ||||||
| 			 ./files/alternate-arch-cc.in > \ | 			 ./files/alternate-arch-cc.in > \ | ||||||
| 			 $(TOOLCHAIN_DIR)/bin/$$$$new_base; \ | 			 $(TOOLCHAIN_DIR)/usr/bin/$$$$new_base; \ | ||||||
| 		chmod a+x $(TOOLCHAIN_DIR)/bin/$$$$new_base; \ | 		chmod a+x $(TOOLCHAIN_DIR)/usr/bin/$$$$new_base; \ | ||||||
| 	done | 	done | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Stage2/Install | define Stage2/Install | ||||||
| 	$(MAKE) -C $(BUILD_DIR2) \ | 	$(GCC_MAKE) -C $(PKG_BUILD_DIR2) install | ||||||
| 		SHELL="$(BASH)" \ |  | ||||||
| 		install |  | ||||||
| 	# Set up the symlinks to enable lying about target name. | 	# Set up the symlinks to enable lying about target name. | ||||||
| 	set -e; \ | 	set -e; \ | ||||||
| 	(cd $(TOOLCHAIN_DIR); \ | 	(cd $(TOOLCHAIN_DIR)/usr; \ | ||||||
| 		ln -sf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \ | 		ln -sf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \ | ||||||
| 		cd bin; \ | 		cd bin; \ | ||||||
| 		for app in $(REAL_GNU_TARGET_NAME)-* ; do \ | 		for app in $(REAL_GNU_TARGET_NAME)-* ; do \ | ||||||
| @@ -155,21 +207,28 @@ define Stage2/Install | |||||||
| 	$(if $(CONFIG_EXTRA_TARGET_ARCH),$(call SetupExtraArch)) | 	$(if $(CONFIG_EXTRA_TARGET_ARCH),$(call SetupExtraArch)) | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  |  | ||||||
| define Build/Prepare | define Build/Prepare | ||||||
|  | 	$(call Build/SetToolchainInfo) | ||||||
| 	$(call Build/Prepare/Default) | 	$(call Build/Prepare/Default) | ||||||
|  | 	ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||||
|  | 	$(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/ | ||||||
| 	$(SED) 's,\(version_string.. = "[0-9\.]*\).*\(";\),\1 (OpenWrt-2.0)\2,' $(PKG_BUILD_DIR)/gcc/version.c | 	$(SED) 's,\(version_string.. = "[0-9\.]*\).*\(";\),\1 (OpenWrt-2.0)\2,' $(PKG_BUILD_DIR)/gcc/version.c | ||||||
| 	$(SED) 's,\(bug_report_url.. = "\).*\(";\),\1<URL:https://dev.openwrt.org/>\2,' $(PKG_BUILD_DIR)/gcc/version.c | 	$(SED) 's,\(bug_report_url.. = "\).*\(";\),\1<URL:https://dev.openwrt.org/>\2,' $(PKG_BUILD_DIR)/gcc/version.c | ||||||
| 	(cd $(PKG_BUILD_DIR)/libstdc++-v3; autoconf;); | 	(cd $(PKG_BUILD_DIR)/libstdc++-v3; autoconf;); | ||||||
| 	$(SED) 's,gcc_no_link=yes,gcc_no_link=no,' $(PKG_BUILD_DIR)/libstdc++-v3/configure | 	$(SED) 's,gcc_no_link=yes,gcc_no_link=no,' $(PKG_BUILD_DIR)/libstdc++-v3/configure | ||||||
|  | 	$(call Stage0/Configure) | ||||||
|  | 	$(call Stage0/Compile) | ||||||
|  | 	$(call Stage0/Install) | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Build/Configure | define Build/Configure | ||||||
| 	$(call Stage1/Configure) |  | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Build/Compile | define Build/Compile | ||||||
|  | 	$(call Stage1/Configure) | ||||||
| 	$(call Stage1/Compile) | 	$(call Stage1/Compile) | ||||||
| 	$(if $(wildcard $(TOOLCHAIN_DIR)/bin/$(GNU_TARGET_NAME)-gcc),,$(call Stage1/Install)) | 	$(call Stage1/Install) | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Build/Install | define Build/Install | ||||||
| @@ -181,11 +240,13 @@ endef | |||||||
| define Build/Clean | define Build/Clean | ||||||
| 	rm -rf \ | 	rm -rf \ | ||||||
| 		$(PKG_BUILD_DIR) \ | 		$(PKG_BUILD_DIR) \ | ||||||
| 		$(BUILD_DIR1) \ | 		$(PKG_BUILD_DIR0) \ | ||||||
| 		$(BUILD_DIR2) \ | 		$(PKG_BUILD_DIR1) \ | ||||||
| 		$(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME) \ | 		$(PKG_BUILD_DIR2) \ | ||||||
| 		$(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gc* \ | 		$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) \ | ||||||
| 		$(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-c* | 		$(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME) \ | ||||||
|  | 		$(TOOLCHAIN_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gc* \ | ||||||
|  | 		$(TOOLCHAIN_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-c* | ||||||
| endef | endef | ||||||
|  |  | ||||||
| $(eval $(call HostBuild)) | $(eval $(call HostBuild)) | ||||||
|   | |||||||
							
								
								
									
										58
									
								
								toolchain/glibc-ports/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								toolchain/glibc-ports/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | |||||||
|  | # | ||||||
|  | # 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:=glibc-ports | ||||||
|  | PKG_VERSION:=$(call qstrip,$(CONFIG_GLIBC_VERSION)) | ||||||
|  |  | ||||||
|  | ifeq ($(PKG_VERSION),2.3.6) | ||||||
|  |   PKG_MD5SUM:=40dce745d34ff80401da2fdfe58f6d53 | ||||||
|  | endif | ||||||
|  | ifeq ($(PKG_VERSION),2.6.1) | ||||||
|  |   PKG_MD5SUM:=53d88ca624642dd267752ccce77b19d0 | ||||||
|  | endif | ||||||
|  | ifeq ($(PKG_VERSION),2.7) | ||||||
|  |   PKG_MD5SUM:=eaeb8527b8fa286c2d887157214f9998 | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | PKG_SOURCE_URL:=@GNU/glibc/ | ||||||
|  | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | ||||||
|  | PKG_CAT:=bzcat | ||||||
|  |  | ||||||
|  | PATCH_DIR:=./patches/$(PKG_VERSION) | ||||||
|  |  | ||||||
|  | STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) | ||||||
|  | BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) | ||||||
|  |  | ||||||
|  | override CONFIG_AUTOREBUILD= | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/host-build.mk | ||||||
|  |  | ||||||
|  | STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.glibc-ports_built | ||||||
|  | STAMP_INSTALLED:=$(TOOLCHAIN_DIR)/stamp/.glibc-ports_installed | ||||||
|  |  | ||||||
|  | define Build/Prepare | ||||||
|  | $(call Build/Prepare/Default) | ||||||
|  | 	ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Configure | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Install | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Clean | ||||||
|  | 	rm -rf \ | ||||||
|  | 		$(PKG_BUILD_DIR) \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call HostBuild)) | ||||||
							
								
								
									
										13
									
								
								toolchain/glibc-ports/patches/2.6.1/101-arm_asm_page_h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								toolchain/glibc-ports/patches/2.6.1/101-arm_asm_page_h.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | http://sourceware.org/ml/crossgcc/2008-05/msg00014.html | ||||||
|  |  | ||||||
|  | diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/ioperm.c | ||||||
|  | --- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/ioperm.c	2005-06-10 13:12:09.000000000 +0200 | ||||||
|  | +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/ioperm.c	2008-05-18 16:19:45.000000000 +0200 | ||||||
|  | @@ -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" | ||||||
							
								
								
									
										13
									
								
								toolchain/glibc-ports/patches/2.6.1/102-arm_nptl.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								toolchain/glibc-ports/patches/2.6.1/102-arm_nptl.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h | ||||||
|  | --- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2005-11-16 20:22:59.000000000 +0100 | ||||||
|  | +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2007-09-06 13:53:16.000000000 +0200 | ||||||
|  | @@ -132,3 +132,9 @@ | ||||||
|  |  # define NO_CANCELLATION 1 | ||||||
|  |   | ||||||
|  |  #endif | ||||||
|  | + | ||||||
|  | +#ifndef __ASSEMBLER__ | ||||||
|  | +# define RTLD_SINGLE_THREAD_P \ | ||||||
|  | +  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ | ||||||
|  | +                   header.multiple_threads) == 0, 1) | ||||||
|  | +#endif | ||||||
| @@ -0,0 +1,11 @@ | |||||||
|  | diff -ruN glibc-ports-2.7-orig/sysdeps/mips/mips32/Makefile glibc-ports-2.7/sysdeps/mips/mips32/Makefile | ||||||
|  | --- glibc-ports-2.7-orig/ports/sysdeps/mips/mips32/Makefile	2003-03-29 09:15:28.000000000 +0100 | ||||||
|  | +++ glibc-ports-2.7/sysdeps/mips/mips32/Makefile	2008-10-01 17:04:40.475005748 +0200 | ||||||
|  | @@ -1,3 +1,7 @@ | ||||||
|  | +ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),) | ||||||
|  |  ifeq ($(filter -mabi=32,$(CC)),) | ||||||
|  |  CC += -mabi=32 | ||||||
|  |  endif | ||||||
|  | +else | ||||||
|  | +CC += -D"_MIPS_SZPTR=32" | ||||||
|  | +endif | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | From: http://sourceware.org/ml/crossgcc/2008-10/msg00044.html | ||||||
|  | From: http://sources.redhat.com/ml/libc-ports/2007-06/msg00005.html | ||||||
|  |  | ||||||
|  | 2007-06-07  Steven Munroe  <sjmunroe@us.ibm.com> | ||||||
|  |  | ||||||
|  |     * sysdeps/powerpc/nofpu/Makefile: Remove fe_nomask from libm-support. | ||||||
|  |  | ||||||
|  | diff -urN glibc-ports-2.6.1.orig/sysdeps/powerpc/nofpu/Makefile glibc-ports-2.6.1/sysdeps/powerpc/nofpu/Makefile | ||||||
|  | --- glibc-ports-2.6.1.orig/sysdeps/powerpc/nofpu/Makefile	2006-11-22 09:13:11.000000000 -0600 | ||||||
|  | +++ glibc-ports-2.6.1/sysdeps/powerpc/nofpu/Makefile	2007-06-07 09:53:05.708240976 -0500 | ||||||
|  | @@ -6,7 +6,7 @@ | ||||||
|  |  endif | ||||||
|  |   | ||||||
|  |  ifeq ($(subdir),math) | ||||||
|  | -libm-support += fenv_const fe_nomask | ||||||
|  | +libm-support += fenv_const | ||||||
|  |  CPPFLAGS += -I../soft-fp/ | ||||||
|  |  # The follow CFLAGS are a work around for GCC Bugzilla Bug 29253 | ||||||
|  |  # "expand_abs wrong default code for floating point" | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								toolchain/glibc-ports/patches/2.7/101-arm_asm_page_h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								toolchain/glibc-ports/patches/2.7/101-arm_asm_page_h.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | http://sourceware.org/ml/crossgcc/2008-05/msg00014.html | ||||||
|  |  | ||||||
|  | diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/ioperm.c | ||||||
|  | --- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/ioperm.c	2005-06-10 13:12:09.000000000 +0200 | ||||||
|  | +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/ioperm.c	2008-05-18 16:19:45.000000000 +0200 | ||||||
|  | @@ -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" | ||||||
							
								
								
									
										13
									
								
								toolchain/glibc-ports/patches/2.7/102-arm_nptl.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								toolchain/glibc-ports/patches/2.7/102-arm_nptl.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h | ||||||
|  | --- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2005-11-16 20:22:59.000000000 +0100 | ||||||
|  | +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2007-09-06 13:53:16.000000000 +0200 | ||||||
|  | @@ -126,3 +126,9 @@ | ||||||
|  |  # define NO_CANCELLATION 1 | ||||||
|  |   | ||||||
|  |  #endif | ||||||
|  | + | ||||||
|  | +#ifndef __ASSEMBLER__ | ||||||
|  | +# define RTLD_SINGLE_THREAD_P \ | ||||||
|  | +  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ | ||||||
|  | +                   header.multiple_threads) == 0, 1) | ||||||
|  | +#endif | ||||||
							
								
								
									
										15
									
								
								toolchain/glibc-ports/patches/2.7/103-arm_nptl_cargs6.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								toolchain/glibc-ports/patches/2.7/103-arm_nptl_cargs6.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | http://sourceware.org/ml/libc-ports/2008-02/msg00005.html | ||||||
|  |  | ||||||
|  | diff -durN glibc-ports-2.7.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h | ||||||
|  | --- glibc-ports-2.7.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2007-06-06 19:27:04.000000000 +0200 | ||||||
|  | +++ glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2008-05-18 16:57:21.000000000 +0200 | ||||||
|  | @@ -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) | ||||||
| @@ -0,0 +1,13 @@ | |||||||
|  | http://www.nabble.com/arm-linux-compilation-failure-and-possible-fix-td19229074.html | ||||||
|  |  | ||||||
|  | diff -durN glibc-ports-2.7.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/ioperm.c | ||||||
|  | --- glibc-ports-2.7.orig/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig	2008-10-04 20:46:13.000000000 +0200 | ||||||
|  | +++ glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h	2008-10-04 20:45:40.000000000 +0200 | ||||||
|  | @@ -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 | ||||||
| @@ -0,0 +1,11 @@ | |||||||
|  | diff -ruN glibc-ports-2.7-orig/sysdeps/mips/mips32/Makefile glibc-ports-2.7/sysdeps/mips/mips32/Makefile | ||||||
|  | --- glibc-ports-2.7-orig/sysdeps/mips/mips32/Makefile	2003-03-29 09:15:28.000000000 +0100 | ||||||
|  | +++ glibc-ports-2.7/sysdeps/mips/mips32/Makefile	2008-10-01 17:04:40.475005748 +0200 | ||||||
|  | @@ -1,3 +1,7 @@ | ||||||
|  | +ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),) | ||||||
|  |  ifeq ($(filter -mabi=32,$(CC)),) | ||||||
|  |  CC += -mabi=32 | ||||||
|  |  endif | ||||||
|  | +else | ||||||
|  | +CC += -D"_MIPS_SZPTR=32" | ||||||
|  | +endif | ||||||
							
								
								
									
										17
									
								
								toolchain/glibc/Config.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								toolchain/glibc/Config.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | choice | ||||||
|  | 	prompt "glibc version"  | ||||||
|  | 	depends on TOOLCHAINOPTS && USE_GLIBC | ||||||
|  | 	default GLIBC_VERSION_2_6_1 | ||||||
|  | 	help | ||||||
|  | 	  Select the version of glibc you wish to use. | ||||||
|  |  | ||||||
|  | 	config GLIBC_VERSION_2_3_6 | ||||||
|  | 		bool "glibc 2.3.6" | ||||||
|  |  | ||||||
|  | 	config GLIBC_VERSION_2_6_1 | ||||||
|  | 		bool "glibc 2.6.1" | ||||||
|  |  | ||||||
|  | 	config GLIBC_VERSION_2_7 | ||||||
|  | 		bool "glibc 2.7" | ||||||
|  |  | ||||||
|  | endchoice | ||||||
							
								
								
									
										15
									
								
								toolchain/glibc/Config.version
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								toolchain/glibc/Config.version
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | config GLIBC_VERSION | ||||||
|  | 	string | ||||||
|  | 	depends on USE_GLIBC | ||||||
|  | 	default "2.3.6"  if GLIBC_VERSION_2_3_6 | ||||||
|  | 	default "2.6.1"  if GLIBC_VERSION_2_6_1 | ||||||
|  | 	default "2.7"    if GLIBC_VERSION_2_7 | ||||||
|  | 	default "2.7" | ||||||
|  |  | ||||||
|  | config GLIBC_PORTS | ||||||
|  | 	bool | ||||||
|  | 	depends on USE_GLIBC | ||||||
|  | 	default y  if GLIBC_VERSION_2_3_6 && (arm || armeb || mips || mipsel) | ||||||
|  | 	default y  if GLIBC_VERSION_2_6_1 && (arm || armeb || mips || mipsel || powerpc) | ||||||
|  | 	default y  if GLIBC_VERSION_2_7 && (arm || armeb || mips || mipsel || powerpc) | ||||||
|  | 	default n | ||||||
							
								
								
									
										179
									
								
								toolchain/glibc/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										179
									
								
								toolchain/glibc/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,179 @@ | |||||||
|  | # | ||||||
|  | # 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:=glibc | ||||||
|  | PKG_VERSION:=$(call qstrip,$(CONFIG_GLIBC_VERSION)) | ||||||
|  |  | ||||||
|  | ifeq ($(PKG_VERSION),2.3.6) | ||||||
|  |   PKG_MD5SUM:=bfdce99f82d6dbcb64b7f11c05d6bc96 | ||||||
|  | endif | ||||||
|  | ifeq ($(PKG_VERSION),2.6.1) | ||||||
|  |   PKG_MD5SUM:=11cf6d3fc86dbe0890b8d00372eb6286 | ||||||
|  | endif | ||||||
|  | ifeq ($(PKG_VERSION),2.7) | ||||||
|  |   PKG_MD5SUM:=065c5952b439deba40083ccd67bcc8f7 | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | PKG_SOURCE_URL:=@GNU/glibc/ | ||||||
|  | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | ||||||
|  | PKG_CAT:=bzcat | ||||||
|  |  | ||||||
|  | PATCH_DIR:=./patches/$(PKG_VERSION) | ||||||
|  |  | ||||||
|  | STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) | ||||||
|  | BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) | ||||||
|  |  | ||||||
|  | override CONFIG_AUTOREBUILD= | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/host-build.mk | ||||||
|  |  | ||||||
|  | STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.glibc_built | ||||||
|  | STAMP_INSTALLED:=$(TOOLCHAIN_DIR)/stamp/.glibc_installed | ||||||
|  |  | ||||||
|  | PKG_BUILD_DIR1:=$(PKG_BUILD_DIR)-initial | ||||||
|  | PKG_BUILD_DIR2:=$(PKG_BUILD_DIR)-final | ||||||
|  |  | ||||||
|  | GLIBC_ADD_ONS+=nptl, | ||||||
|  |  | ||||||
|  | ifneq ($(CONFIG_GLIBC_PORTS),) | ||||||
|  |   GLIBC_ADD_ONS+=ports, | ||||||
|  |   define Build/Prepare/ports | ||||||
|  | 	ln -snf ../glibc-ports $(PKG_BUILD_DIR)/ports | ||||||
|  |   endef | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | # XXX: {e,}glibc does not build w/ -Os | ||||||
|  | # http://sourceware.org/bugzilla/show_bug.cgi?id=5203 | ||||||
|  | GLIBC_CFLAGS:=$(subst -Os,-O2,$(TARGET_CFLAGS)) | ||||||
|  |  | ||||||
|  | GLIBC_CONFIGURE_COMMON:= \ | ||||||
|  | 	BUILD_CC="$(HOSTCC)" \ | ||||||
|  | 	$(TARGET_CONFIGURE_OPTS) \ | ||||||
|  | 	CFLAGS="$(GLIBC_CFLAGS)" \ | ||||||
|  | 	libc_cv_forced_unwind=yes \ | ||||||
|  | 	libc_cv_c_cleanup=yes \ | ||||||
|  | 	libc_cv_386_tls=yes \ | ||||||
|  | 	$(PKG_BUILD_DIR)/configure \ | ||||||
|  | 		--prefix=/usr \ | ||||||
|  | 		--build=$(GNU_HOST_NAME) \ | ||||||
|  | 		--host=$(REAL_GNU_TARGET_NAME) \ | ||||||
|  | 		--with-headers="$(TOOLCHAIN_DIR)/usr/include" \ | ||||||
|  | 		--disable-debug \ | ||||||
|  | 		--disable-profile \ | ||||||
|  | 		--enable-add-ons="$(GLIBC_ADD_ONS)" \ | ||||||
|  | 		--without-gd \ | ||||||
|  | 		--without-cvs \ | ||||||
|  |  | ||||||
|  | ifeq ($(CONFIG_SOFT_FLOAT),) | ||||||
|  |   GLIBC_CONFIGURE_COMMON+= \ | ||||||
|  | 		--with-fp | ||||||
|  | else | ||||||
|  |   GLIBC_CONFIGURE_COMMON+= \ | ||||||
|  | 		--without-fp | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | GLIBC_CONFIGURE_STAGE1:= \ | ||||||
|  | 	$(GLIBC_CONFIGURE_COMMON) \ | ||||||
|  | 		--disable-sanity-checks \ | ||||||
|  | 		--enable-hacker-mode \ | ||||||
|  | 	 | ||||||
|  | GLIBC_CONFIGURE_STAGE2:= \ | ||||||
|  | 	$(GLIBC_CONFIGURE_COMMON) \ | ||||||
|  |  | ||||||
|  | GLIBC_MAKE:= \ | ||||||
|  | 	$(MAKE) \ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | define Build/SetToolchainInfo | ||||||
|  | 	$(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk | ||||||
|  | 	$(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.gnu.org/software/libc/,' $(TOOLCHAIN_DIR)/info.mk | ||||||
|  | 	$(SED) 's,^\(LIBC_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||||
|  | 	$(SED) 's,^\(LIBC_PATCHVER\)=.*,\1=,' $(TOOLCHAIN_DIR)/info.mk | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage1/Configure | ||||||
|  | 	mkdir -p $(PKG_BUILD_DIR1) | ||||||
|  | 	( cd $(PKG_BUILD_DIR1); rm -f config.cache; \ | ||||||
|  | 		$(GLIBC_CONFIGURE_STAGE1) \ | ||||||
|  | 	); | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage1/Compile | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage1/Install | ||||||
|  | 	$(GLIBC_MAKE) -C $(PKG_BUILD_DIR1) \ | ||||||
|  | 		CFLAGS="-DBOOTSTRAP_GCC" \ | ||||||
|  | 		cross-compiling=yes \ | ||||||
|  | 		install_root="$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev" \ | ||||||
|  | 		install-headers | ||||||
|  | 	[ -f $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/usr/include/bits/stdio_lim.h ] || \ | ||||||
|  | 		$(CP) $(PKG_BUILD_DIR1)/bits/stdio_lim.h \ | ||||||
|  | 			$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/usr/include/bits/stdio_lim.h | ||||||
|  | 	[ -f $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/usr/include/gnu/stubs.h ] || \ | ||||||
|  | 		touch $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/usr/include/gnu/stubs.h | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage2/Configure | ||||||
|  | 	mkdir -p $(PKG_BUILD_DIR2) | ||||||
|  | 	( cd $(PKG_BUILD_DIR2); rm -f config.cache; \ | ||||||
|  | 		$(GLIBC_CONFIGURE_STAGE2) \ | ||||||
|  | 	); | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage2/Compile | ||||||
|  | 	$(GLIBC_MAKE) -C $(PKG_BUILD_DIR2) all | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Stage2/Install | ||||||
|  | 	$(GLIBC_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_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||||
|  | 	$(call Build/Prepare/ports) | ||||||
|  | 	$(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)) | ||||||
							
								
								
									
										26
									
								
								toolchain/glibc/patches/2.3.6/001-make_install_lib_all.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								toolchain/glibc/patches/2.3.6/001-make_install_lib_all.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch | ||||||
|  | Rule to install all needed libraries, not just the ones installed by install-lib, | ||||||
|  | yet not install programs.   | ||||||
|  | Needed because we can't use the main install target, as we can't build programs before | ||||||
|  | we have the final gcc installed; linking fails because libeh.a is not present, | ||||||
|  | and glibc insists on linking programs with that library. | ||||||
|  |  | ||||||
|  | diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules | ||||||
|  | --- glibc-2.3.4.orig/Makerules	2004-12-15 20:52:39.000000000 +0200 | ||||||
|  | +++ glibc-2.3.4/Makerules	2005-02-19 15:16:31.415125176 +0200 | ||||||
|  | @@ -844,6 +844,13 @@ | ||||||
|  |  installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\ | ||||||
|  |  			     $(inst_libdir)/$(patsubst %,$(libtype$o),\ | ||||||
|  |  						     $(libprefix)$(libc-name))) | ||||||
|  | + | ||||||
|  | +install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \ | ||||||
|  | +		$(inst_slibdir)/libc-$(version).so \ | ||||||
|  | +		$(inst_libdir)/libc.so \ | ||||||
|  | +		$(inst_libdir)/libc.a \ | ||||||
|  | +		install-lib | ||||||
|  | + | ||||||
|  |  install: $(installed-libcs) | ||||||
|  |  $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force) | ||||||
|  |  	$(make-target-directory) | ||||||
|  |  | ||||||
|  | Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> | ||||||
| @@ -0,0 +1,37 @@ | |||||||
|  | http://sourceware.org/ml/crossgcc/2005-05/msg00165.html | ||||||
|  | Fixes a MIPS build problem (unrelated to NPTL) | ||||||
|  |  | ||||||
|  | Message-ID: <428E8B24.1000201@realitydiluted.com> | ||||||
|  | Date: Fri, 20 May 2005 20:13:08 -0500 | ||||||
|  | From: "Steven J dot  Hill" <sjhill at realitydiluted dot com> | ||||||
|  | To:  crossgcc at sources dot redhat dot com,  toolchain at gentoo dot org,  | ||||||
|  |  Shay_Gal-On at pmc-sierra dot com,  TheNop at gmx dot net | ||||||
|  | Subject: New NPTL patches for crosstools and MIPS NPTL patches.... | ||||||
|  |  | ||||||
|  | Greetings. | ||||||
|  |  | ||||||
|  | I have uploaded the latest NPTL patch for crosstool-0.34. I have also | ||||||
|  | uploaded a tarball of the patches necessary to build a MIPS NPTL | ||||||
|  | cross toolchain. To build a MIPS NPTL toolchain you will need the | ||||||
|  | released version of binutils-2.16 and the absolute latest GCC and | ||||||
|  | glibc code from the HEAD of cvs. Use the 'demo-mips-nptl.sh' script | ||||||
|  | to build the toolchain. Please report bugs or issues to the crossgcc | ||||||
|  | mailing list. Here is the link off of my FTP site: | ||||||
|  |  | ||||||
|  |     ftp://ftp.realitydiluted.com/crosstools/crosstool-0.34/ | ||||||
|  |  | ||||||
|  | [Note: BOOTSTRAP_GCC is set by crosstool.sh when invoking make install-headers] | ||||||
|  |  | ||||||
|  | diff -ur glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile | ||||||
|  | --- glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile	2003-03-29 02:15:28.000000000 -0600 | ||||||
|  | +++ glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile	2005-04-12 21:36:51.318837655 -0500 | ||||||
|  | @@ -1,3 +1,7 @@ | ||||||
|  | +ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),) | ||||||
|  |  ifeq ($(filter -mabi=32,$(CC)),) | ||||||
|  |  CC += -mabi=32 | ||||||
|  |  endif | ||||||
|  | +else | ||||||
|  | +CC += -D"_MIPS_SZPTR=32" | ||||||
|  | +endif | ||||||
|  |  | ||||||
|  | Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> | ||||||
| @@ -0,0 +1,22 @@ | |||||||
|  | diff -ruN glibc-2.3.6-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S glibc-2.3.6/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S | ||||||
|  | --- glibc-2.3.6-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S	2003-07-12 00:46:12.000000000 +0200 | ||||||
|  | +++ glibc-2.3.6/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S	2008-11-10 16:02:12.760497684 +0100 | ||||||
|  | @@ -42,7 +42,11 @@ | ||||||
|  |  #define stackblock 20 | ||||||
|  |   | ||||||
|  |  #ifndef __socket | ||||||
|  | +#ifndef NO_WEAK_ALIAS | ||||||
|  |  #define __socket P(__,socket) | ||||||
|  | +#else | ||||||
|  | +#define __socket socket | ||||||
|  | +#endif | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  |  	.text | ||||||
|  | @@ -120,4 +124,6 @@ | ||||||
|  |   | ||||||
|  |  PSEUDO_END (__socket) | ||||||
|  |   | ||||||
|  | +#ifndef NO_WEAK_ALIAS | ||||||
|  |  weak_alias (__socket, socket) | ||||||
|  | +#endif | ||||||
| @@ -0,0 +1,12 @@ | |||||||
|  | diff -ruN glibc-2.3.6-orig/sysdeps/powerpc/powerpc32/Makefile glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile | ||||||
|  | --- glibc-2.3.6-orig/sysdeps/powerpc/powerpc32/Makefile	2003-07-12 00:46:12.000000000 +0200 | ||||||
|  | +++ glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile	2008-11-10 16:02:12.760497684 +0100 | ||||||
|  | @@ -21,7 +21,7 @@ | ||||||
|  |  ifneq ($(elf),no) | ||||||
|  |  # The initfini generation code doesn't work in the presence of -fPIC, so | ||||||
|  |  # we use -fpic instead which is much better. | ||||||
|  | -CFLAGS-initfini.s = -g0 -fpic -O1 | ||||||
|  | +CFLAGS-initfini.s = -fpic -O1 $(fno-unit-at-a-time) | ||||||
|  |   | ||||||
|  |  # There is no benefit to using sdata for these objects, and the user | ||||||
|  |  # of the library should be able to control what goes into sdata. | ||||||
| @@ -1,4 +1,6 @@ | |||||||
| TARGET_CROSS= | TARGET_CROSS= | ||||||
| GCC_VERSION=unknown | GCC_VERSION=unknown | ||||||
| UCLIBC_VERSION=unknown | LIBC_TYPE=unknown | ||||||
| UCLIBC_PATCHVER= | LIBC_URL=unknown | ||||||
|  | LIBC_VERSION=unknown | ||||||
|  | LIBC_PATCHVER= | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| #  | #  | ||||||
| # Copyright (C) 2006 OpenWrt.org | # Copyright (C) 2006-2008 OpenWrt.org | ||||||
| # | # | ||||||
| # This is free software, licensed under the GNU General Public License v2. | # This is free software, licensed under the GNU General Public License v2. | ||||||
| # See /LICENSE for more information. | # See /LICENSE for more information. | ||||||
| @@ -11,6 +11,7 @@ BUILD_DIR := $(KERNEL_BUILD_DIR) | |||||||
|  |  | ||||||
| STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) | STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) | ||||||
| BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) | BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) | ||||||
|  |  | ||||||
| override QUILT:= | override QUILT:= | ||||||
| override CONFIG_AUTOREBUILD= | override CONFIG_AUTOREBUILD= | ||||||
|  |  | ||||||
| @@ -20,27 +21,14 @@ PKG_NAME:=linux | |||||||
| PKG_VERSION:=$(LINUX_VERSION) | PKG_VERSION:=$(LINUX_VERSION) | ||||||
| PKG_SOURCE:=$(LINUX_SOURCE) | PKG_SOURCE:=$(LINUX_SOURCE) | ||||||
| PKG_SOURCE_URL:=$(LINUX_SITE) | PKG_SOURCE_URL:=$(LINUX_SITE) | ||||||
| PKG_BUILD_DIR := $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) | PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) | ||||||
| PKG_MD5SUM:=$(LINUX_KERNEL_MD5SUM) | PKG_MD5SUM:=$(LINUX_KERNEL_MD5SUM) | ||||||
| LINUX_DIR := $(PKG_BUILD_DIR) | LINUX_DIR := $(PKG_BUILD_DIR) | ||||||
|  |  | ||||||
| include $(INCLUDE_DIR)/host-build.mk | include $(INCLUDE_DIR)/host-build.mk | ||||||
| include $(INCLUDE_DIR)/kernel-defaults.mk | include $(INCLUDE_DIR)/kernel-defaults.mk | ||||||
|  |  | ||||||
| define Build/Configure/cris | ifeq ($(strip $(BOARD)),uml) | ||||||
| 	ln -sf $(PKG_BUILD_DIR)/include/asm-cris/arch-v10 $(PKG_BUILD_DIR)/include/asm-cris/arch |  | ||||||
| 	ln -sf $(PKG_BUILD_DIR)/include/asm-cris/arch-v10 $(PKG_BUILD_DIR)/arch/cris/arch |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/Configure/powerpc |  | ||||||
| 	if [ -d $(PKG_BUILD_DIR)/include/asm-ppc ]; then \ |  | ||||||
| 		$(CP) $(PKG_BUILD_DIR)/include/asm-ppc/* $(PKG_BUILD_DIR)/include/asm-powerpc/; \ |  | ||||||
| 		rm -rf $(PKG_BUILD_DIR)/include/asm-ppc; \ |  | ||||||
| 		ln -s $(PKG_BUILD_DIR)/include/asm-powerpc $(PKG_BUILD_DIR)/include/asm-ppc; \ |  | ||||||
| 	fi |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| ifneq (,$(findstring uml,$(BOARD))) |  | ||||||
|   LINUX_KARCH:=$(ARCH) |   LINUX_KARCH:=$(ARCH) | ||||||
| endif | endif | ||||||
|  |  | ||||||
| @@ -49,6 +37,39 @@ KMAKE := $(MAKE) -C $(PKG_BUILD_DIR) \ | |||||||
| 	KBUILD_HAVE_NLS=no \ | 	KBUILD_HAVE_NLS=no \ | ||||||
| 	CONFIG_SHELL=$(BASH) | 	CONFIG_SHELL=$(BASH) | ||||||
|  |  | ||||||
|  | define Build/Prepare/pre/cris | ||||||
|  | 	ln -sf $(PKG_BUILD_DIR)/include/asm-cris/arch-v10 $(PKG_BUILD_DIR)/include/asm-cris/arch | ||||||
|  | 	ln -sf $(PKG_BUILD_DIR)/include/asm-cris/arch-v10 $(PKG_BUILD_DIR)/arch/cris/arch | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Prepare/pre/powerpc | ||||||
|  | 	if [ -d $(PKG_BUILD_DIR)/include/asm-ppc ]; then \ | ||||||
|  | 		$(CP) $(PKG_BUILD_DIR)/include/asm-ppc/* $(PKG_BUILD_DIR)/include/asm-powerpc/; \ | ||||||
|  | 		rm -rf $(PKG_BUILD_DIR)/include/asm-ppc; \ | ||||||
|  | 		ln -s $(PKG_BUILD_DIR)/include/asm-powerpc $(PKG_BUILD_DIR)/include/asm-ppc; \ | ||||||
|  | 	fi | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.18)),1) | ||||||
|  |   define Build/Prepare/all | ||||||
|  | 	mkdir -p $(BUILD_DIR_TOOLCHAIN)/linux-dev/usr | ||||||
|  | 	$(KMAKE) \ | ||||||
|  | 		CROSS_COMPILE=$(TARGET_CROSS) \ | ||||||
|  | 		INSTALL_HDR_PATH="$(BUILD_DIR_TOOLCHAIN)/linux-dev/usr/" \ | ||||||
|  | 		headers_install | ||||||
|  |   endef | ||||||
|  | else | ||||||
|  |   define Build/Prepare/all | ||||||
|  | 	mkdir -p $(BUILD_DIR_TOOLCHAIN)/linux-dev/usr/include | ||||||
|  | 	cp -pLR \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux/include/asm \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux/include/asm-generic \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux/include/asm-$(LINUX_KARCH) \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux/include/linux \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux-dev/usr/include/ | ||||||
|  |   endef | ||||||
|  | endif | ||||||
|  |  | ||||||
| define Build/Prepare | define Build/Prepare | ||||||
| 	$(call Kernel/Prepare/Default) | 	$(call Kernel/Prepare/Default) | ||||||
| 	$(SED) 's/@expr length/@-expr length/' $(PKG_BUILD_DIR)/Makefile | 	$(SED) 's/@expr length/@-expr length/' $(PKG_BUILD_DIR)/Makefile | ||||||
| @@ -60,7 +81,8 @@ define Build/Prepare | |||||||
| 			$(PKG_BUILD_DIR)/arch/$(LINUX_KARCH)/include/asm/. \ | 			$(PKG_BUILD_DIR)/arch/$(LINUX_KARCH)/include/asm/. \ | ||||||
| 			$(PKG_BUILD_DIR)/include/asm-$(LINUX_KARCH)/; \ | 			$(PKG_BUILD_DIR)/include/asm-$(LINUX_KARCH)/; \ | ||||||
| 	fi | 	fi | ||||||
| 	$(call Build/Configure/$(ARCH)) | 	$(call Build/Prepare/pre/$(ARCH)) | ||||||
|  | 	$(call Build/Prepare/all) | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Build/Configure | define Build/Configure | ||||||
| @@ -69,7 +91,39 @@ endef | |||||||
| define Build/Compile | define Build/Compile | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | define Build/Install/all | ||||||
|  | 	mkdir -p $(TOOLCHAIN_DIR)/usr/include | ||||||
|  | 	$(CP) \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux-dev/usr/include/* \ | ||||||
|  | 		$(TOOLCHAIN_DIR)/usr/include/ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | # XXX: the following is needed to build lzma-loader | ||||||
|  | define Build/Install/post/lzma | ||||||
|  | 	$(CP) \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux/include/asm-mips/asm.h \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux/include/asm-mips/regdef.h \ | ||||||
|  | 		$(TOOLCHAIN_DIR)/usr/include/asm/ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Install/post/mips | ||||||
|  | 	$(call Build/Install/post/lzma) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Install/post/mipsel | ||||||
|  | 	$(call Build/Install/post/lzma) | ||||||
|  | endef | ||||||
|  |  | ||||||
| define Build/Install | define Build/Install | ||||||
|  | 	$(call Build/Install/all) | ||||||
|  | 	$(call Build/Install/post/$(ARCH)) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Clean | ||||||
|  | 	rm -rf \ | ||||||
|  | 		$(PKG_BUILD_DIR) \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/linux-dev | ||||||
| endef | endef | ||||||
|  |  | ||||||
| $(eval $(call HostBuild)) | $(eval $(call HostBuild)) | ||||||
|   | |||||||
| @@ -1,7 +1,8 @@ | |||||||
| # Choose uclibc version. | # Choose uclibc version. | ||||||
|  |  | ||||||
| choice | choice | ||||||
| 	prompt "uClibc Version" if TOOLCHAINOPTS | 	prompt "uClibc Version" | ||||||
|  | 	depends on TOOLCHAINOPTS && USE_UCLIBC | ||||||
| 	default UCLIBC_VERSION_0_9_29 | 	default UCLIBC_VERSION_0_9_29 | ||||||
| 	help | 	help | ||||||
| 	  Select the version of uClibc you wish to use. | 	  Select the version of uClibc you wish to use. | ||||||
| @@ -20,7 +21,8 @@ endchoice | |||||||
|  |  | ||||||
| config UCLIBC_EXTRA_VERSION | config UCLIBC_EXTRA_VERSION | ||||||
| 	string | 	string | ||||||
| 	prompt "Extra uClibc version" if TOOLCHAINOPTS | 	prompt "Extra uClibc version" | ||||||
|  | 	depends on TOOLCHAINOPTS && USE_UCLIBC | ||||||
| 	default "snapshot"   if UCLIBC_VERSION_SNAPSHOT | 	default "snapshot"   if UCLIBC_VERSION_SNAPSHOT | ||||||
| 	default ".2"         if UCLIBC_VERSION_0_9_28 | 	default ".2"         if UCLIBC_VERSION_0_9_28 | ||||||
| 	default "" | 	default "" | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| config UCLIBC_VERSION | config UCLIBC_VERSION | ||||||
| 	string | 	string | ||||||
|  | 	depends on USE_UCLIBC | ||||||
| 	default ""           if UCLIBC_VERSION_snapshot | 	default ""           if UCLIBC_VERSION_snapshot | ||||||
| 	default "0.9.28"     if UCLIBC_VERSION_0_9_28 | 	default "0.9.28"     if UCLIBC_VERSION_0_9_28 | ||||||
| 	default "0.9.29"     if UCLIBC_VERSION_0_9_29 | 	default "0.9.29"     if UCLIBC_VERSION_0_9_29 | ||||||
| 	default "0.9.29" | 	default "0.9.29" | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -54,6 +54,7 @@ ifeq ($(PKG_VERSION_SNAPSHOT),y) | |||||||
| else | else | ||||||
|   PKG_BUILD_DIR:=$(BUILD_DIR_HOST)/uClibc-$(PKG_VERSION)$(PKG_EXTRAVERSION) |   PKG_BUILD_DIR:=$(BUILD_DIR_HOST)/uClibc-$(PKG_VERSION)$(PKG_EXTRAVERSION) | ||||||
| endif | endif | ||||||
|  |  | ||||||
| override CONFIG_AUTOREBUILD= | override CONFIG_AUTOREBUILD= | ||||||
|  |  | ||||||
| include $(INCLUDE_DIR)/host-build.mk | include $(INCLUDE_DIR)/host-build.mk | ||||||
| @@ -76,12 +77,13 @@ UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ | |||||||
| 		-e 's/cris.*/cris/' \ | 		-e 's/cris.*/cris/' \ | ||||||
| ) | ) | ||||||
|  |  | ||||||
| # Remove me when there are no 2.6.23 targets |  | ||||||
| ifeq ($(findstring 86,$(ARCH)),86) | define Build/SetToolchainInfo | ||||||
|   ifneq ($(LINUX_2_6_23),y) | 	$(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk | ||||||
| 	UCLIBC_TARGET_ARCH:=x86 | 	$(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.uclibc.org/,' $(TOOLCHAIN_DIR)/info.mk | ||||||
|   endif | 	$(SED) 's,^\(LIBC_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||||
| endif | 	$(SED) 's,^\(LIBC_PATCHVER\)=.*,\1=$(PKG_EXTRAVERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||||
|  | endef | ||||||
|  |  | ||||||
| define Build/Prepare/Snapshot | define Build/Prepare/Snapshot | ||||||
| 	$(PKG_UNPACK) | 	$(PKG_UNPACK) | ||||||
| @@ -94,25 +96,27 @@ endef | |||||||
| define Build/Prepare/V_0_9_28 | define Build/Prepare/V_0_9_28 | ||||||
| 	$(SED) 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \ | 	$(SED) 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \ | ||||||
| 		$(PKG_BUILD_DIR)/.config | 		$(PKG_BUILD_DIR)/.config | ||||||
| ifeq ($(CONFIG_SOFT_FLOAT),y) |  ifeq ($(CONFIG_SOFT_FLOAT),y) | ||||||
| 	$(SED) 's,.*HAS_FPU.*,HAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(PKG_BUILD_DIR)/.config | 	$(SED) 's,.*HAS_FPU.*,HAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(PKG_BUILD_DIR)/.config | ||||||
| endif |  endif | ||||||
| ifeq ($(CONFIG_C99_MATH),y) |  ifeq ($(CONFIG_C99_MATH),y) | ||||||
| 	$(SED) 's,.*DO_C99_MATH.*,DO_C99_MATH=y,g' $(PKG_BUILD_DIR)/.config | 	$(SED) 's,.*DO_C99_MATH.*,DO_C99_MATH=y,g' $(PKG_BUILD_DIR)/.config | ||||||
| endif |  endif | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Build/Prepare | define Build/Prepare | ||||||
|  | 	$(call Build/SetToolchainInfo) | ||||||
| 	@echo prepare uClibc version $(PKG_VERSION)$(PKG_EXTRAVERSION)   | 	@echo prepare uClibc version $(PKG_VERSION)$(PKG_EXTRAVERSION)   | ||||||
| ifeq ($(PKG_VERSION_SNAPSHOT),y) |  ifeq ($(PKG_VERSION_SNAPSHOT),y) | ||||||
| 	$(call Build/Prepare/Snapshot) | 	$(call Build/Prepare/Snapshot) | ||||||
| else |  else | ||||||
| 	$(call Build/Prepare/Default) | 	$(call Build/Prepare/Default) | ||||||
| endif | 	ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||||
|  |  endif | ||||||
| 	$(CP) ./$(CONFIG_DIR)/$(ARCH)$(if $(wildcard $(CONFIG_DIR)/$(ARCH).$(BOARD)),.$(BOARD)) $(PKG_BUILD_DIR)/.config | 	$(CP) ./$(CONFIG_DIR)/$(ARCH)$(if $(wildcard $(CONFIG_DIR)/$(ARCH).$(BOARD)),.$(BOARD)) $(PKG_BUILD_DIR)/.config | ||||||
| ifeq ($(PKG_VERSION),0.9.28) |  ifeq ($(PKG_VERSION),0.9.28) | ||||||
| 	$(call Build/Prepare/V_0_9_28) | 	$(call Build/Prepare/V_0_9_28) | ||||||
| endif |  endif | ||||||
| 	$(SED) 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(LINUX_HEADERS_DIR)/include\",g' \ | 	$(SED) 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(LINUX_HEADERS_DIR)/include\",g' \ | ||||||
| 		-e 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=$(if $(CONFIG_SOFT_FLOAT),n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,y),g' \ | 		-e 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=$(if $(CONFIG_SOFT_FLOAT),n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,y),g' \ | ||||||
| 		-e 's,^.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=$(if $(CONFIG_LARGEFILE),y,n),g' \ | 		-e 's,^.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=$(if $(CONFIG_LARGEFILE),y,n),g' \ | ||||||
| @@ -120,33 +124,11 @@ endif | |||||||
| 		-e 's,^.*CONFIG_ARM_OABI.*,CONFIG_ARM_OABI=$(if $(CONFIG_EABI_SUPPORT),n,y),g' \ | 		-e 's,^.*CONFIG_ARM_OABI.*,CONFIG_ARM_OABI=$(if $(CONFIG_EABI_SUPPORT),n,y),g' \ | ||||||
| 		-e 's,^.*UCLIBC_HAS_SHADOW.*,UCLIBC_HAS_SHADOW=$(if $(CONFIG_SHADOW_PASSWORDS),y,n),g' \ | 		-e 's,^.*UCLIBC_HAS_SHADOW.*,UCLIBC_HAS_SHADOW=$(if $(CONFIG_SHADOW_PASSWORDS),y,n),g' \ | ||||||
| 		$(PKG_BUILD_DIR)/.config | 		$(PKG_BUILD_DIR)/.config | ||||||
| 	mkdir -p $(BUILD_DIR_HOST)/uClibc_dev/usr/include |  | ||||||
| 	mkdir -p $(BUILD_DIR_HOST)/uClibc_dev/usr/lib |  | ||||||
| 	mkdir -p $(BUILD_DIR_HOST)/uClibc_dev/lib |  | ||||||
| #	if [ ! -f $(BUILD_DIR_HOST)/uClibc_dev/usr/include/linux/version.h ] ; then \ |  | ||||||
| #		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/* $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ |  | ||||||
| #		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/* $(TOOLCHAIN_DIR)/include/ ; \ |  | ||||||
| #		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/* $(PKG_BUILD_DIR)/include/ ; \ |  | ||||||
| #	fi; |  | ||||||
| 	if [ ! -f $(BUILD_DIR_HOST)/uClibc_dev/usr/include/linux/version.h ] ; then \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-$(UCLIBC_TARGET_ARCH) $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-generic $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/linux $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm $(TOOLCHAIN_DIR)/include/ ; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-$(UCLIBC_TARGET_ARCH) $(TOOLCHAIN_DIR)/include/ ; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-generic $(TOOLCHAIN_DIR)/include/ ; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/linux $(TOOLCHAIN_DIR)/include/ ; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm $(PKG_BUILD_DIR)/include/ ; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-$(UCLIBC_TARGET_ARCH) $(PKG_BUILD_DIR)/include/ ; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-generic $(PKG_BUILD_DIR)/include/ ; \ |  | ||||||
| 		cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/linux $(PKG_BUILD_DIR)/include/ ; \ |  | ||||||
| 	fi; |  | ||||||
| 	$(MAKE) -C $(PKG_BUILD_DIR)/extra/config conf KBUILD_HAVE_NLS= HOSTCFLAGS="-DKBUILD_NO_NLS" | 	$(MAKE) -C $(PKG_BUILD_DIR)/extra/config conf KBUILD_HAVE_NLS= HOSTCFLAGS="-DKBUILD_NO_NLS" | ||||||
| 	PATH=$(TARGET_PATH) $(MAKE) -C $(PKG_BUILD_DIR) \ | 	PATH=$(TARGET_PATH) $(MAKE) -C $(PKG_BUILD_DIR) \ | ||||||
| 		PREFIX=$(BUILD_DIR_HOST)/uClibc_dev/ \ | 		PREFIX="$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/" \ | ||||||
| 		DEVEL_PREFIX=/usr/ \ | 		DEVEL_PREFIX=/usr/ \ | ||||||
| 		RUNTIME_PREFIX=$(BUILD_DIR_HOST)/uClibc_dev/ \ | 		RUNTIME_PREFIX="$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/" \ | ||||||
| 		HOSTCC="$(HOSTCC)" \ | 		HOSTCC="$(HOSTCC)" \ | ||||||
| 		CPU_CFLAGS="$(TARGET_CFLAGS)" \ | 		CPU_CFLAGS="$(TARGET_CFLAGS)" \ | ||||||
| 		pregen install_dev; | 		pregen install_dev; | ||||||
| @@ -157,7 +139,7 @@ endef | |||||||
|  |  | ||||||
| UCLIBC_MAKE := PATH=$(TARGET_PATH) $(MAKE) -C $(PKG_BUILD_DIR) \ | UCLIBC_MAKE := PATH=$(TARGET_PATH) $(MAKE) -C $(PKG_BUILD_DIR) \ | ||||||
| 	$(TARGET_CONFIGURE_OPTS) \ | 	$(TARGET_CONFIGURE_OPTS) \ | ||||||
| 	DEVEL_PREFIX=/ \ | 	DEVEL_PREFIX=/usr/ \ | ||||||
| 	RUNTIME_PREFIX=/ \ | 	RUNTIME_PREFIX=/ \ | ||||||
| 	HOSTCC="$(HOSTCC)" \ | 	HOSTCC="$(HOSTCC)" \ | ||||||
| 	CPU_CFLAGS="$(TARGET_CFLAGS)" | 	CPU_CFLAGS="$(TARGET_CFLAGS)" | ||||||
| @@ -165,24 +147,36 @@ UCLIBC_MAKE := PATH=$(TARGET_PATH) $(MAKE) -C $(PKG_BUILD_DIR) \ | |||||||
| define Build/Compile | define Build/Compile | ||||||
| 	$(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(PKG_BUILD_DIR)/Rules.mak | 	$(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(PKG_BUILD_DIR)/Rules.mak | ||||||
| 	$(UCLIBC_MAKE) PREFIX= all | 	$(UCLIBC_MAKE) PREFIX= all | ||||||
| 	$(UCLIBC_MAKE) PREFIX=$(STAGING_DIR_HOST)/ install_runtime install_dev | 	$(UCLIBC_MAKE) PREFIX="$(TOOLCHAIN_DIR)/" install_runtime install_dev | ||||||
| 	$(SED) 's,UCLIBC_VERSION=.*,UCLIBC_VERSION=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | 	ln -sf ../../lib/libc.so.0 $(TOOLCHAIN_DIR)/usr/lib/libc.so | ||||||
| 	$(SED) 's,UCLIBC_PATCHVER=.*,UCLIBC_PATCHVER=$(PKG_EXTRAVERSION),' $(TOOLCHAIN_DIR)/info.mk | #	( cd $(TOOLCHAIN_DIR) ; \ | ||||||
| 	rm -rf $(TOOLCHAIN_DIR)/lib/libc.so | #		for d in lib usr/lib ; do \ | ||||||
| 	ln -s libc.so.0 $(TOOLCHAIN_DIR)/lib/libc.so | #		  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 | endef | ||||||
|  |  | ||||||
| define Build/Install | define Build/Install | ||||||
| 	$(UCLIBC_MAKE) PREFIX= utils | 	$(UCLIBC_MAKE) PREFIX= utils | ||||||
| 	$(INSTALL_DIR) $(TOOLCHAIN_DIR)/target-utils | 	$(INSTALL_DIR) $(TOOLCHAIN_DIR)/usr/bin | ||||||
| 	$(INSTALL_BIN) \ | 	$(INSTALL_BIN) \ | ||||||
| 		$(PKG_BUILD_DIR)/utils/ldd \ | 		$(PKG_BUILD_DIR)/utils/ldd \ | ||||||
|  | 		$(TOOLCHAIN_DIR)/usr/bin/ | ||||||
|  | 	$(INSTALL_DIR) $(TOOLCHAIN_DIR)/sbin | ||||||
|  | 	$(INSTALL_BIN) \ | ||||||
| 		$(PKG_BUILD_DIR)/utils/ldconfig \ | 		$(PKG_BUILD_DIR)/utils/ldconfig \ | ||||||
| 		$(TOOLCHAIN_DIR)/target-utils/ | 		$(TOOLCHAIN_DIR)/sbin/ | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Build/Clean | define Build/Clean | ||||||
| 	rm -rf $(PKG_BUILD_DIR) $(BUILD_DIR_HOST)/uClibc_dev | 	rm -rf \ | ||||||
|  | 		$(PKG_BUILD_DIR) \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) \ | ||||||
|  | 		$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev | ||||||
| endef | endef | ||||||
|  |  | ||||||
| $(eval $(call HostBuild)) | $(eval $(call HostBuild)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Nicolas Thill
					Nicolas Thill