summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <mail@waldemar-brodkorb.de>2013-09-13 09:31:00 +0200
committerWaldemar Brodkorb <mail@waldemar-brodkorb.de>2013-09-13 09:31:00 +0200
commitb51f7f73b94422c8cb2411797b009c85db15f89b (patch)
treec128edd2155c7ddff5e48f01b9a870f10000db54
parent194b03d5d9dbddc8c00e4da8fcbb0409fcf50d39 (diff)
fix half way libgcc headache
-rw-r--r--package/busybox/Makefile4
-rw-r--r--package/cfgfs/Makefile2
-rw-r--r--package/dropbear/Makefile2
-rw-r--r--package/musl/Config.in.manual1
-rw-r--r--target/config/Config.in7
-rw-r--r--toolchain/gcc/Makefile2
-rw-r--r--toolchain/musl/Makefile6
-rw-r--r--toolchain/musl/patches/0.9.13/libgcc.patch12
8 files changed, 6 insertions, 30 deletions
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index 4d751a2b1..4a8e8ea68 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -38,12 +38,8 @@ BB_MAKE_FLAGS:= V=1 IPKG_ARCH="${CPU_ARCH}" ARCH="${ARCH}" GCC_HONOUR_COPTS=s \
HOSTCC="${CC_FOR_BUILD}" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-C ${WRKBUILD}
ifneq (${ADK_NATIVE},y)
-ifeq ($(ADK_TARGET_LIB_STATIC_LIBGCC),y)
BB_MAKE_FLAGS+= CROSS_COMPILE="$(TARGET_CROSS)" EXTRA_LDFLAGS='-static-libgcc'
else
-BB_MAKE_FLAGS+= CROSS_COMPILE="$(TARGET_CROSS)"
-endif
-else
BB_MAKE_FLAGS+= EXTRA_LDFLAGS="-static-libgcc"
endif
diff --git a/package/cfgfs/Makefile b/package/cfgfs/Makefile
index 5c902fc1e..159bd229b 100644
--- a/package/cfgfs/Makefile
+++ b/package/cfgfs/Makefile
@@ -26,9 +26,7 @@ $(eval $(call PKG_template,CFGFS,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG
CONFIG_STYLE:= manual
INSTALL_STYLE:= manual
-ifeq ($(ADK_TARGET_LIB_STATIC_LIBGCC),y)
TARGET_LDFLAGS+= -static-libgcc
-endif
do-install:
${INSTALL_DIR} ${IDIR_CFGFS}/sbin
diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile
index b3756a8d9..a7c2356e0 100644
--- a/package/dropbear/Makefile
+++ b/package/dropbear/Makefile
@@ -32,9 +32,7 @@ ifeq ($(ADK_STATIC),y)
TARGET_LDFLAGS+= -static
endif
-ifeq ($(ADK_TARGET_LIB_STATIC_LIBGCC),y)
TARGET_LDFLAGS+= -static-libgcc
-endif
BUILD_STYLE:= manual
INSTALL_STYLE:= manual
CONFIGURE_ARGS+= --disable-pam \
diff --git a/package/musl/Config.in.manual b/package/musl/Config.in.manual
index a3881c1e8..19f590e61 100644
--- a/package/musl/Config.in.manual
+++ b/package/musl/Config.in.manual
@@ -4,7 +4,6 @@ config ADK_PACKAGE_MUSL
default y if ADK_TARGET_LIB_MUSL && !ADK_TOOLCHAIN_ONLY
default n
depends on ADK_TARGET_LIB_MUSL
- select ADK_PACKAGE_LIBGCC
help
Embedded C library.
diff --git a/target/config/Config.in b/target/config/Config.in
index fc5c8d94a..a14ef5b7a 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -564,9 +564,6 @@ config ADK_musl
config ADK_libc
boolean
-config ADK_TARGET_LIB_STATIC_LIBGCC
- boolean
-
config ADK_TARGET_LIBC
string
default "uclibc" if ADK_uclibc
@@ -588,7 +585,6 @@ config ADK_TARGET_LIB_UCLIBC
!ADK_LINUX_SPARC64 && \
!ADK_LINUX_PPC64 && \
!ADK_LINUX_NATIVE
- select ADK_TARGET_LIB_STATIC_LIBGCC
help
http://uclibc.org
@@ -609,7 +605,6 @@ config ADK_TARGET_LIB_EGLIBC
ADK_LINUX_SPARC64 || \
ADK_LINUX_X86 || \
ADK_LINUX_X86_64
- select ADK_TARGET_LIB_STATIC_LIBGCC
help
http://www.eglibc.org
@@ -630,7 +625,6 @@ config ADK_TARGET_LIB_GLIBC
ADK_LINUX_SPARC64 || \
ADK_LINUX_X86 || \
ADK_LINUX_X86_64
- select ADK_TARGET_LIB_STATIC_LIBGCC
help
http://www.gnu.org/libc
@@ -652,7 +646,6 @@ config ADK_TARGET_LIB_LIBC
prompt "Native C library"
boolean
select ADK_libc
- select ADK_TARGET_LIB_STATIC_LIBGCC
depends on ADK_LINUX_NATIVE
endchoice
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index b2ae0ea42..5e168d0d5 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -149,8 +149,6 @@ $(GCC_BUILD_DIR_INITIAL)/.compiled: $(GCC_BUILD_DIR_INITIAL)/.configured
$(WRKBUILD)/.configured: $(GCC_BUILD_DIR_INITIAL)/.compiled
PATH='$(TARGET_PATH)' $(MAKE) -C $(GCC_BUILD_DIR_INITIAL) install-gcc install-target-libgcc
- # -lgcc_eh workaround
- (cd $(STAGING_HOST_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION) && ln -sf libgcc.a libgcc_eh.a)
touch $@
$(GCC_BUILD_DIR_FINAL)/.configured:
diff --git a/toolchain/musl/Makefile b/toolchain/musl/Makefile
index 91a6add88..b3e02b841 100644
--- a/toolchain/musl/Makefile
+++ b/toolchain/musl/Makefile
@@ -17,6 +17,12 @@ $(WRKBUILD)/.headers:
touch $@
$(WRKBUILD)/.compiled:
+ # reconfigure musl, otherwise linking with libgcc is disabled
+ (cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
+ ./configure --prefix=/usr \
+ --target=$(REAL_GNU_TARGET_NAME) \
+ --disable-gcc-wrapper \
+ )
$(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) all
touch $@
diff --git a/toolchain/musl/patches/0.9.13/libgcc.patch b/toolchain/musl/patches/0.9.13/libgcc.patch
deleted file mode 100644
index d382ef1fa..000000000
--- a/toolchain/musl/patches/0.9.13/libgcc.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur musl-0.9.12.orig/Makefile musl-0.9.12/Makefile
---- musl-0.9.12.orig/Makefile 2013-07-29 09:20:33.000000000 +0200
-+++ musl-0.9.12/Makefile 2013-08-17 16:10:10.000000000 +0200
-@@ -100,7 +100,7 @@
- $(CC) $(CFLAGS_ALL_SHARED) -c -o $@ $<
-
- lib/libc.so: $(LOBJS)
-- $(CC) $(CFLAGS_ALL_SHARED) $(LDFLAGS) -nostdlib -shared \
-+ $(CC) $(CFLAGS_ALL_SHARED) $(LDFLAGS) -static-libgcc -nostdlib -shared \
- -Wl,-e,_start -Wl,-Bsymbolic-functions \
- -o $@ $(LOBJS) $(LIBCC)
-