[lfs-dev] GlibC 2.17 / GCC 2.7.3 [git]

Gregory Nietsky gregnietsky at gmail.com
Wed Dec 26 06:44:27 PST 2012

Just like to report that all works as expected with minimal patching

its still required to symlink libgcc to libgcc_eh when building from a 
bootstrap compiler.

Bellow are the hunks in the patch set used with comments attached.

FYI Glibc was released 25/12 GCC 2.7.3 is scheduled for release "now" 
GCC 4.8.0 [codebase switched to C++] is
due in jan.

Regards Greg.

libgcc_s is dead and gone in new gcc using -lgcc_eh works as expected

Index: glibc/glibc-2.17/Makeconfig
--- glibc/glibc-2.17/Makeconfig (revision 3321)
+++ glibc/glibc-2.17/Makeconfig (working copy)
@@ -534,7 +534,7 @@
    libunwind = -lunwind
-libgcc_eh := -Wl,--as-needed -lgcc_s $(libunwind) -Wl,--no-as-needed
+libgcc_eh := -Wl,--as-needed -lgcc_eh $(libunwind) -Wl,--no-as-needed
  gnulib-arch =
  gnulib = -lgcc $(gnulib-arch)
  gnulib-tests := -lgcc $(libgcc_eh)

NB the following hunk is mostly for cross lfs and perhaps bootstraping 
multiarch not for genral consumption
When bootstraping from a 100% static enviroment that i use [GCC 
included] building cross-rpcgen is best done

Index: glibc/glibc-2.17/sunrpc/Makefile
--- glibc/glibc-2.17/sunrpc/Makefile    (revision 3321)
+++ glibc/glibc-2.17/sunrpc/Makefile    (working copy)
@@ -166,7 +166,7 @@
                 $(OUTPUT_OPTION) $(native-compile-mkdep-flags) -c

  $(objpfx)cross-rpcgen: $(cross-rpcgen-objs)
-       $(BUILD_CC) $^ $(BUILD_LDFLAGS) -o $@
+       $(BUILD_CC) $^ $(BUILD_LDFLAGS) -static -o $@

  # This makes sure -DNOT_IN_libc is passed for all these modules.
  cpp-srcs-left := $(rpcgen-objs:.o=.c)

Dont barf on installing manuals if bootstraping and there is no perl

Index: glibc/glibc-2.17/manual/Makefile
--- glibc/glibc-2.17/manual/Makefile    (revision 3321)
+++ glibc/glibc-2.17/manual/Makefile    (working copy)
@@ -176,6 +176,7 @@

  .PHONY: install subdir_install install-data
  install-data subdir_install: install
+ifneq (no,$(PERL))
  ifneq ($(strip $(MAKEINFO)),:)
  install: $(inst_infodir)/libc.info
         @if $(SHELL) -c '$(INSTALL_INFO) --version' >/dev/null 2>&1; then \
@@ -183,6 +184,7 @@
          $(INSTALL_INFO) --info-dir=$(inst_infodir) 
         else : ; fi
  # Catchall implicit rule for other installation targets from the parent.
  install-%: ;

This hunk is related to latest selinux it has a dependancy on pcre and 
needs to be included in link list

Index: glibc/glibc-2.17/nss/Makefile
--- glibc/glibc-2.17/nss/Makefile       (revision 3321)
+++ glibc/glibc-2.17/nss/Makefile       (working copy)
@@ -82,7 +82,7 @@
  include ../Rules

  ifeq (yes,$(have-selinux))
-LDLIBS-makedb          := -lselinux
+LDLIBS-makedb          := -lselinux -lsepol -lpcre

  # Depend on libc.so so a DT_NEEDED is generated in the shared objects.

More information about the lfs-dev mailing list