Hi all, The following patch both fixes using an openwrt external toolchain (that is in menuconfig using the option to build a toolchain, and feeding that back into another openwrt build as an external toolchain, which if you're not constantly following every commit in trunk (or to a certain extent even if you are, because even then toolchain doesn't change that often), saves a great deal of build time since the toolchain is one of the portions of the build that takes longest and is not parallelized (or at least not much)) to build a working ImageBuilder and SDK (the resulting ImageBuilder and SDK (or at least the SDK) require that the Toolchain directory be referenced in their .configs).
This patch should be fairly non-controversial or painful for anyone, but I am posting for review of submitting because I have been on a long hiatus, and my previous recent commit (for a personal patch, unlike this patch, which comes from a client) as a I came back was rather a disaster (though at least the concept was appreciated (the -fat image for dir825 which allows to use the full flash of the dir825 instead of only about 6MB that the stock images use and the default caldata position allows). I am hoping this gets no complaints and I can just commit the patch, but if there are issues, please let me know and I will try to address them. I probably can't spend a lot of time on it, since my client isn't likely to pay for extensive amounts of time massaging patches to get them accepted upstream when they work for them, so please keep that in mind when asking for changes. I am hoping the that various patches I will be sending don't require a lot of managing to be useful/manageable in openwrt proper, since I'd like to see openwrt benefit from the time I've spent away, but as I've said I don't have a lot of paid time to get them integrated. In include patch both inline and as attachment so that hopefully everyone can get a non-mangled using their preferred method of dealing with patches. Signed-Off-By: Daniel Dickinson <[email protected]> Patch follows: Index: openwrt/target/imagebuilder/Config.in =================================================================== --- openwrt.orig/target/imagebuilder/Config.in 2012-09-28 20:22:39.000000000 -0400 +++ openwrt/target/imagebuilder/Config.in 2012-10-10 20:56:25.372687867 -0400 @@ -2,7 +2,7 @@ bool "Build the OpenWrt Image Builder" depends !TARGET_ROOTFS_INITRAMFS depends !PROFILE_KCONFIG - depends !EXTERNAL_TOOLCHAIN + depends !EXTERNAL_TOOLCHAIN || EXTERNAL_UCLIBC help This is essentially a stripped-down version of the buildroot with precompiled packages, kernel image and image building tools. Index: openwrt/target/sdk/Config.in =================================================================== --- openwrt.orig/target/sdk/Config.in 2012-09-28 20:22:41.000000000 -0400 +++ openwrt/target/sdk/Config.in 2012-10-10 20:56:25.372687867 -0400 @@ -1,6 +1,6 @@ config SDK bool "Build the OpenWrt SDK" - depends !EXTERNAL_TOOLCHAIN + depends !EXTERNAL_TOOLCHAIN || EXTERNAL_UCLIBC help This is essentially a stripped-down version of the buildroot with a precompiled toolchain. It can be used to develop and Index: openwrt/toolchain/Config.in =================================================================== --- openwrt.orig/toolchain/Config.in 2012-09-28 20:22:41.000000000 -0400 +++ openwrt/toolchain/Config.in 2012-10-10 20:56:25.376687693 -0400 @@ -14,6 +14,13 @@ help If enabled, OpenWrt will compile using the native toolchain for your host instead of compiling one + config EXTERNAL_UCLIBC + bool + prompt "External toolchain uses uClibc" if DEVEL + depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN + help + If enabled, OpenWrt will treat the external toolchain as a uClibc toolchain + config TARGET_NAME string prompt "Target name" if DEVEL @@ -171,7 +178,7 @@ config USE_UCLIBC bool - default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN + default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN || EXTERNAL_UCLIBC config USE_EXTERNAL_LIBC bool Index: openwrt/toolchain/Makefile =================================================================== --- openwrt.orig/toolchain/Makefile 2012-09-28 20:22:41.000000000 -0400 +++ openwrt/toolchain/Makefile 2012-10-10 20:56:25.376687693 -0400 @@ -29,9 +29,11 @@ # subdirectories to descend into $(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_INSIGHT),insight) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/minimal gcc/initial gcc/final $(LIBC)/headers $(LIBC)) +ifndef CONFIG_EXTERNAL_TOOLCHAIN ifdef CONFIG_USE_UCLIBC $(curdir)/builddirs += $(LIBC)/utils endif +endif $(curdir)/builddirs-compile:=$($(curdir)/builddirs-prepare) $(curdir)/builddirs-install:=$($(curdir)/builddirs-compile) Index: openwrt/target/sdk/Makefile =================================================================== --- openwrt.orig/target/sdk/Makefile 2012-09-28 20:22:41.000000000 -0400 +++ openwrt/target/sdk/Makefile 2012-10-11 18:12:11.246179649 -0400 @@ -14,7 +14,11 @@ PKG_OS:=$(word 2,$(subst -, ,$(shell $(HOSTCC) -dumpmachine))) PKG_CPU:=$(word 1,$(subst -, ,$(shell $(HOSTCC) -dumpmachine))) +ifeq ($(EXTERNAL_TOOLCHAIN),) SDK_NAME:=OpenWrt-SDK-$(BOARD)-for-$(PKG_OS)-$(PKG_CPU)-gcc-$(GCCV)_$(LIBC)-$(LIBCV) +else +SDK_NAME:=OpenWrt-SDK-$(BOARD)-for-$(PKG_OS)-$(PKG_CPU)-gcc-$(GNU_TARGET_NAME) +endif SDK_BUILD_DIR:=$(BUILD_DIR)/$(SDK_NAME) EXCLUDE_DIRS:=*/ccache \ */stamp \ @@ -33,7 +37,9 @@ $(foreach exclude,$(EXCLUDE_DIRS),--exclude="$(exclude)") \ --exclude="staging_dir/$(ARCH)" \ staging_dir/host staging_dir/target-$(ARCH)$(ARCH_SUFFIX)_$(LIBC)-$(LIBCV)$(if $(CONFIG_arm),_eabi) \ - staging_dir/toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)_$(LIBC)-$(LIBCV)$(if $(CONFIG_arm),_eabi) | \ + staging_dir/host staging_dir/target-$(GNU_TARGET_NAME) \ + staging_dir/toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)_$(LIBC)-$(LIBCV)$(if $(CONFIG_arm),_eabi) \ + staging_dir/toolchain-$(GNU_TARGET_NAME) | \ $(TAR) -xf - -C $(SDK_BUILD_DIR) mkdir -p $(SDK_BUILD_DIR)/target/linux $(CP) $(GENERIC_PLATFORM_DIR) $(PLATFORM_DIR) $(SDK_BUILD_DIR)/target/linux/ Index: openwrt/target/imagebuilder/files/Makefile =================================================================== --- openwrt.orig/target/imagebuilder/files/Makefile 2012-09-28 20:22:39.000000000 -0400 +++ openwrt/target/imagebuilder/files/Makefile 2012-10-10 20:56:25.376687693 -0400 @@ -53,6 +53,7 @@ # override variables from rules.mk PACKAGE_DIR:=$(TOPDIR)/packages +OPKG_TMP:=$(TOPDIR)/$(shell mktemp -d) OPKG:= \ IPKG_TMP="$(TOPDIR)/tmp/ipkgtmp" \ IPKG_INSTROOT="$(TARGET_DIR)" \ @@ -67,7 +68,8 @@ --offline-root $(TARGET_DIR) \ --add-dest root:/ \ --add-arch all:100 \ - --add-arch $(ARCH_PACKAGES):200 + --add-arch $(ARCH_PACKAGES):200 \ + -t $(OPKG_TMP) define Profile $(eval $(call Profile/Default)) @@ -105,6 +107,7 @@ $(MAKE) package_index; \ else \ mkdir -p $(TARGET_DIR)/tmp; \ + mkdir -p $(OPKG_TMP); \ $(OPKG) update; \ fi $(MAKE) package_install @@ -121,11 +124,13 @@ (cd $(PACKAGE_DIR); $(SCRIPT_DIR)/ipkg-make-index.sh . > Packages && \ gzip -9c Packages > Packages.gz \ ) >/dev/null 2>/dev/null + mkdir -p $(OPKG_TMP); \ $(OPKG) update package_install: FORCE @echo @echo Installing packages... + mkdir -p $(OPKG_TMP) $(OPKG) install $(PACKAGE_DIR)/libc_*.ipk $(OPKG) install $(PACKAGE_DIR)/kernel_*.ipk $(OPKG) install $(BUILD_PACKAGES) Index: openwrt/package/toolchain/Makefile =================================================================== --- openwrt.orig/package/toolchain/Makefile 2012-09-28 20:22:39.000000000 -0400 +++ openwrt/package/toolchain/Makefile 2012-10-11 18:14:35.955580531 -0400 @@ -136,7 +136,8 @@ string prompt "libc shared library files (use wildcards)" depends EXTERNAL_TOOLCHAIN && PACKAGE_libc - default "./lib/ld{-*.so,-linux*.so.*} ./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*}" + default "./lib/ld{-*.so,-linux*.so.*} ./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*,.so}" if !EXTERNAL_UCLIBC + default "./lib/ld{-*.so,-*.so.*,-linux*.so.*} ./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util,uClibc}{-*.so,.so.*,.so}" if EXTERNAL_UCLIBC endmenu endef @@ -162,7 +163,7 @@ string prompt "libpthread shared library files (use wildcards)" depends EXTERNAL_TOOLCHAIN && PACKAGE_libpthread - default "./lib/libpthread{-*.so,.so.*}" + default "./lib/libpthread{-*.so,.so.*,.so}" endmenu endef @@ -189,7 +190,7 @@ string prompt "librt shared library files (use wildcards)" depends EXTERNAL_TOOLCHAIN && PACKAGE_librt - default "./lib/librt{-*.so,.so.*}" + default "./lib/librt{-*.so,.so.*,.so}" endmenu endef @@ -453,6 +454,7 @@ $(TOOLCHAIN_DIR)/lib/librt.so.* \ $(TOOLCHAIN_DIR)/lib/librt-$(LIBC_SO_VERSION).so \ $(1)/lib/ + $(if $(CONFIG_EXTERNAL_UCLIBC),$(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/librt-*.so $(TOOLCHAIN_DIR)/lib)) endef define Package/ldd/install @@ -517,6 +519,7 @@ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LIBPTHREAD_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ done ; \ + $(INSTALL_DIR) $(1)/lib exit 0 endef @@ -526,6 +529,7 @@ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LIBRT_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ done ; \ + $(INSTALL_DIR) $(1)/lib exit 0 endef Index: openwrt/rules.mk =================================================================== --- openwrt.orig/rules.mk 2012-09-28 20:22:39.000000000 -0400 +++ openwrt/rules.mk 2012-10-10 20:56:25.376687693 -0400 @@ -115,6 +115,9 @@ LIBGCC_S_PATH=$(realpath $(wildcard $(call qstrip,$(CONFIG_LIBGCC_ROOT_DIR))/$(call qstrip,$(CONFIG_LIBGCC_FILE_SPEC)))) LIBGCC_S=$(if $(LIBGCC_S_PATH),-L$(dir $(LIBGCC_S_PATH)) -lgcc_s) LIBGCC_A=$(realpath $(wildcard $(dir $(LIBGCC_S_PATH))/gcc/*/*/libgcc.a)) +ifneq ($(CONFIG_EXTERNAL_UCLIBC),) +TARGET_LDFLAGS+= -ldl +endif else LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a) LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-L$(TOOLCHAIN_DIR)/lib -lgcc_s,$(LIBGCC_A)) Index: openwrt/toolchain/wrapper/Makefile =================================================================== --- openwrt.orig/toolchain/wrapper/Makefile 2012-09-28 20:22:41.000000000 -0400 +++ openwrt/toolchain/wrapper/Makefile 2012-10-10 20:56:25.376687693 -0400 @@ -53,6 +53,10 @@ define Host/Install $(call toolchain_util,--wrap "$(TOOLCHAIN_DIR)/bin") + $(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/libpthread.so* $(TOOLCHAIN_DIR)/lib + $(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/librt.so* $(TOOLCHAIN_DIR)/lib + $(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/libpthread-*.so $(TOOLCHAIN_DIR)/lib + $(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/librt-*.so $(TOOLCHAIN_DIR)/lib endef define Host/Clean -- Daniel Dickinson PowerCloud Systems, Palo Alto, CA Senior Firmware Engineer (In Canada: Senior Firmware Analyst)
Index: openwrt/target/imagebuilder/Config.in
===================================================================
--- openwrt.orig/target/imagebuilder/Config.in 2012-09-28 20:22:39.000000000
-0400
+++ openwrt/target/imagebuilder/Config.in 2012-10-10 20:56:25.372687867
-0400
@@ -2,7 +2,7 @@
bool "Build the OpenWrt Image Builder"
depends !TARGET_ROOTFS_INITRAMFS
depends !PROFILE_KCONFIG
- depends !EXTERNAL_TOOLCHAIN
+ depends !EXTERNAL_TOOLCHAIN || EXTERNAL_UCLIBC
help
This is essentially a stripped-down version of the buildroot
with precompiled packages, kernel image and image building tools.
Index: openwrt/target/sdk/Config.in
===================================================================
--- openwrt.orig/target/sdk/Config.in 2012-09-28 20:22:41.000000000 -0400
+++ openwrt/target/sdk/Config.in 2012-10-10 20:56:25.372687867 -0400
@@ -1,6 +1,6 @@
config SDK
bool "Build the OpenWrt SDK"
- depends !EXTERNAL_TOOLCHAIN
+ depends !EXTERNAL_TOOLCHAIN || EXTERNAL_UCLIBC
help
This is essentially a stripped-down version of the buildroot
with a precompiled toolchain. It can be used to develop and
Index: openwrt/toolchain/Config.in
===================================================================
--- openwrt.orig/toolchain/Config.in 2012-09-28 20:22:41.000000000 -0400
+++ openwrt/toolchain/Config.in 2012-10-10 20:56:25.376687693 -0400
@@ -14,6 +14,13 @@
help
If enabled, OpenWrt will compile using the native toolchain
for your host instead of compiling one
+ config EXTERNAL_UCLIBC
+ bool
+ prompt "External toolchain uses uClibc" if DEVEL
+ depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
+ help
+ If enabled, OpenWrt will treat the external toolchain as a
uClibc toolchain
+
config TARGET_NAME
string
prompt "Target name" if DEVEL
@@ -171,7 +178,7 @@
config USE_UCLIBC
bool
- default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
+ default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
|| EXTERNAL_UCLIBC
config USE_EXTERNAL_LIBC
bool
Index: openwrt/toolchain/Makefile
===================================================================
--- openwrt.orig/toolchain/Makefile 2012-09-28 20:22:41.000000000 -0400
+++ openwrt/toolchain/Makefile 2012-10-10 20:56:25.376687693 -0400
@@ -29,9 +29,11 @@
# subdirectories to descend into
$(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_INSIGHT),insight)
$(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/minimal
gcc/initial gcc/final $(LIBC)/headers $(LIBC))
+ifndef CONFIG_EXTERNAL_TOOLCHAIN
ifdef CONFIG_USE_UCLIBC
$(curdir)/builddirs += $(LIBC)/utils
endif
+endif
$(curdir)/builddirs-compile:=$($(curdir)/builddirs-prepare)
$(curdir)/builddirs-install:=$($(curdir)/builddirs-compile)
Index: openwrt/target/sdk/Makefile
===================================================================
--- openwrt.orig/target/sdk/Makefile 2012-09-28 20:22:41.000000000 -0400
+++ openwrt/target/sdk/Makefile 2012-10-11 18:12:11.246179649 -0400
@@ -14,7 +14,11 @@
PKG_OS:=$(word 2,$(subst -, ,$(shell $(HOSTCC) -dumpmachine)))
PKG_CPU:=$(word 1,$(subst -, ,$(shell $(HOSTCC) -dumpmachine)))
+ifeq ($(EXTERNAL_TOOLCHAIN),)
SDK_NAME:=OpenWrt-SDK-$(BOARD)-for-$(PKG_OS)-$(PKG_CPU)-gcc-$(GCCV)_$(LIBC)-$(LIBCV)
+else
+SDK_NAME:=OpenWrt-SDK-$(BOARD)-for-$(PKG_OS)-$(PKG_CPU)-gcc-$(GNU_TARGET_NAME)
+endif
SDK_BUILD_DIR:=$(BUILD_DIR)/$(SDK_NAME)
EXCLUDE_DIRS:=*/ccache \
*/stamp \
@@ -33,7 +37,9 @@
$(foreach exclude,$(EXCLUDE_DIRS),--exclude="$(exclude)") \
--exclude="staging_dir/$(ARCH)" \
staging_dir/host
staging_dir/target-$(ARCH)$(ARCH_SUFFIX)_$(LIBC)-$(LIBCV)$(if
$(CONFIG_arm),_eabi) \
-
staging_dir/toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)_$(LIBC)-$(LIBCV)$(if
$(CONFIG_arm),_eabi) | \
+ staging_dir/host staging_dir/target-$(GNU_TARGET_NAME) \
+
staging_dir/toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)_$(LIBC)-$(LIBCV)$(if
$(CONFIG_arm),_eabi) \
+ staging_dir/toolchain-$(GNU_TARGET_NAME) | \
$(TAR) -xf - -C $(SDK_BUILD_DIR)
mkdir -p $(SDK_BUILD_DIR)/target/linux
$(CP) $(GENERIC_PLATFORM_DIR) $(PLATFORM_DIR)
$(SDK_BUILD_DIR)/target/linux/
Index: openwrt/target/imagebuilder/files/Makefile
===================================================================
--- openwrt.orig/target/imagebuilder/files/Makefile 2012-09-28
20:22:39.000000000 -0400
+++ openwrt/target/imagebuilder/files/Makefile 2012-10-10 20:56:25.376687693
-0400
@@ -53,6 +53,7 @@
# override variables from rules.mk
PACKAGE_DIR:=$(TOPDIR)/packages
+OPKG_TMP:=$(TOPDIR)/$(shell mktemp -d)
OPKG:= \
IPKG_TMP="$(TOPDIR)/tmp/ipkgtmp" \
IPKG_INSTROOT="$(TARGET_DIR)" \
@@ -67,7 +68,8 @@
--offline-root $(TARGET_DIR) \
--add-dest root:/ \
--add-arch all:100 \
- --add-arch $(ARCH_PACKAGES):200
+ --add-arch $(ARCH_PACKAGES):200 \
+ -t $(OPKG_TMP)
define Profile
$(eval $(call Profile/Default))
@@ -105,6 +107,7 @@
$(MAKE) package_index; \
else \
mkdir -p $(TARGET_DIR)/tmp; \
+ mkdir -p $(OPKG_TMP); \
$(OPKG) update; \
fi
$(MAKE) package_install
@@ -121,11 +124,13 @@
(cd $(PACKAGE_DIR); $(SCRIPT_DIR)/ipkg-make-index.sh . > Packages && \
gzip -9c Packages > Packages.gz \
) >/dev/null 2>/dev/null
+ mkdir -p $(OPKG_TMP); \
$(OPKG) update
package_install: FORCE
@echo
@echo Installing packages...
+ mkdir -p $(OPKG_TMP)
$(OPKG) install $(PACKAGE_DIR)/libc_*.ipk
$(OPKG) install $(PACKAGE_DIR)/kernel_*.ipk
$(OPKG) install $(BUILD_PACKAGES)
Index: openwrt/package/toolchain/Makefile
===================================================================
--- openwrt.orig/package/toolchain/Makefile 2012-09-28 20:22:39.000000000
-0400
+++ openwrt/package/toolchain/Makefile 2012-10-11 18:14:35.955580531 -0400
@@ -136,7 +136,8 @@
string
prompt "libc shared library files (use wildcards)"
depends EXTERNAL_TOOLCHAIN && PACKAGE_libc
- default "./lib/ld{-*.so,-linux*.so.*}
./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*}"
+ default "./lib/ld{-*.so,-linux*.so.*}
./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*,.so}"
if !EXTERNAL_UCLIBC
+ default "./lib/ld{-*.so,-*.so.*,-linux*.so.*}
./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util,uClibc}{-*.so,.so.*,.so}"
if EXTERNAL_UCLIBC
endmenu
endef
@@ -162,7 +163,7 @@
string
prompt "libpthread shared library files (use wildcards)"
depends EXTERNAL_TOOLCHAIN && PACKAGE_libpthread
- default "./lib/libpthread{-*.so,.so.*}"
+ default "./lib/libpthread{-*.so,.so.*,.so}"
endmenu
endef
@@ -189,7 +190,7 @@
string
prompt "librt shared library files (use wildcards)"
depends EXTERNAL_TOOLCHAIN && PACKAGE_librt
- default "./lib/librt{-*.so,.so.*}"
+ default "./lib/librt{-*.so,.so.*,.so}"
endmenu
endef
@@ -453,6 +454,7 @@
$(TOOLCHAIN_DIR)/lib/librt.so.* \
$(TOOLCHAIN_DIR)/lib/librt-$(LIBC_SO_VERSION).so \
$(1)/lib/
+ $(if $(CONFIG_EXTERNAL_UCLIBC),$(CP)
$(CONFIG_TOOLCHAIN_ROOT)/lib/librt-*.so $(TOOLCHAIN_DIR)/lib))
endef
define Package/ldd/install
@@ -517,6 +519,7 @@
$(INSTALL_DIR) $(1)/$$$$dir ; \
$(CP) $(call qstrip,$(CONFIG_LIBPTHREAD_ROOT_DIR))/$$$$file
$(1)/$$$$dir/ ; \
done ; \
+ $(INSTALL_DIR) $(1)/lib
exit 0
endef
@@ -526,6 +529,7 @@
$(INSTALL_DIR) $(1)/$$$$dir ; \
$(CP) $(call qstrip,$(CONFIG_LIBRT_ROOT_DIR))/$$$$file
$(1)/$$$$dir/ ; \
done ; \
+ $(INSTALL_DIR) $(1)/lib
exit 0
endef
Index: openwrt/rules.mk
===================================================================
--- openwrt.orig/rules.mk 2012-09-28 20:22:39.000000000 -0400
+++ openwrt/rules.mk 2012-10-10 20:56:25.376687693 -0400
@@ -115,6 +115,9 @@
LIBGCC_S_PATH=$(realpath $(wildcard $(call
qstrip,$(CONFIG_LIBGCC_ROOT_DIR))/$(call qstrip,$(CONFIG_LIBGCC_FILE_SPEC))))
LIBGCC_S=$(if $(LIBGCC_S_PATH),-L$(dir $(LIBGCC_S_PATH)) -lgcc_s)
LIBGCC_A=$(realpath $(wildcard $(dir $(LIBGCC_S_PATH))/gcc/*/*/libgcc.a))
+ifneq ($(CONFIG_EXTERNAL_UCLIBC),)
+TARGET_LDFLAGS+= -ldl
+endif
else
LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a)
LIBGCC_S=$(if $(wildcard
$(TOOLCHAIN_DIR)/lib/libgcc_s.so),-L$(TOOLCHAIN_DIR)/lib -lgcc_s,$(LIBGCC_A))
Index: openwrt/toolchain/wrapper/Makefile
===================================================================
--- openwrt.orig/toolchain/wrapper/Makefile 2012-09-28 20:22:41.000000000
-0400
+++ openwrt/toolchain/wrapper/Makefile 2012-10-10 20:56:25.376687693 -0400
@@ -53,6 +53,10 @@
define Host/Install
$(call toolchain_util,--wrap "$(TOOLCHAIN_DIR)/bin")
+ $(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/libpthread.so* $(TOOLCHAIN_DIR)/lib
+ $(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/librt.so* $(TOOLCHAIN_DIR)/lib
+ $(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/libpthread-*.so $(TOOLCHAIN_DIR)/lib
+ $(CP) $(CONFIG_TOOLCHAIN_ROOT)/lib/librt-*.so $(TOOLCHAIN_DIR)/lib
endef
define Host/Clean
signature.asc
Description: OpenPGP digital signature
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
