diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2016-01-09 09:09:51 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2016-01-09 09:09:51 +0100 |
commit | 55532a6ae663cc0f20bdf62d6c5d06db766b55f3 (patch) | |
tree | e37c7df64cc9c54448864c77c0c6030b87c91ffa | |
parent | fad6c6021feb6c2dd4a3bd5de1113994d4a9b04e (diff) |
fix compile with DODEBUG=y
Since more projects using two-stage cross-compile process we
cannot add libgcc_eh.a unconditionally. We must check if
a real file is referenced by the cross-compiler.
Toolchains with --disabel-shared build have a single
libgcc.a containing all required symbols.
Tested with a debug build for x86.
-rw-r--r-- | Rules.mak | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -783,8 +783,11 @@ $(eval $(call cache-output-var,LIBGCC_A,$(CC) $(LIBGCC_CFLAGS) -print-libgcc-fil $(eval $(call cache-output-var,LIBGCC_EH,$(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a)) # with -O0 we (e.g. lockf) might end up with references to # _Unwind_Resume, so pull in gcc_eh in this case.. +# with a --disable-shared toolchain, libgcc_eh.a and libgcc.a are combined +# in libgcc.a, so check if the printed file exist, before adding to the commandline +LIBGCC_EH_FILE := $(shell if [ -f $(LIBGCC_EH) ]; then echo $(LIBGCC_EH); fi) LIBGCC_DIR := $(dir $(LIBGCC_A)) -LIBGCC := $(LIBGCC_A) $(if $(DODEBUG),$(LIBGCC_EH)) +LIBGCC := $(LIBGCC_A) $(if $(DODEBUG),$(LIBGCC_EH_FILE)) # moved from libpthread/linuxthreads ifeq ($(UCLIBC_CTOR_DTOR),y) |