patches/glibc/2.9/310-2.3.6-fix-pr631.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:43:07 2011 +0200 (2011-07-17)
changeset 2893 a8a65758664f
parent 1201 c9967a6e3b25
permissions -rw-r--r--
cc/gcc: do not use the core pass-2 to build the baremetal compiler

In case we build a baremetal compiler, use the standard passes:
- core_cc is used to build the C library;
- as such, it is meant to run on build, not host;
- the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 Original patch from: gentoo/src/patchsets/glibc/2.9/1090_all_glibc-2.3.6-fix-pr631.patch
     2 
     3 -= BEGIN original header =-
     4 From dank@kegel.com
     5 Wed Jun 15 09:12:43 PDT 2005
     6 
     7 Fixes
     8 
     9 build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r'
    10 build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent'
    11 ... 53 lines deleted ...
    12 build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r'
    13 collect2: ld returned 1 exit status
    14 make[2]: *** [/build/gcc-3.4.3-glibc-2.3.5-hdrs-2.6.11.2/i686-unknown-linux-gnu/build-glibc/elf/ldconfig] Error 1
    15 
    16 when building glibc with --enable-static-nss.
    17 
    18 See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631
    19 
    20 -= END original header =-
    21 
    22 diff -durN glibc-2_9.orig/Makeconfig glibc-2_9/Makeconfig
    23 --- glibc-2_9.orig/Makeconfig	2009-02-02 22:00:36.000000000 +0100
    24 +++ glibc-2_9/Makeconfig	2009-02-02 22:01:04.000000000 +0100
    25 @@ -509,7 +509,7 @@
    26  
    27  # The static libraries.
    28  ifeq (yes,$(build-static))
    29 -link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a
    30 +link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a
    31  else
    32  ifeq (yes,$(build-shared))
    33  # We can try to link the programs with lib*_pic.a...
    34 diff -durN glibc-2_9.orig/elf/Makefile glibc-2_9/elf/Makefile
    35 --- glibc-2_9.orig/elf/Makefile	2008-10-31 21:35:11.000000000 +0100
    36 +++ glibc-2_9/elf/Makefile	2009-02-02 22:01:04.000000000 +0100
    37 @@ -121,6 +121,13 @@
    38  install-bin-script = ldd
    39  endif
    40  
    41 +ifeq (yes,$(build-static-nss))
    42 +nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
    43 +resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
    44 +otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
    45 +	     $(resolvobjdir)/libresolv.a
    46 +endif
    47 +
    48  others		= sprof sln
    49  install-bin	= sprof
    50  others-static   = sln