Accepting request 114966 from Base:System

Fix building for PowerPC and GCC 4.7 (forwarded request 114965 from a_jaeger)

OBS-URL: https://build.opensuse.org/request/show/114966
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=106
This commit is contained in:
Stephan Kulow 2012-04-23 14:10:37 +00:00 committed by Git OBS Bridge
commit f558e5fc0d
28 changed files with 1141 additions and 329 deletions

View File

@ -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 diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions
index 491dd0a..5464959 100644 index 491dd0a..5464959 100644
--- a/glibc-ports-2.15/sysdeps/arm/shlib-versions --- 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.so.3
+arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 +arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3
arm.*-.*-linux.* ld=ld-linux.so.2 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;
}

View File

@ -1,9 +1,9 @@
References: bnc#361697 References: bnc#361697
Index: sysdeps/posix/getaddrinfo.c Index: glibc-2.15/sysdeps/posix/getaddrinfo.c
=================================================================== ===================================================================
--- sysdeps/posix/getaddrinfo.c.orig --- glibc-2.15.orig/sysdeps/posix/getaddrinfo.c
+++ sysdeps/posix/getaddrinfo.c +++ glibc-2.15/sysdeps/posix/getaddrinfo.c
@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas @@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas
static int static int
gaih_inet (const char *name, const struct gaih_service *service, gaih_inet (const char *name, const struct gaih_service *service,

View File

@ -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")))

View File

@ -11,10 +11,10 @@ Date: Fri Feb 10 21:05:54 2012 +0100
* sysdeps/i386/fpu/feupdateenv.c (__feupdateenv) Invoke __feraiseexcept * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv) Invoke __feraiseexcept
instead of feraiseexcept. instead of feraiseexcept.
diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c Index: glibc-2.15/sysdeps/i386/fpu/feupdateenv.c
index 70f9ee2..6e2ce35 100644 ===================================================================
--- a/sysdeps/i386/fpu/feupdateenv.c --- glibc-2.15.orig/sysdeps/i386/fpu/feupdateenv.c
+++ b/sysdeps/i386/fpu/feupdateenv.c +++ glibc-2.15/sysdeps/i386/fpu/feupdateenv.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions. /* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc. - 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. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 /* Raise the saved exception. Incidently for us the implementation
defined format of the values in objects of type fexcept_t is the defined format of the values in objects of type fexcept_t is the
same as the ones specified using the FE_* constants. */ same as the ones specified using the FE_* constants. */

View File

@ -0,0 +1,795 @@
commit 3add8e1353d62d77fdd9b4ca363cdfe7006b0efb
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Feb 8 01:45:26 2012 +0000
Support crti.S and crtn.S provided directly by architectures.
2012-02-08 Joseph Myers <joseph@codesourcery.com>
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 <crti.S>
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 <libc-symbols.h>
+#include <sysdep.h>
+
+#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 <libc-symbols.h>
+#include <sysdep.h>
+
+#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 <sysdep.h>
+
+ .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 <libc-symbols.h>
+#include <sysdep.h>
+
+#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 <sysdep.h>
+
+ .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

View File

@ -3,10 +3,10 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de
- Make --no-archive default for localedef - Make --no-archive default for localedef
Index: locale/programs/localedef.c Index: glibc-2.15/locale/programs/localedef.c
=================================================================== ===================================================================
--- locale/programs/localedef.c.orig --- glibc-2.15.orig/locale/programs/localedef.c
+++ locale/programs/localedef.c +++ glibc-2.15/locale/programs/localedef.c
@@ -82,7 +82,7 @@ const char *alias_file; @@ -82,7 +82,7 @@ const char *alias_file;
static struct localedef_t *locales; static struct localedef_t *locales;

View File

@ -2,12 +2,10 @@
* nscd/nscd.h: Move persistent storage back to /var/run/nscd * 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 --- glibc-2.15.orig/nscd/nscd.h
index fdaf01b..23b6a94 100644 +++ glibc-2.15/nscd/nscd.h
--- nscd/nscd.h
+++ nscd/nscd.h
@@ -113,11 +113,11 @@ struct database_dyn @@ -113,11 +113,11 @@ struct database_dyn

View File

@ -1,7 +1,7 @@
Index: sunrpc/bindrsvprt.c Index: glibc-2.15/sunrpc/bindrsvprt.c
=================================================================== ===================================================================
--- sunrpc/bindrsvprt.c.orig --- glibc-2.15.orig/sunrpc/bindrsvprt.c
+++ sunrpc/bindrsvprt.c +++ glibc-2.15/sunrpc/bindrsvprt.c
@@ -29,28 +29,108 @@ @@ -29,28 +29,108 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */

View File

@ -1,7 +1,7 @@
Index: intl/loadmsgcat.c Index: glibc-2.15/intl/loadmsgcat.c
=================================================================== ===================================================================
--- intl/loadmsgcat.c.orig --- glibc-2.15.orig/intl/loadmsgcat.c
+++ intl/loadmsgcat.c +++ glibc-2.15/intl/loadmsgcat.c
@@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind @@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind
if (domain_file->filename == NULL) if (domain_file->filename == NULL)
goto out; goto out;

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:23c4a947e7dee14c05556bc30c1dded5458a7b9ba8b306cb7bce93dd57fb9b96 oid sha256:fe966fc1d1082da024fda16d4ad1e8e2b73f30d646701d24a27882ec653b5807
size 329206 size 329247

View File

@ -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

View File

@ -1,7 +1,7 @@
Index: locale/iso-4217.def Index: glibc-2.15/locale/iso-4217.def
=================================================================== ===================================================================
--- locale/iso-4217.def.orig --- glibc-2.15.orig/locale/iso-4217.def
+++ locale/iso-4217.def +++ glibc-2.15/locale/iso-4217.def
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
* *
* !!! The list has to be sorted !!! * !!! The list has to be sorted !!!

View File

@ -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 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 --- glibc-2.15.orig/posix/Makefile
+++ posix/Makefile +++ glibc-2.15/posix/Makefile
@@ -316,8 +316,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi @@ -316,8 +316,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi
$(addprefix $(..)./scripts/mkinstalldirs ,\ $(addprefix $(..)./scripts/mkinstalldirs ,\
$(filter-out $(wildcard $@),$@)) $(filter-out $(wildcard $@),$@))

View File

@ -1,7 +1,7 @@
Index: bits/sched.h Index: glibc-2.15/bits/sched.h
=================================================================== ===================================================================
--- bits/sched.h.orig --- glibc-2.15.orig/bits/sched.h
+++ bits/sched.h +++ glibc-2.15/bits/sched.h
@@ -54,7 +54,7 @@ struct __sched_param @@ -54,7 +54,7 @@ struct __sched_param
#if defined _SCHED_H && !defined __cpu_set_t_defined #if defined _SCHED_H && !defined __cpu_set_t_defined
# define __cpu_set_t_defined # define __cpu_set_t_defined
@ -11,10 +11,10 @@ Index: bits/sched.h
# define __NCPUBITS (8 * sizeof (__cpu_mask)) # define __NCPUBITS (8 * sizeof (__cpu_mask))
/* Type for array elements in 'cpu_set_t'. */ /* 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 --- glibc-2.15.orig/sysdeps/unix/sysv/linux/bits/sched.h
+++ sysdeps/unix/sysv/linux/bits/sched.h +++ glibc-2.15/sysdeps/unix/sysv/linux/bits/sched.h
@@ -113,7 +113,7 @@ struct __sched_param @@ -113,7 +113,7 @@ struct __sched_param
#if defined _SCHED_H && !defined __cpu_set_t_defined #if defined _SCHED_H && !defined __cpu_set_t_defined
# define __cpu_set_t_defined # define __cpu_set_t_defined

View File

@ -1,7 +1,8 @@
diff -ru elf~/dl-close.c elf/dl-close.c Index: glibc-2.15/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 --- glibc-2.15.orig/elf/dl-close.c
@@ -180,24 +186,28 @@ +++ glibc-2.15/elf/dl-close.c
@@ -180,24 +180,28 @@ _dl_close_worker (struct link_map *map)
/* Signal the object is still needed. */ /* Signal the object is still needed. */
l->l_idx = IDX_STILL_USED; l->l_idx = IDX_STILL_USED;
@ -42,7 +43,7 @@ diff -ru elf~/dl-close.c elf/dl-close.c
++lp; ++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) for (unsigned int j = 0; j < l->l_reldeps->act; ++j)
{ {
struct link_map *jmap = l->l_reldeps->list[j]; struct link_map *jmap = l->l_reldeps->list[j];

View File

@ -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 --- glibc-2.15.orig/sysdeps/x86_64/elf/initfini.c
+++ sysdeps/x86_64/elf/initfini.c 2010-04-16 16:41:11.000000000 +0200 +++ glibc-2.15/sysdeps/x86_64/elf/initfini.c
@@ -44,6 +44,25 @@ @@ -44,6 +44,25 @@
* crtn.s puts the corresponding function epilogues * crtn.s puts the corresponding function epilogues
in the .init and .fini sections. */ in the .init and .fini sections. */

View File

@ -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); */
}
}

