diff --git a/armhf-ld-so.patch b/armhf-ld-so.patch index 541a9ec..ce66dfb 100644 --- a/armhf-ld-so.patch +++ b/armhf-ld-so.patch @@ -1,3 +1,9 @@ +For backward compatibility with armhf binaries built with the +old linker SONAME, we need to fake out the linker to believe +the new is the old, until such a point as everything is rebuilt. + +Patch for elf/dl-load.c taken from Debian. + diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions index 491dd0a..5464959 100644 --- a/glibc-ports-2.15/sysdeps/arm/shlib-versions @@ -8,3 +14,21 @@ index 491dd0a..5464959 100644 -arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 +arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 arm.*-.*-linux.* ld=ld-linux.so.2 + +--- glibc-2.15/elf/dl-load.c.~1~ 2011-12-30 23:13:56.000000000 +0100 ++++ glibc-2.15/elf/dl-load.c 2012-04-18 15:05:33.203485389 +0200 +@@ -2082,10 +2082,13 @@ + soname = ((const char *) D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[DT_SONAME]->d_un.d_val); + if (strcmp (name, soname) != 0) ++#ifdef __arm__ ++ if (strcmp(name, "ld-linux.so.3") || strcmp(soname, "ld-linux-armhf.so.3")) ++#endif + continue; + + /* We have a match on a new name -- cache it. */ +- add_name_to_object (l, soname); ++ add_name_to_object (l, name); + l->l_soname_added = 1; + } + diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index 2e3a350..87653bb 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -1,9 +1,9 @@ References: bnc#361697 -Index: sysdeps/posix/getaddrinfo.c +Index: glibc-2.15/sysdeps/posix/getaddrinfo.c =================================================================== ---- sysdeps/posix/getaddrinfo.c.orig -+++ sysdeps/posix/getaddrinfo.c +--- glibc-2.15.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.15/sysdeps/posix/getaddrinfo.c @@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas static int gaih_inet (const char *name, const struct gaih_service *service, diff --git a/glibc-2.14-fix-ctors.patch b/glibc-2.14-fix-ctors.patch deleted file mode 100644 index 33867e0..0000000 --- a/glibc-2.14-fix-ctors.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: glibc-2.14/elf/soinit.c -=================================================================== ---- glibc-2.14.orig/elf/soinit.c -+++ glibc-2.14/elf/soinit.c -@@ -26,7 +26,11 @@ void - __libc_global_ctors (void) - { - /* Call constructor functions. */ -- run_hooks (__CTOR_LIST__); -+ void (**tem)(); -+ asm ("" : "=r" (tem) : "0" (__CTOR_LIST__)); -+ /* Call destructor functions. */ -+ -+ run_hooks (tem); - } - - -@@ -36,7 +40,11 @@ void - __libc_fini (void) - { - /* Call destructor functions. */ -- run_hooks (__DTOR_LIST__); -+ void (**tem)(); -+ asm ("" : "=r" (tem) : "0" (__DTOR_LIST__)); -+ /* Call destructor functions. */ -+ -+ run_hooks (tem); - } - - void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) diff --git a/glibc-2.16-fix-check-localplt.patch b/glibc-2.16-fix-check-localplt.patch index 187cf9f..d01b106 100644 --- a/glibc-2.16-fix-check-localplt.patch +++ b/glibc-2.16-fix-check-localplt.patch @@ -11,10 +11,10 @@ Date: Fri Feb 10 21:05:54 2012 +0100 * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv) Invoke __feraiseexcept instead of feraiseexcept. -diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c -index 70f9ee2..6e2ce35 100644 ---- a/sysdeps/i386/fpu/feupdateenv.c -+++ b/sysdeps/i386/fpu/feupdateenv.c +Index: glibc-2.15/sysdeps/i386/fpu/feupdateenv.c +=================================================================== +--- glibc-2.15.orig/sysdeps/i386/fpu/feupdateenv.c ++++ glibc-2.15/sysdeps/i386/fpu/feupdateenv.c @@ -1,5 +1,5 @@ /* Install given floating-point environment and raise exceptions. - Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc. @@ -22,7 +22,7 @@ index 70f9ee2..6e2ce35 100644 This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. -@@ -44,7 +44,7 @@ __feupdateenv (const fenv_t *envp) +@@ -45,7 +45,7 @@ __feupdateenv (const fenv_t *envp) /* Raise the saved exception. Incidently for us the implementation defined format of the values in objects of type fexcept_t is the same as the ones specified using the FE_* constants. */ diff --git a/glibc-2.16-powerpc-initfini.patch b/glibc-2.16-powerpc-initfini.patch new file mode 100644 index 0000000..4153398 --- /dev/null +++ b/glibc-2.16-powerpc-initfini.patch @@ -0,0 +1,795 @@ +commit 3add8e1353d62d77fdd9b4ca363cdfe7006b0efb +Author: Joseph Myers +Date: Wed Feb 8 01:45:26 2012 +0000 + + Support crti.S and crtn.S provided directly by architectures. + +2012-02-08 Joseph Myers + + Support crti.S and crtn.S provided directly by architectures. + * csu/Makefile [crti.S in sysdirs] (generated): Do not append. + [crti.S in sysdirs] (omit-deps): Likewise. + [crti.S in sysdirs] (CFLAGS-initfini.s): Do not define variable. + [crti.S in sysdirs] ($(crtstuff:%=$(objpfx)%.o)): Disable rule. + [crti.S in sysdirs] ($(objpfx)initfini.s): Likewise. + [crti.S in sysdirs] ($(objpfx)crti.S): Likewise. + [crti.S in sysdirs] ($(objpfx)crtn.S): Likewise. + [crti.S in sysdirs] ($(patsubst %,$(objpfx)crt%.o,i n)): Likewise. + [crti.S in sysdirs] ($(objpfx)defs.h): Likewise. + [crti.S in sysdirs] (initfini.c): Remove vpath directive. + * sysdeps/i386/crti.S, sysdeps/i386/crtn.S: New files, based on + compiler output for sysdeps/generic/initfini.c. + * sysdeps/i386/elf/Makefile: Remove file. + * sysdeps/i386/Makefile (CFLAGS-initfini.s): Remove variable. + +Index: glibc-2.15/csu/Makefile +=================================================================== +--- glibc-2.15.orig/csu/Makefile ++++ glibc-2.15/csu/Makefile +@@ -75,10 +75,6 @@ before-compile += $(objpfx)abi-tag.h + generated += abi-tag.h + endif + +-ifeq ($(have-initfini),yes) +- +-CPPFLAGS += -DHAVE_INITFINI +- + # These are the special initializer/finalizer files. They are always the + # first and last file in the link. crti.o ... crtn.o define the global + # "functions" _init and _fini to run the .init and .fini sections. +@@ -86,6 +82,13 @@ crtstuff = crti crtn + + install-lib += $(crtstuff:=.o) + extra-objs += $(crtstuff:=.o) ++ ++# Conditionals on the existence of a sysdeps version of crti.S are ++# temporary until all targets either have such a file or have been ++# removed, after which the old approach of postprocessing compiler ++# output will be removed. ++ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) ++ + generated += $(crtstuff:=.S) initfini.s defs.h + omit-deps += $(crtstuff) + +Index: glibc-2.15/nptl/Makefile +=================================================================== +--- glibc-2.15.orig/nptl/Makefile ++++ glibc-2.15/nptl/Makefile +@@ -335,15 +335,22 @@ ifneq (,$(patsubst .,,$(multidir))) + generated-dirs := $(firstword $(subst /, , $(multidir))) + crti-objs += $(multidir)/crti.o + crtn-objs += $(multidir)/crtn.o ++# Conditionals on the existence of a sysdeps version of crti.S are ++# temporary until all targets either have such a file or have been ++# removed, after which the old approach of postprocessing compiler ++# output will be removed. ++ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) + omit-deps += $(multidir)/crti $(multidir)/crtn ++endif + $(objpfx)$(multidir): + mkdir -p $@ + endif + extra-objs += $(crti-objs) $(crtn-objs) ++ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) + omit-deps += crti crtn +- + CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables + endif ++endif + + CFLAGS-flockfile.c = -D_IO_MTSAFE_IO + CFLAGS-ftrylockfile.c = -D_IO_MTSAFE_IO +@@ -543,15 +550,24 @@ $(addprefix $(objpfx),$(tests) $(test-sr + endif + + ifeq ($(build-shared),yes) ++ifeq (,$(wildcard $(sysdirs:%=%/crti.S))) + vpath pt-initfini.c $(sysdirs) + + $(objpfx)pt-initfini.s: pt-initfini.c + $(compile.c) -S $(CFLAGS-pt-initfini.s) -finhibit-size-directive \ + $(patsubst -f%,-fno-%,$(exceptions)) -o $@ ++endif + + $(objpfx)tst-cleanup0.out: /dev/null $(objpfx)tst-cleanup0 + $(make-test-out) 2>&1 | cmp - tst-cleanup0.expect > $@ + ++ifneq (,$(wildcard $(sysdirs:%=%/crti.S))) ++ ++$(objpfx)crti.o: $(objpfx)pt-crti.o ++ ln -f $< $@ ++ ++else ++ + # We only have one kind of startup code files. Static binaries and + # shared libraries are build using the PIC version. + $(objpfx)crti.S: $(objpfx)pt-initfini.s +@@ -573,6 +589,8 @@ $(objpfx)crti.o: $(objpfx)crti.S $(objpf + $(objpfx)crtn.o: $(objpfx)crtn.S $(objpfx)defs.h + $(compile.S) -g0 $(ASFLAGS-.os) -o $@ + ++endif ++ + ifneq ($(multidir),.) + $(objpfx)$(multidir)/crti.o: $(objpfx)crti.o $(objpfx)$(multidir)/ + ln -f $< $@ +Index: glibc-2.15/nptl/pt-crti.S +=================================================================== +--- /dev/null ++++ glibc-2.15/nptl/pt-crti.S +@@ -0,0 +1,44 @@ ++/* Special .init and .fini section support for libpthread. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Arrange for __pthread_initialize_minimal_internal to be called at ++ libpthread startup, instead of conditionally calling ++ __gmon_start__. */ ++ ++#define PREINIT_FUNCTION __pthread_initialize_minimal_internal ++#define PREINIT_FUNCTION_WEAK 0 ++ ++#include +Index: glibc-2.15/sysdeps/i386/Makefile +=================================================================== +--- glibc-2.15.orig/sysdeps/i386/Makefile ++++ glibc-2.15/sysdeps/i386/Makefile +@@ -5,12 +5,6 @@ asm-CPPFLAGS += -DGAS_SYNTAX + # The i386 `long double' is a distinct type we support. + long-double-fcts = yes + +-ifeq ($(subdir),csu) +-# On i686 we must avoid generating the trampoline functions generated +-# to get the GOT pointer. +-CFLAGS-initfini.s += -march=i386 -mtune=i386 +-endif +- + ifeq ($(subdir),gmon) + sysdep_routines += i386-mcount + endif +Index: glibc-2.15/sysdeps/i386/crti.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/i386/crti.S +@@ -0,0 +1,85 @@ ++/* Special .init and .fini section support for x86. ++ Copyright (C) 1995-2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crti.S puts a function prologue at the beginning of the .init and ++ .fini sections and defines global symbols for those addresses, so ++ they can be called as functions. The symbols _init and _fini are ++ magic and cause the linker to emit DT_INIT and DT_FINI. */ ++ ++#include ++#include ++ ++#ifndef PREINIT_FUNCTION ++# define PREINIT_FUNCTION __gmon_start__ ++#endif ++ ++#ifndef PREINIT_FUNCTION_WEAK ++# define PREINIT_FUNCTION_WEAK 1 ++#endif ++ ++#if PREINIT_FUNCTION_WEAK ++ weak_extern (PREINIT_FUNCTION) ++#else ++ .hidden PREINIT_FUNCTION ++#endif ++ ++ .section .init,"ax",@progbits ++ .p2align 2 ++ .globl _init ++ .type _init, @function ++_init: ++ pushl %ebx ++ /* Maintain 16-byte stack alignment for called functions. */ ++ subl $8, %esp ++ LOAD_PIC_REG (bx) ++#if PREINIT_FUNCTION_WEAK ++ movl PREINIT_FUNCTION@GOT(%ebx), %eax ++ testl %eax, %eax ++ je .Lno_weak_fn ++ call PREINIT_FUNCTION@PLT ++.Lno_weak_fn: ++#else ++ call PREINIT_FUNCTION ++#endif ++ ++ .section .fini,"ax",@progbits ++ .p2align 2 ++ .globl _fini ++ .type _fini, @function ++_fini: ++ pushl %ebx ++ subl $8, %esp ++ LOAD_PIC_REG (bx) +Index: glibc-2.15/sysdeps/i386/crtn.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/i386/crtn.S +@@ -0,0 +1,48 @@ ++/* Special .init and .fini section support for x86. ++ Copyright (C) 1995-2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crtn.S puts function epilogues in the .init and .fini sections ++ corresponding to the prologues in crti.S. */ ++ ++ .section .init,"ax",@progbits ++ addl $8, %esp ++ popl %ebx ++ ret ++ ++ .section .fini,"ax",@progbits ++ addl $8, %esp ++ popl %ebx ++ ret +Index: glibc-2.15/sysdeps/i386/elf/Makefile +=================================================================== +--- glibc-2.15.orig/sysdeps/i386/elf/Makefile ++++ /dev/null +@@ -1,4 +0,0 @@ +-ifeq ($(subdir),csu) +-# Turn off -fasynchronous-unwind-tables +-CFLAGS-initfini.s += -fno-asynchronous-unwind-tables +-endif +Index: glibc-2.15/Makeconfig +=================================================================== +--- glibc-2.15.orig/Makeconfig ++++ glibc-2.15/Makeconfig +@@ -394,11 +394,6 @@ ifndef asm-CPPFLAGS + asm-CPPFLAGS = + endif + +-# ELF always supports init/fini sections +-ifeq ($(elf),yes) +-have-initfini = yes +-endif +- + ifeq ($(have-as-needed),yes) + as-needed := -Wl,--as-needed + no-as-needed := -Wl,--no-as-needed +@@ -412,14 +407,8 @@ no-whole-archive = -Wl,--no-whole-archiv + whole-archive = -Wl,--whole-archive + + # Installed name of the startup code. +-ifneq ($(have-initfini),yes) +-# When not having init/fini, there is just one startfile, called crt0.o. +-start-installed-name = crt0.o +-else +-# On systems having init/fini, crt0.o is called crt1.o, and there are +-# some additional bizarre files. ++# The ELF convention is that the startfile is called crt1.o + start-installed-name = crt1.o +-endif + # On systems that do not need a special startfile for statically linked + # binaries, simply set it to the normal name. + ifndef static-start-installed-name +Index: glibc-2.15/config.h.in +=================================================================== +--- glibc-2.15.orig/config.h.in ++++ glibc-2.15/config.h.in +@@ -42,9 +42,6 @@ + assembler instructions per line. Default is `;' */ + #undef ASM_LINE_SEP + +-/* Define if not using ELF, but `.init' and `.fini' sections are available. */ +-#undef HAVE_INITFINI +- + /* Define if __attribute__((section("foo"))) puts quotes around foo. */ + #undef HAVE_SECTION_QUOTES + +Index: glibc-2.15/config.make.in +=================================================================== +--- glibc-2.15.orig/config.make.in ++++ glibc-2.15/config.make.in +@@ -48,11 +48,9 @@ all-warnings = @all_warnings@ + elf = @elf@ + have-z-combreloc = @libc_cv_z_combreloc@ + have-z-execstack = @libc_cv_z_execstack@ +-have-initfini = @libc_cv_have_initfini@ + have-Bgroup = @libc_cv_Bgroup@ + have-as-needed = @libc_cv_as_needed@ + libgcc_s_suffix = @libc_cv_libgcc_s_suffix@ +-need-nopic-initfini = @nopic_initfini@ + with-fp = @with_fp@ + old-glibc-headers = @old_glibc_headers@ + unwind-find-fde = @libc_cv_gcc_unwind_find_fde@ +Index: glibc-2.15/configure +=================================================================== +--- glibc-2.15.orig/configure ++++ glibc-2.15/configure +@@ -610,7 +610,6 @@ RELEASE + VERSION + mach_interface_list + DEFINES +-nopic_initfini + static_nss + bounded + omitfp +@@ -7995,7 +7994,6 @@ $as_echo "$libc_cv_pic_default" >&6; } + + + +- + + + +Index: glibc-2.15/configure.in +=================================================================== +--- glibc-2.15.orig/configure.in ++++ glibc-2.15/configure.in +@@ -2377,7 +2377,6 @@ AC_SUBST(profile) + AC_SUBST(omitfp) + AC_SUBST(bounded) + AC_SUBST(static_nss) +-AC_SUBST(nopic_initfini) + + AC_SUBST(DEFINES) + +Index: glibc-2.15/csu/gmon-start.c +=================================================================== +--- glibc-2.15.orig/csu/gmon-start.c ++++ glibc-2.15/csu/gmon-start.c +@@ -1,5 +1,5 @@ + /* Code to enable profiling at program startup. +- Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. ++ Copyright (C) 1995,1996,1997,2000,2001,2002,2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -43,23 +43,14 @@ extern char etext[]; + # endif + #endif + +-#ifndef HAVE_INITFINI +-/* This function gets called at startup by the normal constructor +- mechanism. We link this file together with start.o to produce gcrt1.o, +- so this constructor will be first in the list. */ +- +-extern void __gmon_start__ (void) __attribute__ ((constructor)); +-#else +-/* In ELF and COFF, we cannot use the normal constructor mechanism to call ++/* We cannot use the normal constructor mechanism to call + __gmon_start__ because gcrt1.o appears before crtbegin.o in the link. +- Instead crti.o calls it specially (see initfini.c). */ ++ Instead crti.o calls it specially. */ + extern void __gmon_start__ (void); +-#endif + + void + __gmon_start__ (void) + { +-#ifdef HAVE_INITFINI + /* Protect from being called more than once. Since crti.o is linked + into every shared library, each of their init functions will call us. */ + static int called; +@@ -68,7 +59,6 @@ __gmon_start__ (void) + return; + + called = 1; +-#endif + + /* Start keeping profiling records. */ + __monstartup ((u_long) TEXT_START, (u_long) &etext); +Index: glibc-2.15/sysdeps/powerpc/powerpc32/crti.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/powerpc/powerpc32/crti.S +@@ -0,0 +1,90 @@ ++/* Special .init and .fini section support for PowerPC. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crti.S puts a function prologue at the beginning of the .init and ++ .fini sections and defines global symbols for those addresses, so ++ they can be called as functions. The symbols _init and _fini are ++ magic and cause the linker to emit DT_INIT and DT_FINI. */ ++ ++#include ++#include ++ ++#ifndef PREINIT_FUNCTION ++# define PREINIT_FUNCTION __gmon_start__ ++#endif ++ ++#ifndef PREINIT_FUNCTION_WEAK ++# define PREINIT_FUNCTION_WEAK 1 ++#endif ++ ++#if PREINIT_FUNCTION_WEAK ++ weak_extern (PREINIT_FUNCTION) ++#else ++ .hidden PREINIT_FUNCTION ++#endif ++ ++ .section .init,"ax",@progbits ++ .align 2 ++ .globl _init ++ .type _init, @function ++_init: ++ stwu r1, -16(r1) ++ mflr r0 ++ stw r0, 20(r1) ++ stw r30, 8(r1) ++ SETUP_GOT_ACCESS (r30, .Lgot_label_i) ++ addis r30, r30, _GLOBAL_OFFSET_TABLE_-.Lgot_label_i@ha ++ addi r30, r30, _GLOBAL_OFFSET_TABLE_-.Lgot_label_i@l ++#if PREINIT_FUNCTION_WEAK ++ lwz r0, PREINIT_FUNCTION@got(r30) ++ cmpwi cr7, r0, 0 ++ beq+ cr7, 1f ++ bl PREINIT_FUNCTION@plt ++1: ++#else ++ bl PREINIT_FUNCTION@local ++#endif ++ ++ .section .fini,"ax",@progbits ++ .align 2 ++ .globl _fini ++ .type _fini, @function ++_fini: ++ stwu r1, -16(r1) ++ mflr r0 ++ stw r0, 20(r1) ++ stw r30, 8(r1) ++ SETUP_GOT_ACCESS (r30, .Lgot_label_f) +Index: glibc-2.15/sysdeps/powerpc/powerpc32/crtn.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/powerpc/powerpc32/crtn.S +@@ -0,0 +1,54 @@ ++/* Special .init and .fini section support for PowerPC. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crtn.S puts function epilogues in the .init and .fini sections ++ corresponding to the prologues in crti.S. */ ++ ++#include ++ ++ .section .init,"ax",@progbits ++ lwz r0, 20(r1) ++ mtlr r0 ++ lwz r30, 8(r1) ++ addi r1, r1, 16 ++ blr ++ ++ .section .fini,"ax",@progbits ++ lwz r0, 20(r1) ++ mtlr r0 ++ lwz r30, 8(r1) ++ addi r1, r1, 16 ++ blr +Index: glibc-2.15/sysdeps/powerpc/powerpc64/crti.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/powerpc/powerpc64/crti.S +@@ -0,0 +1,107 @@ ++/* Special .init and .fini section support for PowerPC64. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crti.S puts a function prologue at the beginning of the .init and ++ .fini sections and defines global symbols for those addresses, so ++ they can be called as functions. The symbols _init and _fini are ++ magic and cause the linker to emit DT_INIT and DT_FINI. */ ++ ++#include ++#include ++ ++#ifndef PREINIT_FUNCTION ++# define PREINIT_FUNCTION __gmon_start__ ++#endif ++ ++#ifndef PREINIT_FUNCTION_WEAK ++# define PREINIT_FUNCTION_WEAK 1 ++#endif ++ ++#if PREINIT_FUNCTION_WEAK ++ weak_extern (PREINIT_FUNCTION) ++#else ++ .hidden PREINIT_FUNCTION ++#endif ++ ++#if PREINIT_FUNCTION_WEAK ++ .section ".toc", "aw" ++.LC0: ++ .tc PREINIT_FUNCTION[TC], PREINIT_FUNCTION ++#endif ++ .type BODY_LABEL (_init), @function ++ .globl _init ++ .section ".opd", "aw" ++ .align 3 ++_init: OPD_ENT (_init) ++#ifdef HAVE_ASM_GLOBAL_DOT_NAME ++ .globl BODY_LABEL (_init) ++ .size _init, 24 ++#else ++ .type _init, @function ++#endif ++ .section ".init", "ax", @progbits ++ .align ALIGNARG (2) ++BODY_LABEL (_init): ++ mflr 0 ++ std 0, 16(r1) ++ stdu r1, -112(r1) ++#if PREINIT_FUNCTION_WEAK ++ addis r9, r2, .LC0@toc@ha ++ ld r0, .LC0@toc@l(r9) ++ cmpdi cr7, r0, 0 ++ beq+ cr7, 1f ++#endif ++ bl JUMPTARGET (PREINIT_FUNCTION) ++ nop ++1: ++ ++ .type BODY_LABEL (_fini), @function ++ .globl _fini ++ .section ".opd", "aw" ++ .align 3 ++_fini: OPD_ENT (_fini) ++#ifdef HAVE_ASM_GLOBAL_DOT_NAME ++ .globl BODY_LABEL (_fini) ++ .size _fini, 24 ++#else ++ .type _fini, @function ++#endif ++ .section ".fini", "ax", @progbits ++ .align ALIGNARG (2) ++BODY_LABEL (_fini): ++ mflr 0 ++ std 0, 16(r1) ++ stdu r1, -112(r1) +Index: glibc-2.15/sysdeps/powerpc/powerpc64/crtn.S +=================================================================== +--- /dev/null ++++ glibc-2.15/sysdeps/powerpc/powerpc64/crtn.S +@@ -0,0 +1,52 @@ ++/* Special .init and .fini section support for PowerPC64. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* crtn.S puts function epilogues in the .init and .fini sections ++ corresponding to the prologues in crti.S. */ ++ ++#include ++ ++ .section .init,"ax",@progbits ++ addi r1, r1, 112 ++ ld r0, 16(r1) ++ mtlr r0 ++ blr ++ ++ .section .fini,"ax",@progbits ++ addi r1, r1, 112 ++ ld r0, 16(r1) ++ mtlr r0 ++ blr diff --git a/glibc-2.3.2.no_archive.diff b/glibc-2.3.2.no_archive.diff index da3351d..d0a6eb7 100644 --- a/glibc-2.3.2.no_archive.diff +++ b/glibc-2.3.2.no_archive.diff @@ -3,10 +3,10 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de - Make --no-archive default for localedef -Index: locale/programs/localedef.c +Index: glibc-2.15/locale/programs/localedef.c =================================================================== ---- locale/programs/localedef.c.orig -+++ locale/programs/localedef.c +--- glibc-2.15.orig/locale/programs/localedef.c ++++ glibc-2.15/locale/programs/localedef.c @@ -82,7 +82,7 @@ const char *alias_file; static struct localedef_t *locales; diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff index 8d3240d..aefd49d 100644 --- a/glibc-2.3.3-nscd-db-path.diff +++ b/glibc-2.3.3-nscd-db-path.diff @@ -2,12 +2,10 @@ * nscd/nscd.h: Move persistent storage back to /var/run/nscd -Index: nscd/nscd.h +Index: glibc-2.15/nscd/nscd.h =================================================================== -diff --git a/nscd/nscd.h b/nscd/nscd.h -index fdaf01b..23b6a94 100644 ---- nscd/nscd.h -+++ nscd/nscd.h +--- glibc-2.15.orig/nscd/nscd.h ++++ glibc-2.15/nscd/nscd.h @@ -113,11 +113,11 @@ struct database_dyn diff --git a/glibc-2.3.90-bindresvport.blacklist.diff b/glibc-2.3.90-bindresvport.blacklist.diff index 1eb65f3..65adc21 100644 --- a/glibc-2.3.90-bindresvport.blacklist.diff +++ b/glibc-2.3.90-bindresvport.blacklist.diff @@ -1,7 +1,7 @@ -Index: sunrpc/bindrsvprt.c +Index: glibc-2.15/sunrpc/bindrsvprt.c =================================================================== ---- sunrpc/bindrsvprt.c.orig -+++ sunrpc/bindrsvprt.c +--- glibc-2.15.orig/sunrpc/bindrsvprt.c ++++ glibc-2.15/sunrpc/bindrsvprt.c @@ -29,28 +29,108 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff index 013b862..e9b5112 100644 --- a/glibc-2.3.90-langpackdir.diff +++ b/glibc-2.3.90-langpackdir.diff @@ -1,7 +1,7 @@ -Index: intl/loadmsgcat.c +Index: glibc-2.15/intl/loadmsgcat.c =================================================================== ---- intl/loadmsgcat.c.orig -+++ intl/loadmsgcat.c +--- glibc-2.15.orig/intl/loadmsgcat.c ++++ glibc-2.15/intl/loadmsgcat.c @@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind if (domain_file->filename == NULL) goto out; diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 index 43f21af..6fad673 100644 --- a/glibc-2.3.locales.diff.bz2 +++ b/glibc-2.3.locales.diff.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23c4a947e7dee14c05556bc30c1dded5458a7b9ba8b306cb7bce93dd57fb9b96 -size 329206 +oid sha256:fe966fc1d1082da024fda16d4ad1e8e2b73f30d646701d24a27882ec653b5807 +size 329247 diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff deleted file mode 100644 index 1d13214..0000000 --- a/glibc-2.4.90-nscd.diff +++ /dev/null @@ -1,38 +0,0 @@ -Index: nscd/nscd.conf -=================================================================== ---- nscd/nscd.conf.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/nscd.conf 2010-02-14 14:58:08.000000000 +0100 -@@ -61,11 +61,11 @@ - auto-propagate group yes - - enable-cache hosts yes -- positive-time-to-live hosts 3600 -- negative-time-to-live hosts 20 -+ positive-time-to-live hosts 600 -+ negative-time-to-live hosts 0 - suggested-size hosts 211 - check-files hosts yes -- persistent hosts yes -+ persistent hosts no - shared hosts yes - max-db-size hosts 33554432 - -Index: nscd/nscd_stat.c -=================================================================== ---- nscd/nscd_stat.c.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/nscd_stat.c 2010-02-14 15:02:41.000000000 +0100 -@@ -37,8 +37,13 @@ - #endif /* HAVE_SELINUX */ - - --/* We use this to make sure the receiver is the same. */ -+/* We use this to make sure the receiver is the same. Capture mtime -+ of this file if possible. */ -+#if defined(__TIMESTAMP__) -+static const char compilation[21] = __TIMESTAMP__; -+#else - static const char compilation[21] = __DATE__ " " __TIME__; -+#endif - - /* Statistic data for one database. */ - struct dbstat diff --git a/glibc-2.4.90-revert-only-euro.diff b/glibc-2.4.90-revert-only-euro.diff index 13dd342..45a2284 100644 --- a/glibc-2.4.90-revert-only-euro.diff +++ b/glibc-2.4.90-revert-only-euro.diff @@ -1,7 +1,7 @@ -Index: locale/iso-4217.def +Index: glibc-2.15/locale/iso-4217.def =================================================================== ---- locale/iso-4217.def.orig -+++ locale/iso-4217.def +--- glibc-2.15.orig/locale/iso-4217.def ++++ glibc-2.15/locale/iso-4217.def @@ -8,6 +8,7 @@ * * !!! The list has to be sorted !!! diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff index f778bf3..20789c7 100644 --- a/glibc-2.8-getconf.diff +++ b/glibc-2.8-getconf.diff @@ -2,10 +2,10 @@ This is required for too noisy rpmlint: glibc.i586: E: hardlink-across-partition (Badness: 10000) /usr/lib/getconf/POSIX_V7_ILP32_OFFBIG /usr/bin/getconf -Index: posix/Makefile +Index: glibc-2.15/posix/Makefile =================================================================== ---- posix/Makefile.orig -+++ posix/Makefile +--- glibc-2.15.orig/posix/Makefile ++++ glibc-2.15/posix/Makefile @@ -316,8 +316,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi $(addprefix $(..)./scripts/mkinstalldirs ,\ $(filter-out $(wildcard $@),$@)) diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff index 4049a3f..a540bc9 100644 --- a/glibc-cpusetsize.diff +++ b/glibc-cpusetsize.diff @@ -1,7 +1,7 @@ -Index: bits/sched.h +Index: glibc-2.15/bits/sched.h =================================================================== ---- bits/sched.h.orig -+++ bits/sched.h +--- glibc-2.15.orig/bits/sched.h ++++ glibc-2.15/bits/sched.h @@ -54,7 +54,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined @@ -11,10 +11,10 @@ Index: bits/sched.h # define __NCPUBITS (8 * sizeof (__cpu_mask)) /* Type for array elements in 'cpu_set_t'. */ -Index: sysdeps/unix/sysv/linux/bits/sched.h +Index: glibc-2.15/sysdeps/unix/sysv/linux/bits/sched.h =================================================================== ---- sysdeps/unix/sysv/linux/bits/sched.h.orig -+++ sysdeps/unix/sysv/linux/bits/sched.h +--- glibc-2.15.orig/sysdeps/unix/sysv/linux/bits/sched.h ++++ glibc-2.15/sysdeps/unix/sysv/linux/bits/sched.h @@ -113,7 +113,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined diff --git a/glibc-elf-localscope.diff b/glibc-elf-localscope.diff index edcd44a..4e5e536 100644 --- a/glibc-elf-localscope.diff +++ b/glibc-elf-localscope.diff @@ -1,7 +1,8 @@ -diff -ru elf~/dl-close.c elf/dl-close.c ---- elf~/dl-close.c 2011-02-04 00:35:03.000000000 +0100 -+++ elf/dl-close.c 2011-02-22 02:16:12.367883000 +0100 -@@ -180,24 +186,28 @@ +Index: glibc-2.15/elf/dl-close.c +=================================================================== +--- glibc-2.15.orig/elf/dl-close.c ++++ glibc-2.15/elf/dl-close.c +@@ -180,24 +180,28 @@ _dl_close_worker (struct link_map *map) /* Signal the object is still needed. */ l->l_idx = IDX_STILL_USED; @@ -42,7 +43,7 @@ diff -ru elf~/dl-close.c elf/dl-close.c ++lp; } } -@@ -206,19 +216,25 @@ +@@ -206,19 +210,25 @@ _dl_close_worker (struct link_map *map) for (unsigned int j = 0; j < l->l_reldeps->act; ++j) { struct link_map *jmap = l->l_reldeps->list[j]; diff --git a/glibc-fini-unwind.diff b/glibc-fini-unwind.diff index e2da629..b27fe9d 100644 --- a/glibc-fini-unwind.diff +++ b/glibc-fini-unwind.diff @@ -1,7 +1,7 @@ -Index: sysdeps/x86_64/elf/initfini.c +Index: glibc-2.15/sysdeps/x86_64/elf/initfini.c =================================================================== ---- sysdeps/x86_64/elf/initfini.c.orig 2004-08-16 06:50:55.000000000 +0200 -+++ sysdeps/x86_64/elf/initfini.c 2010-04-16 16:41:11.000000000 +0200 +--- glibc-2.15.orig/sysdeps/x86_64/elf/initfini.c ++++ glibc-2.15/sysdeps/x86_64/elf/initfini.c @@ -44,6 +44,25 @@ * crtn.s puts the corresponding function epilogues in the .init and .fini sections. */ diff --git a/glibc-fix-lookup-crash.patch b/glibc-fix-lookup-crash.patch deleted file mode 100644 index d4aaf5c..0000000 --- a/glibc-fix-lookup-crash.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: glibc-2.11.3/elf/dl-close.c -=================================================================== ---- glibc-2.11.3.orig/elf/dl-close.c 2011-05-27 15:08:23.000000000 +0200 -+++ glibc-2.11.3/elf/dl-close.c 2011-07-13 19:28:52.000000000 +0200 -@@ -127,7 +127,13 @@ _dl_close_worker (struct link_map *map) - { - struct link_map **oldp = map->l_initfini; - map->l_initfini = map->l_orig_initfini; -- _dl_scope_free (oldp); -+ /* We can't remove the l_initfini memory because -+ it's shared with l_searchlist.r_list. We don't clear -+ the latter so when we dlopen this object again that -+ entry would point to stale memory. And we don't want -+ to recompute it as it would involve a new call to -+ map_object_deps. -+ _dl_scope_free (oldp); */ - } - } - diff --git a/glibc-gai-private4.diff b/glibc-gai-private4.diff index a6a1ee8..028e953 100644 --- a/glibc-gai-private4.diff +++ b/glibc-gai-private4.diff @@ -1,5 +1,7 @@ ---- posix/gai.conf~ 2010-05-12 04:10:58.087661000 +0200 -+++ posix/gai.conf 2010-05-12 04:14:40.638820000 +0200 +Index: glibc-2.15/posix/gai.conf +=================================================================== +--- glibc-2.15.orig/posix/gai.conf ++++ glibc-2.15/posix/gai.conf @@ -67,11 +67,66 @@ #scopev4 ::ffff:192.168.0.0/112 5 #scopev4 ::ffff:0.0.0.0/96 14 diff --git a/glibc-nodate.patch b/glibc-nodate.patch index 875e196..3f3a443 100644 --- a/glibc-nodate.patch +++ b/glibc-nodate.patch @@ -1,3 +1,23 @@ +Index: glibc-2.15/nscd/nscd_stat.c +=================================================================== +--- glibc-2.15/nscd/nscd_stat.c.orig 2010-01-18 18:01:41.000000000 +0100 ++++ glibc-2.15/nscd/nscd_stat.c 2010-02-14 15:02:41.000000000 +0100 +@@ -37,8 +37,13 @@ + #endif /* HAVE_SELINUX */ + + +-/* We use this to make sure the receiver is the same. */ ++/* We use this to make sure the receiver is the same. Capture mtime ++ of this file if possible. */ ++#if defined(__TIMESTAMP__) ++static const char compilation[21] = __TIMESTAMP__; ++#else + static const char compilation[21] = __DATE__ " " __TIME__; ++#endif + + /* Statistic data for one database. */ + struct dbstat + Index: glibc-2.15/csu/Makefile =================================================================== --- glibc-2.15.orig/csu/Makefile diff --git a/glibc-nscd-hconf.diff b/glibc-nscd-hconf.diff index 1c360c4..3d01d4f 100644 --- a/glibc-nscd-hconf.diff +++ b/glibc-nscd-hconf.diff @@ -1,10 +1,10 @@ See: http://sourceware.org/bugzilla/show_bug.cgi?id=11928 -diff --git a/nscd/aicache.c b/nscd/aicache.c -index 3cb2208..2e92929 100644 ---- a/nscd/aicache.c -+++ b/nscd/aicache.c +Index: glibc-2.15/nscd/aicache.c +=================================================================== +--- glibc-2.15.orig/nscd/aicache.c ++++ glibc-2.15/nscd/aicache.c @@ -26,6 +26,7 @@ #include #include @@ -13,7 +13,7 @@ index 3cb2208..2e92929 100644 #include "dbg_log.h" #include "nscd.h" -@@ -103,6 +104,8 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req, +@@ -103,6 +104,8 @@ addhstaiX (struct database_dyn *db, int if (__res_maybe_init (&_res, 0) == -1) no_more = 1; @@ -22,11 +22,11 @@ index 3cb2208..2e92929 100644 /* If we are looking for both IPv4 and IPv6 address we don't want the lookup functions to automatically promote IPv4 addresses to -diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c -index ed55bec..c79b85a 100644 ---- a/resolv/res_hconf.c -+++ b/resolv/res_hconf.c -@@ -84,7 +84,9 @@ static const struct cmd +Index: glibc-2.15/resolv/res_hconf.c +=================================================================== +--- glibc-2.15.orig/resolv/res_hconf.c ++++ glibc-2.15/resolv/res_hconf.c +@@ -83,7 +83,9 @@ static const struct cmd }; /* Structure containing the state. */ diff --git a/glibc-nscd.conf.patch b/glibc-nscd.conf.patch new file mode 100644 index 0000000..81bedb3 --- /dev/null +++ b/glibc-nscd.conf.patch @@ -0,0 +1,19 @@ +Index: glibc-2.15/nscd/nscd.conf +=================================================================== +--- glibc-2.15.orig/nscd/nscd.conf ++++ glibc-2.15/nscd/nscd.conf +@@ -61,11 +61,11 @@ + auto-propagate group yes + + enable-cache hosts yes +- positive-time-to-live hosts 3600 +- negative-time-to-live hosts 20 ++ positive-time-to-live hosts 600 ++ negative-time-to-live hosts 0 + suggested-size hosts 211 + check-files hosts yes +- persistent hosts yes ++ persistent hosts no + shared hosts yes + max-db-size hosts 33554432 + diff --git a/glibc-resolv-mdnshint.diff b/glibc-resolv-mdnshint.diff index fec8d52..69ea77a 100644 --- a/glibc-resolv-mdnshint.diff +++ b/glibc-resolv-mdnshint.diff @@ -1,8 +1,8 @@ -diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c -index ed55bec..f06db75 100644 ---- a/resolv/res_hconf.c -+++ b/resolv/res_hconf.c -@@ -243,9 +243,12 @@ parse_line (const char *fname, int line_num, const char *str) +Index: glibc-2.15/resolv/res_hconf.c +=================================================================== +--- glibc-2.15.orig/resolv/res_hconf.c ++++ glibc-2.15/resolv/res_hconf.c +@@ -242,9 +242,12 @@ parse_line (const char *fname, int line_ if (c == NULL) { char *buf; diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff index 0011838..37dcd6d 100644 --- a/glibc-resolv-reload.diff +++ b/glibc-resolv-reload.diff @@ -72,9 +72,10 @@ Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="glibc-2.5-resolvconf.patch" -diff -ur resolv.orig/res_libc.c resolv/res_libc.c ---- resolv.orig/res_libc.c 2005-11-01 01:06:40.000000000 +0100 -+++ resolv/res_libc.c 2010-03-15 14:13:18.000000000 +0100 +Index: glibc-2.15/resolv/res_libc.c +=================================================================== +--- glibc-2.15.orig/resolv/res_libc.c ++++ glibc-2.15/resolv/res_libc.c @@ -22,7 +22,7 @@ #include #include @@ -84,7 +85,7 @@ diff -ur resolv.orig/res_libc.c resolv/res_libc.c /* The following bit is copied from res_data.c (where it is #ifdef'ed out) since res_init() should go into libc.so but the rest of that -@@ -89,12 +89,34 @@ +@@ -89,12 +89,34 @@ res_init(void) { return (__res_vinit(&_res, 1)); } @@ -119,6 +120,3 @@ diff -ur resolv.orig/res_libc.c resolv/res_libc.c if (__res_initstamp != resp->_u._ext.initstamp) { if (resp->nscount > 0) __res_iclose (resp, true); - - ---------------060407080409020101000002-- diff --git a/glibc-testsuite.patch b/glibc-testsuite.patch index c9c4a53..c26b3c4 100644 --- a/glibc-testsuite.patch +++ b/glibc-testsuite.patch @@ -1,9 +1,9 @@ test-lfs runs for ever on ReiserFS. Let's disable it completely. -Index: io/Makefile +Index: glibc-2.15/io/Makefile =================================================================== ---- io/Makefile.orig -+++ io/Makefile +--- glibc-2.15.orig/io/Makefile ++++ glibc-2.15/io/Makefile @@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat others := pwd diff --git a/glibc-uio-cell.diff b/glibc-uio-cell.diff index 265fc5d..6bbbfe3 100644 --- a/glibc-uio-cell.diff +++ b/glibc-uio-cell.diff @@ -1,8 +1,3 @@ -Refused by Ulrich Drepper: -http://sourceware.org/ml/libc-alpha/2011-07/msg00046.html - -We have to keep it until gcc handles this better. - 2009-11-06 Petr Baudis * include/sys/uio.h: Change __vector to __iovec to avoid clash diff --git a/glibc-version.diff b/glibc-version.diff index 09ccbda..39c2ba6 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -1,8 +1,8 @@ -Index: csu/version.c +Index: glibc-2.15/csu/version.c =================================================================== ---- csu/version.c.orig -+++ csu/version.c -@@ -25,19 +25,20 @@ static const char __libc_release[] = REL +--- glibc-2.15.orig/csu/version.c ++++ glibc-2.15/csu/version.c +@@ -25,11 +25,12 @@ static const char __libc_release[] = REL static const char __libc_version[] = VERSION; static const char banner[] = @@ -16,11 +16,3 @@ Index: csu/version.c Compiled by GNU CC version "__VERSION__".\n" #include "version-info.h" #ifdef LIBC_ABIS_STRING - LIBC_ABIS_STRING - #endif - #ifdef GLIBC_OLDEST_ABI - "The oldest ABI supported: " GLIBC_OLDEST_ABI ".\n" - #endif - "For bug reporting instructions, please see:\n\ - .\n"; - diff --git a/glibc.changes b/glibc.changes index 4f0ed0f..0115fb2 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,35 @@ +------------------------------------------------------------------- +Sun Apr 22 11:35:05 UTC 2012 - aj@suse.de + +- gcc 4.7 does not build crt files properly on powerpc64, backport + patch from upstream to handle this + (glibc-2.16-powerpc-initfini.patch) + +------------------------------------------------------------------- +Fri Apr 20 18:28:18 UTC 2012 - aj@suse.de + +- Disable patch x86-cpuid-level2.patch, this should be fixed in + valgrind now. + +------------------------------------------------------------------- +Thu Apr 19 11:12:43 UTC 2012 - aj@suse.de + +- Reorder patches, refresh to apply cleanly with -p1. + +------------------------------------------------------------------- +Wed Apr 18 11:35:48 UTC 2012 - aj@suse.de + +- Build profiled libs only for base. +- Cleanup patches. +- Remove glibc-2.14-fix-ctors.patch, we have proper support in + binutils now. + +------------------------------------------------------------------- +Tue Apr 17 12:35:21 UTC 2012 - aj@suse.de + +- The dynamic linker for armv7 hardware float is called + /lib/ld-linux-armhf.so.3. Provide symlink for old location. + ------------------------------------------------------------------- Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 21fd5b9..53f8166 100644 --- a/glibc.spec +++ b/glibc.spec @@ -120,17 +120,17 @@ Source: glibc-%{version}-%{git_id}.tar.bz2 Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 -Source8: nsswitch.conf -Source9: nscd.init -Source10: bindresvport.blacklist -Source12: glibc_post_upgrade.c -Source15: glibc.rpmlintrc -Source16: baselibs.conf +Source5: nsswitch.conf +Source6: nscd.init +Source7: bindresvport.blacklist +Source8: glibc_post_upgrade.c +Source9: glibc.rpmlintrc +Source10: baselibs.conf # For systemd Source20: nscd.conf Source21: nscd.service Source22: nscd.socket -# +# crypt_blowfish Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign @@ -146,8 +146,8 @@ NoSource: 0 # ### -# Patches are ordered as: -# Patches that we will never upstream or which have not been looked at: 0000-0999 +# Patches are ordered in the following groups: +# Patches that we will never upstream or which have not been looked at: 0-999 # Patches taken from upstream: 1000-2000 # Patches that are going upstream, waiting approval: 2000-3000 ### @@ -155,96 +155,95 @@ NoSource: 0 ### # Patches that upstream will not accept ### -# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de -Patch0: glibc-testsuite.patch -# PATCH-FIX-OPENSUSE handle glibc binaries -Patch1: glibc-2.3.90-noversion.diff -# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change -Patch3: glibc-resolv-reload.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch4: glibc-2.3.locales.diff.bz2 + +### +# openSUSE specific patches - won't go upstream +### +### openSUSE extensions, configuration # PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 -Patch5: glibc-2.14-crypt.diff +Patch1: glibc-2.14-crypt.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch6: glibc-2.14-crypt-versioning.diff -# PATCH-FIX-OPENSUSE add some extra information to version output - kukuk@suse.de -Patch7: glibc-version.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch8: glibc-2.4.90-revert-only-euro.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch12: glibc-2.3.2.no_archive.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch14: glibc-2.3.90-bindresvport.blacklist.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch16: glibc-2.4.90-no_NO.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch20: glibc-2.4-china.diff -# PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 -Patch21: gb18030.patch.bz2 -# PATCH-FIX-OPENSUSE Handle timestamp, adjust nscd.conf -Patch22: glibc-2.4.90-nscd.diff -# PATCH-FIX-OPENSUSE Fix path for nscd databases -Patch23: glibc-2.3.3-nscd-db-path.diff -# PATCH-FIX-OPENSUSE prefer -lang rpm packages -Patch25: glibc-2.3.90-langpackdir.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de -Patch28: glibc-2.2-sunrpc.diff -# PATCH-FIX-OPENSUSE Do not generate hardlink for getconf -Patch29: glibc-2.8-getconf.diff -# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 -Patch30: getaddrinfo-ipv6-sanity.diff -# PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries -Patch33: glibc-compiled-binaries.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch36: glibc-no-unwind-tables.diff -# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de -Patch38: glibc-cpusetsize.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch45: glibc-gai-private4.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch46: glibc-resolv-mdnshint.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch47: glibc-nscd-hconf.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch49: glibc-fini-unwind.diff -# PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 -Patch52: glibc-elf-localscope.diff -# FIX-OPENSUSE compile some files with -fno-strict-aliasing -Patch58: glibc-strict-aliasing.diff -# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 -Patch65: glibc-fix-double-loopback.diff -# PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de -Patch66: glibc2.14-revert-sunrpc-removal.patch -# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de -Patch67: glibc-revert-fseek-on-fclose.diff -# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de -Patch68: glibc-fix-lookup-crash.patch -# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de -Patch69: glibc-fix-noload.patch -# PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 aj@suse.de -Patch71: x86-cpuid-level2.patch -# PATCH-FIX-OPENSUSE Run ctors (bnc#717671) aj@suse.de -Patch74: glibc-2.14-fix-ctors.patch +Patch2: glibc-2.14-crypt-versioning.diff # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de -Patch80: crypt_blowfish-1.2-sha.diff +Patch3: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de -Patch81: crypt_blowfish-1.2-versioning.diff +Patch4: crypt_blowfish-1.2-versioning.diff # PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de -Patch82: crypt_blowfish-1.2-hack_around_arm.diff -# PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail -Patch84: nscd-avoid-gcc-warning.diff -# PATCH-FIX-OPENSUSE fixed build-compare by omitting one more date - meissner@suse.de -Patch87: glibc-nodate.patch -# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de -Patch88: pthread-cond-wait-revert.patch -# PATCH-FIX-OPENSUSE Fix cycle detection - aj@suse.de -Patch95: cycle-detection.patch -# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de -Patch96: glibc-ld-profile.patch +Patch5: crypt_blowfish-1.2-hack_around_arm.diff +# PATCH-FIX-OPENSUSE Fix path for nscd databases +Patch6: glibc-2.3.3-nscd-db-path.diff # PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de -Patch97: nss-db-path.patch -# PATCH-FIX-OPENSUSE Fix cycle detection 2 (from Fedora) - aj@suse.de -Patch100: glibc-sw13618-2.patch +Patch7: nss-db-path.patch +# PATCH-FIX-OPENSUSE adjust nscd.conf +Patch8: glibc-nscd.conf.patch +# PATCH-FIX-OPENSUSE do not use compile time in binaries +Patch9: glibc-nodate.patch +# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de +Patch10: glibc-version.diff +# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de +Patch11: glibc-testsuite.patch +# PATCH-FIX-OPENSUSE handle old glibc binaries +Patch12: glibc-2.3.90-noversion.diff +# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de +Patch13: glibc-2.3.2.no_archive.diff +# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport +Patch14: glibc-2.3.90-bindresvport.blacklist.diff +# PATCH-FIX-OPENSUSE prefer -lang rpm packages +Patch15: glibc-2.3.90-langpackdir.diff +# PATCH-FIX-OPENSUSE Do not generate hardlink for getconf +Patch16: glibc-2.8-getconf.diff +# PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries +Patch17: glibc-compiled-binaries.diff +# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) +Patch18: glibc-cpusetsize.diff +# PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 aj@suse.de +# According the the Debian bug report, this is fixed in valgrind now, so disable +# this patch. +Patch19: x86-cpuid-level2.patch + +### Locale related patches +# PATCH-FIX-OPENSUSE Add additional locales +Patch100: glibc-2.3.locales.diff.bz2 +# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?) +Patch101: glibc-2.4.90-revert-only-euro.diff +# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) +Patch102: glibc-2.4.90-no_NO.diff +# PATCH-FIX-OPENSUSE -- Renames for China +Patch103: glibc-2.4-china.diff +# PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 +Patch104: gb18030.patch.bz2 + +### Broken patches in glibc that we revert for now: +# PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de +Patch200: glibc2.14-revert-sunrpc-removal.patch +# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de +Patch201: glibc-revert-fseek-on-fclose.diff +# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de +Patch202: pthread-cond-wait-revert.patch + +### Network related patches +# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change +Patch300: glibc-resolv-reload.diff +# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de +Patch301: glibc-2.2-sunrpc.diff +# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 +Patch302: getaddrinfo-ipv6-sanity.diff +# PATCH-FIX-OPENSUSE Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] +Patch303: glibc-gai-private4.diff +# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv +Patch304: glibc-resolv-mdnshint.diff +# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 +Patch305: glibc-nscd-hconf.diff +# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 +Patch306: glibc-fix-double-loopback.diff + +### Misc patches +# PATCH-FIX-OPENSUSE don't use unwind tables for initfini (solved differently for glibc 2.16) +Patch400: glibc-no-unwind-tables.diff +# FIX-OPENSUSE compile some files with -fno-strict-aliasing +Patch401: glibc-strict-aliasing.diff +# PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail +Patch402: nscd-avoid-gcc-warning.diff ### # Patches from upstream @@ -269,6 +268,8 @@ Patch1007: glibc-2.16-fix-check-abi.patch Patch1008: glibc-2.16-fix-check-localplt.patch # PATCH-FIX-UPSTREAM - Allow compilation with -altivec aj@suse.de Patch1009: glibc-uio-cell.diff +# PATCH-FIX-UPSTREAM - do not use initfini anymore +Patch1010: glibc-2.16-powerpc-initfini.patch ### # Patches awaiting upstream approval @@ -279,6 +280,18 @@ Patch2001: glibc-resolv-assert.diff Patch2002: armhf-ld-so.patch # PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de Patch2003: glibc-nscd-crash-bso13594.patch +# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140, bso#13579 matz@suse.de +Patch2004: glibc-fix-noload.patch +# PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 +Patch2005: glibc-elf-localscope.diff +# PATCH-FIX-OPENSUSE Fix cycle detection - aj@suse.de +Patch2006: cycle-detection.patch +# PATCH-FIX-OPENSUSE Fix cycle detection 2 (from Fedora) - aj@suse.de +Patch2007: glibc-sw13618-2.patch +# PATCH-FIX-OPENSUSE Fix LD_PROFILE (glibc bug#13818) - aj@suse.de +Patch2008: glibc-ld-profile.patch +# PATCH-FIX-OPENSUSE _fini does not have proper unwinding information on x86_64 bso#11610 +Patch2009: glibc-fini-unwind.diff %description The GNU C Library provides the most important standard libraries used @@ -460,81 +473,87 @@ versions of your software. # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} -%patch80 -p1 -%patch81 -p1 -%patch82 +%patch3 -p1 +%patch4 -p1 +%patch5 popd mv crypt/{crypt.h,gnu-crypt.h} mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ # -%patch0 -# libNoVersion part is only active on ix86 %patch1 -p1 -%patch3 -%patch4 -%patch5 -p1 +%patch2 -p1 %patch6 -p1 -%patch7 -%patch8 -%patch12 -%patch14 -%patch16 -p1 -%patch20 -p1 -%patch21 -p1 +%patch7 -p1 +%patch8 -p1 # avoid changing nscd_stat.c mtime to avoid code generation # differences on each rebuild touch -r nscd/nscd_stat.c nscd/s-stamp -%patch22 -%patch23 +%patch9 -p1 touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp -%patch25 -%patch28 -p1 -%patch29 -%patch30 -%patch33 -p1 -%patch36 -p1 -%patch38 -%patch1009 -p1 -%patch45 -%patch46 -p1 -%patch47 -p1 -%patch49 -# XXX: Does not pass testsuite, still there's no better solution yet -%patch52 -%patch58 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -# XXX Patch 69 replaces 68, remove soon -#%patch68 -p1 -%patch69 -p1 -%patch71 -p1 -%patch2001 -p1 -%patch74 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +# This should be fixed in valgrind now +#%patch19 -p1 + +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 + +%patch200 -p1 +%patch201 -p1 +%patch202 -p1 -R + +%patch300 -p1 +%patch301 -p1 +%patch302 -p1 +%patch303 -p1 +%patch304 -p1 +%patch305 -p1 +%patch306 -p1 + +%patch400 -p1 +%patch401 -p1 +%patch402 -p1 + %patch1000 -p1 -%patch84 -p1 -%patch87 -p1 -%patch88 -p1 -R %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch95 -p1 -# XXX Disable, it breaks the testsuite, test elf/tst-audit2 -# %patch96 -p1 -%patch97 -p1 -%patch2003 -p1 %patch1006 -p1 -%patch100 -p1 %patch1007 -p1 %patch1008 -p1 -%ifarch armv7l -# Disable for now -#%patch2002 -p1 +%patch1009 -p1 +%ifarch ppc ppc64 +# to support further architectures, some more changes are needed +%patch1010 -p1 %endif +%patch2001 -p1 +%ifarch armv7l +%patch2002 -p1 +%endif +%patch2003 -p1 +%patch2004 -p1 +# XXX: Does not pass testsuite, still there's no better solution yet +%patch2005 -p1 +%patch2006 -p1 +%patch2007 -p1 +# XXX Disable, it breaks the testsuite, test elf/tst-audit2 +# %patch2008 -p1 +%patch2009 -p1 + # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! # @@ -664,13 +683,17 @@ configure_and_build_glibc() { conf_cflags="$cflags" %endif + profile="--disable-profile" +%if %{build_profile} + if [ "$dirname" = "base" ] ; then + profile="--enable-profile" + fi +%endif CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ -%if %{build_profile} - --enable-profile \ -%endif + $profile \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ @@ -916,8 +939,8 @@ cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} -install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist %{buildroot}/etc -install -m 644 $RPM_SOURCE_DIR/nsswitch.conf %{buildroot}/etc +install -m 644 %{SOURCE7} %{buildroot}/etc +install -m 644 %{SOURCE5} %{buildroot}/etc install -m 644 posix/gai.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/default @@ -944,7 +967,7 @@ popd cp nscd/nscd.conf %{buildroot}/etc mkdir -p %{buildroot}/etc/init.d -install -m 755 $RPM_SOURCE_DIR/nscd.init %{buildroot}/etc/init.d/nscd +install -m 755 %{SOURCE6} %{buildroot}/etc/init.d/nscd ln -sf /etc/init.d/nscd %{buildroot}/usr/sbin/rcnscd mkdir -p %{buildroot}/var/run/nscd touch %{buildroot}/var/run/nscd/{passwd,group,hosts} @@ -998,7 +1021,7 @@ install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system %ifarch armv7l # Provide compatibility link -# XXX ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif ####################################################################### @@ -1077,7 +1100,7 @@ exit 0 # Each architecture has a different name for the dynamic linker: %ifarch %arm %ifarch armv7l -#XXX /%{_lib}/ld-linux-armhf.so.3 +/%{_lib}/ld-linux-armhf.so.3 # Keep compatibility link /%{_lib}/ld-linux.so.3 %else