New libgcc_eh dependency for ARM_EABI targets

Kevin Cernekee cernekee at gmail.com
Sat Jun 11 05:57:03 UTC 2011


> Sorry, my patch actually not meant to address your exact situation,
> but rather the unconditional linking of gcc_eh when libubacktrace is
> not enabled.

One possibility is to apply your patch, build the first stage uClibc
with UCLIBC_HAS_BACKTRACE disabled, then re-enable it and rebuild once
gcc stage 2 is ready.

I just wound up patching gcc to build libgcc_eh in stage 1.  I don't
know what the right solution is but this was easiest.

-- 8< --

--- gcc-4.5.2/libgcc/Makefile.in	2010-03-30 06:08:52.000000000 -0700
+++ gcc-4.5.2.new/libgcc/Makefile.in	2011-06-10 16:57:20.471925132 -0700
@@ -765,8 +765,9 @@
 libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
 endif
 
+all: libgcc_eh.a
 ifeq ($(enable_shared),yes)
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
+all: libgcc_s$(SHLIB_EXT)
 ifneq ($(LIBUNWIND),)
 all: libunwind$(SHLIB_EXT)
 endif
@@ -935,10 +936,6 @@
 install-shared:
 	$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
 
-	$(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
-	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
-	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
-
 	$(subst @multilib_dir@,$(MULTIDIR),$(subst \
 		@shlib_base_name@,libgcc_s,$(subst \
 		@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
@@ -952,6 +949,9 @@
 	$(INSTALL_DATA) libgcov.a $(DESTDIR)$(inst_libdir)/
 	chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a
 	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
+	$(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
+	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
 
 	parts="$(INSTALL_PARTS)";				\
 	for file in $$parts; do					\


More information about the uClibc mailing list