View File

@ -1,5 +1,7 @@
--- posix/gai.conf~ 2010-05-12 04:10:58.087661000 +0200 Index: glibc-2.15/posix/gai.conf
+++ posix/gai.conf 2010-05-12 04:14:40.638820000 +0200 ===================================================================
--- glibc-2.15.orig/posix/gai.conf
+++ glibc-2.15/posix/gai.conf
@@ -67,11 +67,66 @@ @@ -67,11 +67,66 @@
#scopev4 ::ffff:192.168.0.0/112 5 #scopev4 ::ffff:192.168.0.0/112 5
#scopev4 ::ffff:0.0.0.0/96 14 #scopev4 ::ffff:0.0.0.0/96 14

View File

@ -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 Index: glibc-2.15/csu/Makefile
=================================================================== ===================================================================
--- glibc-2.15.orig/csu/Makefile --- glibc-2.15.orig/csu/Makefile

View File

@ -1,10 +1,10 @@
See: See:
http://sourceware.org/bugzilla/show_bug.cgi?id=11928 http://sourceware.org/bugzilla/show_bug.cgi?id=11928
diff --git a/nscd/aicache.c b/nscd/aicache.c Index: glibc-2.15/nscd/aicache.c
index 3cb2208..2e92929 100644 ===================================================================
--- a/nscd/aicache.c --- glibc-2.15.orig/nscd/aicache.c
+++ b/nscd/aicache.c +++ glibc-2.15/nscd/aicache.c
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
#include <time.h> #include <time.h>
#include <unistd.h> #include <unistd.h>
@ -13,7 +13,7 @@ index 3cb2208..2e92929 100644
#include "dbg_log.h" #include "dbg_log.h"
#include "nscd.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) if (__res_maybe_init (&_res, 0) == -1)
no_more = 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 /* If we are looking for both IPv4 and IPv6 address we don't want
the lookup functions to automatically promote IPv4 addresses to the lookup functions to automatically promote IPv4 addresses to
diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c Index: glibc-2.15/resolv/res_hconf.c
index ed55bec..c79b85a 100644 ===================================================================
--- a/resolv/res_hconf.c --- glibc-2.15.orig/resolv/res_hconf.c
+++ b/resolv/res_hconf.c +++ glibc-2.15/resolv/res_hconf.c
@@ -84,7 +84,9 @@ static const struct cmd @@ -83,7 +83,9 @@ static const struct cmd
}; };
/* Structure containing the state. */ /* Structure containing the state. */

19
glibc-nscd.conf.patch Normal file
View File

@ -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

View File

@ -1,8 +1,8 @@
diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c Index: glibc-2.15/resolv/res_hconf.c
index ed55bec..f06db75 100644 ===================================================================
--- a/resolv/res_hconf.c --- glibc-2.15.orig/resolv/res_hconf.c
+++ b/resolv/res_hconf.c +++ glibc-2.15/resolv/res_hconf.c
@@ -243,9 +243,12 @@ parse_line (const char *fname, int line_num, const char *str) @@ -242,9 +242,12 @@ parse_line (const char *fname, int line_
if (c == NULL) if (c == NULL)
{ {
char *buf; char *buf;

View File

@ -72,9 +72,10 @@ Content-Transfer-Encoding: 7bit
Content-Disposition: inline; Content-Disposition: inline;
filename="glibc-2.5-resolvconf.patch" filename="glibc-2.5-resolvconf.patch"
diff -ur resolv.orig/res_libc.c resolv/res_libc.c Index: glibc-2.15/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 --- glibc-2.15.orig/resolv/res_libc.c
+++ glibc-2.15/resolv/res_libc.c
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
#include <arpa/nameser.h> #include <arpa/nameser.h>
#include <resolv.h> #include <resolv.h>
@ -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 /* 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 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)); 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 (__res_initstamp != resp->_u._ext.initstamp) {
if (resp->nscount > 0) if (resp->nscount > 0)
__res_iclose (resp, true); __res_iclose (resp, true);
--------------060407080409020101000002--

View File

@ -1,9 +1,9 @@
test-lfs runs for ever on ReiserFS. Let's disable it completely. test-lfs runs for ever on ReiserFS. Let's disable it completely.
Index: io/Makefile Index: glibc-2.15/io/Makefile
=================================================================== ===================================================================
--- io/Makefile.orig --- glibc-2.15.orig/io/Makefile
+++ io/Makefile +++ glibc-2.15/io/Makefile
@@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat @@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat
others := pwd others := pwd

View File

@ -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 <pasky@suse.cz> 2009-11-06 Petr Baudis <pasky@suse.cz>
* include/sys/uio.h: Change __vector to __iovec to avoid clash * include/sys/uio.h: Change __vector to __iovec to avoid clash

View File

@ -1,8 +1,8 @@
Index: csu/version.c Index: glibc-2.15/csu/version.c
=================================================================== ===================================================================
--- csu/version.c.orig --- glibc-2.15.orig/csu/version.c
+++ csu/version.c +++ glibc-2.15/csu/version.c
@@ -25,19 +25,20 @@ static const char __libc_release[] = REL @@ -25,11 +25,12 @@ static const char __libc_release[] = REL
static const char __libc_version[] = VERSION; static const char __libc_version[] = VERSION;
static const char banner[] = static const char banner[] =
@ -16,11 +16,3 @@ Index: csu/version.c
Compiled by GNU CC version "__VERSION__".\n" Compiled by GNU CC version "__VERSION__".\n"
#include "version-info.h" #include "version-info.h"
#ifdef LIBC_ABIS_STRING #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\
<http://www.gnu.org/software/libc/bugs.html>.\n";

View File

@ -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 Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de

View File

@ -120,17 +120,17 @@ Source: glibc-%{version}-%{git_id}.tar.bz2
Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.bz2 Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.bz2
Source3: noversion.tar.bz2 Source3: noversion.tar.bz2
Source4: manpages.tar.bz2 Source4: manpages.tar.bz2
Source8: nsswitch.conf Source5: nsswitch.conf
Source9: nscd.init Source6: nscd.init
Source10: bindresvport.blacklist Source7: bindresvport.blacklist
Source12: glibc_post_upgrade.c Source8: glibc_post_upgrade.c
Source15: glibc.rpmlintrc Source9: glibc.rpmlintrc
Source16: baselibs.conf Source10: baselibs.conf
# For systemd # For systemd
Source20: nscd.conf Source20: nscd.conf
Source21: nscd.service Source21: nscd.service
Source22: nscd.socket Source22: nscd.socket
# # crypt_blowfish
Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz 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 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 are ordered in the following groups:
# Patches that we will never upstream or which have not been looked at: 0000-0999 # Patches that we will never upstream or which have not been looked at: 0-999
# Patches taken from upstream: 1000-2000 # Patches taken from upstream: 1000-2000
# Patches that are going upstream, waiting approval: 2000-3000 # Patches that are going upstream, waiting approval: 2000-3000
### ###
@ -155,96 +155,95 @@ NoSource: 0
### ###
# Patches that upstream will not accept # 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 # openSUSE specific patches - won't go upstream
Patch1: glibc-2.3.90-noversion.diff ###
# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change ### openSUSE extensions, configuration
Patch3: glibc-resolv-reload.diff
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch4: glibc-2.3.locales.diff.bz2
# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 # 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 # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de
Patch6: glibc-2.14-crypt-versioning.diff Patch2: 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
# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de # 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 # 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 # PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM dmueller@suse.de
Patch82: crypt_blowfish-1.2-hack_around_arm.diff Patch5: crypt_blowfish-1.2-hack_around_arm.diff
# PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail # PATCH-FIX-OPENSUSE Fix path for nscd databases
Patch84: nscd-avoid-gcc-warning.diff Patch6: glibc-2.3.3-nscd-db-path.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
# PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de # PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - aj@suse.de
Patch97: nss-db-path.patch Patch7: nss-db-path.patch
# PATCH-FIX-OPENSUSE Fix cycle detection 2 (from Fedora) - aj@suse.de # PATCH-FIX-OPENSUSE adjust nscd.conf
Patch100: glibc-sw13618-2.patch 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 # Patches from upstream
@ -269,6 +268,8 @@ Patch1007: glibc-2.16-fix-check-abi.patch
Patch1008: glibc-2.16-fix-check-localplt.patch Patch1008: glibc-2.16-fix-check-localplt.patch
# PATCH-FIX-UPSTREAM - Allow compilation with -altivec aj@suse.de # PATCH-FIX-UPSTREAM - Allow compilation with -altivec aj@suse.de
Patch1009: glibc-uio-cell.diff Patch1009: glibc-uio-cell.diff
# PATCH-FIX-UPSTREAM - do not use initfini anymore
Patch1010: glibc-2.16-powerpc-initfini.patch
### ###
# Patches awaiting upstream approval # Patches awaiting upstream approval
@ -279,6 +280,18 @@ Patch2001: glibc-resolv-assert.diff
Patch2002: armhf-ld-so.patch Patch2002: armhf-ld-so.patch
# PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de # PATCH-FIX-UPSTREAM Fix crash when nscd is not running (bso#135949) - aj@suse.de
Patch2003: glibc-nscd-crash-bso13594.patch 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 %description
The GNU C Library provides the most important standard libraries used The GNU C Library provides the most important standard libraries used
@ -460,81 +473,87 @@ versions of your software.
# Owl crypt_blowfish # Owl crypt_blowfish
tar -xzf %SOURCE50 tar -xzf %SOURCE50
pushd crypt_blowfish-%{crypt_bf_version} pushd crypt_blowfish-%{crypt_bf_version}
%patch80 -p1 %patch3 -p1
%patch81 -p1 %patch4 -p1
%patch82 %patch5
popd popd
mv crypt/{crypt.h,gnu-crypt.h} mv crypt/{crypt.h,gnu-crypt.h}
mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/
# #
%patch0
# libNoVersion part is only active on ix86
%patch1 -p1 %patch1 -p1
%patch3 %patch2 -p1
%patch4
%patch5 -p1
%patch6 -p1 %patch6 -p1
%patch7 %patch7 -p1
%patch8 %patch8 -p1
%patch12
%patch14
%patch16 -p1
%patch20 -p1
%patch21 -p1
# avoid changing nscd_stat.c mtime to avoid code generation # avoid changing nscd_stat.c mtime to avoid code generation
# differences on each rebuild # differences on each rebuild
touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/nscd_stat.c nscd/s-stamp
%patch22 %patch9 -p1
%patch23
touch -r nscd/s-stamp nscd/nscd_stat.c touch -r nscd/s-stamp nscd/nscd_stat.c
rm nscd/s-stamp rm nscd/s-stamp
%patch25 %patch10 -p1
%patch28 -p1 %patch11 -p1
%patch29 %patch12 -p1
%patch30 %patch13 -p1
%patch33 -p1 %patch14 -p1
%patch36 -p1 %patch15 -p1
%patch38 %patch16 -p1
%patch1009 -p1 %patch17 -p1
%patch45 %patch18 -p1
%patch46 -p1 # This should be fixed in valgrind now
%patch47 -p1 #%patch19 -p1
%patch49
# XXX: Does not pass testsuite, still there's no better solution yet %patch100 -p1
%patch52 %patch101 -p1
%patch58 -p1 %patch102 -p1
%patch65 -p1 %patch103 -p1
%patch66 -p1 %patch104 -p1
%patch67 -p1
# XXX Patch 69 replaces 68, remove soon %patch200 -p1
#%patch68 -p1 %patch201 -p1
%patch69 -p1 %patch202 -p1 -R
%patch71 -p1
%patch2001 -p1 %patch300 -p1
%patch74 -p1 %patch301 -p1
%patch302 -p1
%patch303 -p1
%patch304 -p1
%patch305 -p1
%patch306 -p1
%patch400 -p1
%patch401 -p1
%patch402 -p1
%patch1000 -p1 %patch1000 -p1
%patch84 -p1
%patch87 -p1
%patch88 -p1 -R
%patch1001 -p1 %patch1001 -p1
%patch1002 -p1 %patch1002 -p1
%patch1003 -p1 %patch1003 -p1
%patch1004 -p1 %patch1004 -p1
%patch1005 -p1 %patch1005 -p1
%patch95 -p1
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
# %patch96 -p1
%patch97 -p1
%patch2003 -p1
%patch1006 -p1 %patch1006 -p1
%patch100 -p1
%patch1007 -p1 %patch1007 -p1
%patch1008 -p1 %patch1008 -p1
%ifarch armv7l %patch1009 -p1
# Disable for now %ifarch ppc ppc64
#%patch2002 -p1 # to support further architectures, some more changes are needed
%patch1010 -p1
%endif %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! # 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" conf_cflags="$cflags"
%endif %endif
profile="--disable-profile"
%if %{build_profile}
if [ "$dirname" = "base" ] ; then
profile="--enable-profile"
fi
%endif
CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \
--prefix=%{_prefix} \ --prefix=%{_prefix} \
--libexecdir=%{_libdir} --infodir=%{_infodir} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \
--enable-add-ons=nptl$addons \ --enable-add-ons=nptl$addons \
%if %{build_profile} $profile \
--enable-profile \
%endif
"$@" \ "$@" \
%if %{enable_stackguard_randomization} %if %{enable_stackguard_randomization}
--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 0700 glibc_post_upgrade %{buildroot}%{_sbindir}
install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist %{buildroot}/etc install -m 644 %{SOURCE7} %{buildroot}/etc
install -m 644 $RPM_SOURCE_DIR/nsswitch.conf %{buildroot}/etc install -m 644 %{SOURCE5} %{buildroot}/etc
install -m 644 posix/gai.conf %{buildroot}/etc install -m 644 posix/gai.conf %{buildroot}/etc
mkdir -p %{buildroot}/etc/default mkdir -p %{buildroot}/etc/default
@ -944,7 +967,7 @@ popd
cp nscd/nscd.conf %{buildroot}/etc cp nscd/nscd.conf %{buildroot}/etc
mkdir -p %{buildroot}/etc/init.d 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 ln -sf /etc/init.d/nscd %{buildroot}/usr/sbin/rcnscd
mkdir -p %{buildroot}/var/run/nscd mkdir -p %{buildroot}/var/run/nscd
touch %{buildroot}/var/run/nscd/{passwd,group,hosts} touch %{buildroot}/var/run/nscd/{passwd,group,hosts}
@ -998,7 +1021,7 @@ install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system
%ifarch armv7l %ifarch armv7l
# Provide compatibility link # 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 %endif
####################################################################### #######################################################################
@ -1077,7 +1100,7 @@ exit 0
# Each architecture has a different name for the dynamic linker: # Each architecture has a different name for the dynamic linker:
%ifarch %arm %ifarch %arm
%ifarch armv7l %ifarch armv7l
#XXX /%{_lib}/ld-linux-armhf.so.3 /%{_lib}/ld-linux-armhf.so.3
# Keep compatibility link # Keep compatibility link
/%{_lib}/ld-linux.so.3 /%{_lib}/ld-linux.so.3
%else %else