mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-01-18 10:46:26 +00:00
commit
f627e740ff
@ -52,30 +52,36 @@ config PATCH_BUNDLED
|
||||
|
||||
config PATCH_LOCAL
|
||||
bool
|
||||
prompt "Local only"
|
||||
prompt "Local only (EXPERIMENTAL)"
|
||||
select PATCH_USE_LOCAL
|
||||
depends on EXPERIMENTAL
|
||||
help
|
||||
Only apply your local patches.
|
||||
Only apply your local patches. Many components require patching
|
||||
to build or work properly; please review the bundled patches and
|
||||
copy them into your local directory if needed.
|
||||
|
||||
config PATCH_BUNDLED_LOCAL
|
||||
bool
|
||||
prompt "Bundled, then local"
|
||||
select PATCH_USE_LOCAL
|
||||
help
|
||||
Apply the patches bundled with crosstool-NG,
|
||||
then apply your local patches.
|
||||
Apply the patches bundled with crosstool-NG, then apply your local
|
||||
patches.
|
||||
|
||||
config PATCH_LOCAL_BUNDLED
|
||||
bool
|
||||
prompt "Local, then bundled"
|
||||
select PATCH_USE_LOCAL
|
||||
depends on EXPERIMENTAL
|
||||
help
|
||||
Apply your local patches, then apply the patches
|
||||
bundled with crosstool-NG.
|
||||
Apply your local patches, then apply the patches bundled with
|
||||
crosstool-NG. Note that the bundled patches cannot be guaranteed
|
||||
to apply on top of your local patches.
|
||||
|
||||
config PATCH_NONE
|
||||
bool
|
||||
prompt "None"
|
||||
depends on EXPERIMENTAL
|
||||
help
|
||||
Don't use any patch at all.
|
||||
|
||||
|
@ -90,6 +90,15 @@ config GLIBC_NO_SPARC_V8
|
||||
def_bool y
|
||||
depends on GLIBC_2_23_or_later
|
||||
|
||||
# 2.14 obsoleted Sun RPC code, making it unavailable *at all* for compiling/linking
|
||||
# (only remained as versioned symbols for previously linked binaries). They backpedaled
|
||||
# in 2.16, adding an option to enable that code. Crosstool-NG backports that code
|
||||
# to 2.14/2.15, but there is no harm in throwing this option even if that patch
|
||||
# is not applied.
|
||||
config GLIBC_HAS_OBSOLETE_RPC
|
||||
def_bool y
|
||||
depends on GLIBC_2_14_or_later
|
||||
|
||||
config GLIBC_EXTRA_CONFIG_ARRAY
|
||||
string
|
||||
prompt "extra config"
|
||||
@ -123,6 +132,13 @@ config GLIBC_EXTRA_CFLAGS
|
||||
help
|
||||
Extra target CFLAGS to use when building.
|
||||
|
||||
config GLIBC_ENABLE_OBSOLETE_RPC
|
||||
bool "Enable obsolete (Sun) RPC"
|
||||
default y
|
||||
depends on GLIBC_HAS_OBSOLETE_RPC
|
||||
help
|
||||
Allow building applications using obsolete (Sun) RPC.
|
||||
|
||||
config GLIBC_ENABLE_FORTIFIED_BUILD
|
||||
bool
|
||||
prompt "Enable fortified build (EXPERIMENTAL)"
|
||||
|
@ -1,72 +0,0 @@
|
||||
From 175cef4163dd60f95106cfd5f593b8a4e09d02c9 Mon Sep 17 00:00:00 2001
|
||||
From: Joseph Myers <joseph@codesourcery.com>
|
||||
Date: Tue, 20 May 2014 21:27:13 +0000
|
||||
Subject: [PATCH] Fix ARM build with GCC trunk.
|
||||
|
||||
sysdeps/unix/sysv/linux/arm/unwind-resume.c and
|
||||
sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c have static
|
||||
variables that are written in C code but only read from toplevel asms.
|
||||
Current GCC trunk now optimizes away such apparently write-only static
|
||||
variables, so causing a build failure. This patch marks those
|
||||
variables with __attribute_used__ to avoid that optimization.
|
||||
|
||||
Tested that this fixes the build for ARM.
|
||||
|
||||
* sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
|
||||
(libgcc_s_resume): Use __attribute_used__.
|
||||
* sysdeps/unix/sysv/linux/arm/unwind-resume.c (libgcc_s_resume):
|
||||
Likewise.
|
||||
---
|
||||
sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c | 3 ++-
|
||||
sysdeps/unix/sysv/linux/arm/unwind-resume.c | 3 ++-
|
||||
3 files changed, 11 insertions(+), 2 deletions(-)
|
||||
--- a/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
|
||||
+++ b/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
|
||||
@@ -23,7 +23,8 @@
|
||||
#include <pthreadP.h>
|
||||
|
||||
static void *libgcc_s_handle;
|
||||
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
|
||||
+static void (*libgcc_s_resume) (struct _Unwind_Exception *exc)
|
||||
+ __attribute_used__;
|
||||
static _Unwind_Reason_Code (*libgcc_s_personality)
|
||||
(int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
|
||||
struct _Unwind_Context *);
|
||||
static _Unwind_Reason_Code (*libgcc_s_forcedunwind)
|
||||
diff --git a/sysdeps/unix/sysv/linux/arm/unwind-resume.c b/sysdeps/unix/sysv/linux/arm/unwind-resume.c
|
||||
index bff3e2b..1f1eb71 100644
|
||||
--- a/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c
|
||||
+++ b/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c
|
||||
@@ -21,7 +21,8 @@
|
||||
#include <stdio.h>
|
||||
#include <unwind.h>
|
||||
|
||||
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
|
||||
+static void (*libgcc_s_resume) (struct _Unwind_Exception *exc)
|
||||
+ __attribute_used__;
|
||||
static _Unwind_Reason_Code (*libgcc_s_personality)
|
||||
(int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
|
||||
struct _Unwind_Context *);
|
||||
--- a/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c
|
||||
+++ b/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c
|
||||
@@ -23,7 +23,8 @@
|
||||
#include <pthreadP.h>
|
||||
|
||||
static void *libgcc_s_handle;
|
||||
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
|
||||
+static void (*libgcc_s_resume) (struct _Unwind_Exception *exc)
|
||||
+ __attribute_used__;
|
||||
static _Unwind_Reason_Code (*libgcc_s_personality)
|
||||
(_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *);
|
||||
static _Unwind_Reason_Code (*libgcc_s_forcedunwind)
|
||||
--- a/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-resume.c
|
||||
+++ b/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-resume.c
|
||||
@@ -21,7 +21,8 @@
|
||||
#include <stdio.h>
|
||||
#include <unwind.h>
|
||||
|
||||
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
|
||||
+static void (*libgcc_s_resume) (struct _Unwind_Exception *exc)
|
||||
+ __attribute_used__;
|
||||
static _Unwind_Reason_Code (*libgcc_s_personality)
|
||||
(_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *);
|
@ -1,96 +0,0 @@
|
||||
copied from kernel as it is sanitized now
|
||||
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/unix/sysv/linux/m68k/sys/user.h glibc-ports-2.14/sysdeps/unix/sysv/linux/m68k/sys/user.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/unix/sysv/linux/m68k/sys/user.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/unix/sysv/linux/m68k/sys/user.h 2009-11-13 00:50:31.000000000 +0100
|
||||
@@ -1,3 +1,90 @@
|
||||
+#ifndef _SYS_USER_H
|
||||
+#define _SYS_USER_H
|
||||
+
|
||||
+/* Core file format: The core file is written in such a way that gdb
|
||||
+ can understand it and provide useful information to the user (under
|
||||
+ linux we use the 'trad-core' bfd). There are quite a number of
|
||||
+ obstacles to being able to view the contents of the floating point
|
||||
+ registers, and until these are solved you will not be able to view the
|
||||
+ contents of them. Actually, you can read in the core file and look at
|
||||
+ the contents of the user struct to find out what the floating point
|
||||
+ registers contain.
|
||||
+ The actual file contents are as follows:
|
||||
+ UPAGE: 1 page consisting of a user struct that tells gdb what is present
|
||||
+ in the file. Directly after this is a copy of the task_struct, which
|
||||
+ is currently not used by gdb, but it may come in useful at some point.
|
||||
+ All of the registers are stored as part of the upage. The upage should
|
||||
+ always be only one page.
|
||||
+ DATA: The data area is stored. We use current->end_text to
|
||||
+ current->brk to pick up all of the user variables, plus any memory
|
||||
+ that may have been malloced. No attempt is made to determine if a page
|
||||
+ is demand-zero or if a page is totally unused, we just cover the entire
|
||||
+ range. All of the addresses are rounded in such a way that an integral
|
||||
+ number of pages is written.
|
||||
+ STACK: We need the stack information in order to get a meaningful
|
||||
+ backtrace. We need to write the data from (esp) to
|
||||
+ current->start_stack, so we round each of these off in order to be able
|
||||
+ to write an integer number of pages.
|
||||
+ The minimum core file size is 3 pages, or 12288 bytes.
|
||||
+*/
|
||||
+
|
||||
+struct user_m68kfp_struct {
|
||||
+ unsigned long fpregs[8*3]; /* fp0-fp7 registers */
|
||||
+ unsigned long fpcntl[3]; /* fp control regs */
|
||||
+};
|
||||
+
|
||||
+/* This is the old layout of "struct pt_regs" as of Linux 1.x, and
|
||||
+ is still the layout used by user (the new pt_regs doesn't have
|
||||
+ all registers). */
|
||||
+struct user_regs_struct {
|
||||
+ long d1,d2,d3,d4,d5,d6,d7;
|
||||
+ long a0,a1,a2,a3,a4,a5,a6;
|
||||
+ long d0;
|
||||
+ long usp;
|
||||
+ long orig_d0;
|
||||
+ short stkadj;
|
||||
+ short sr;
|
||||
+ long pc;
|
||||
+ short fmtvec;
|
||||
+ short __fill;
|
||||
+};
|
||||
+
|
||||
+
|
||||
+/* When the kernel dumps core, it starts by dumping the user struct -
|
||||
+ this will be used by gdb to figure out where the data and stack segments
|
||||
+ are within the file, and what virtual addresses to use. */
|
||||
+struct user{
|
||||
+/* We start with the registers, to mimic the way that "memory" is returned
|
||||
+ from the ptrace(3,...) function. */
|
||||
+ struct user_regs_struct regs; /* Where the registers are actually stored */
|
||||
+/* ptrace does not yet supply these. Someday.... */
|
||||
+ int u_fpvalid; /* True if math co-processor being used. */
|
||||
+ /* for this mess. Not yet used. */
|
||||
+ struct user_m68kfp_struct m68kfp; /* Math Co-processor registers. */
|
||||
+/* The rest of this junk is to help gdb figure out what goes where */
|
||||
+ unsigned long int u_tsize; /* Text segment size (pages). */
|
||||
+ unsigned long int u_dsize; /* Data segment size (pages). */
|
||||
+ unsigned long int u_ssize; /* Stack segment size (pages). */
|
||||
+ unsigned long start_code; /* Starting virtual address of text. */
|
||||
+ unsigned long start_stack; /* Starting virtual address of stack area.
|
||||
+ This is actually the bottom of the stack,
|
||||
+ the top of the stack is always found in the
|
||||
+ esp register. */
|
||||
+ long int signal; /* Signal that caused the core dump. */
|
||||
+ int reserved; /* No longer used */
|
||||
+ struct user_regs_struct *u_ar0;
|
||||
+ /* Used by gdb to help find the values for */
|
||||
+ /* the registers. */
|
||||
+ struct user_m68kfp_struct* u_fpstate; /* Math Co-processor pointer. */
|
||||
+ unsigned long magic; /* To uniquely identify a core file */
|
||||
+ char u_comm[32]; /* User command that was responsible */
|
||||
+};
|
||||
+#define NBPG 4096
|
||||
+#define UPAGES 1
|
||||
+#define HOST_TEXT_START_ADDR (u.start_code)
|
||||
+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
|
||||
+
|
||||
+#endif
|
||||
/* Copyright (C) 2008, 2010 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
@ -1,13 +0,0 @@
|
||||
older verisons of glibc would build dl-sysdep as shared-only and dl-support as
|
||||
static-only. alpha hooks in a cache variable via dl-auxv.h. newer versions of
|
||||
glibc build dl-sysdep as both shared and static which means we now have symbol
|
||||
duplication for static builds with dl-sysdep and dl-support. since dl-sysdep
|
||||
is both shared/static, there is no point in hooking dl-support anymore, so we
|
||||
can punt it.
|
||||
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/unix/sysv/linux/alpha/dl-support.c glibc-ports-2.14/sysdeps/unix/sysv/linux/alpha/dl-support.c
|
||||
--- glibc-ports-2.14.orig/sysdeps/unix/sysv/linux/alpha/dl-support.c 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/unix/sysv/linux/alpha/dl-support.c 2009-11-13 00:50:53.000000000 +0100
|
||||
@@ -1,2 +1,1 @@
|
||||
-#include "dl-auxv.h"
|
||||
#include <elf/dl-support.c>
|
@ -1,55 +0,0 @@
|
||||
2006-05-30 Falk Hueffner <falk@debian.org>
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/ioperm.c: force the architecture
|
||||
to ev6 in assembly code.
|
||||
|
||||
{standard input}: Assembler messages:
|
||||
{standard input}:341: Error: macro requires $at register while noat in effect
|
||||
{standard input}:374: Error: macro requires $at register while noat in effect
|
||||
{standard input}:438: Error: macro requires $at register while noat in effect
|
||||
{standard input}:471: Error: macro requires $at register while noat in effect
|
||||
make[3]: *** [/tmp/buildd/glibc-2.3.6/build-tree/alpha-libc/misc/ioperm.o] Error 1
|
||||
|
||||
Hrm. gcc puts .arch ev4 into the .s, and this overrides -mev6 for as.
|
||||
I cannot really think of anything better than
|
||||
|
||||
ports/sysdeps/unix/sysv/linux/alpha/ioperm.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/unix/sysv/linux/alpha/ioperm.c glibc-ports-2.14/sysdeps/unix/sysv/linux/alpha/ioperm.c
|
||||
--- glibc-ports-2.14.orig/sysdeps/unix/sysv/linux/alpha/ioperm.c 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/unix/sysv/linux/alpha/ioperm.c 2009-11-13 00:50:57.000000000 +0100
|
||||
@@ -178,13 +178,13 @@
|
||||
static inline void
|
||||
stb_mb(unsigned char val, unsigned long addr)
|
||||
{
|
||||
- __asm__("stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
|
||||
+ __asm__(".arch ev6; stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
|
||||
}
|
||||
|
||||
static inline void
|
||||
stw_mb(unsigned short val, unsigned long addr)
|
||||
{
|
||||
- __asm__("stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
|
||||
+ __asm__(".arch ev6; stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
|
||||
}
|
||||
|
||||
static inline void
|
||||
@@ -356,7 +356,7 @@
|
||||
unsigned long int addr = dense_port_to_cpu_addr (port);
|
||||
unsigned char r;
|
||||
|
||||
- __asm__ ("ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
|
||||
+ __asm__ (".arch ev6; ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -366,7 +366,7 @@
|
||||
unsigned long int addr = dense_port_to_cpu_addr (port);
|
||||
unsigned short r;
|
||||
|
||||
- __asm__ ("ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
|
||||
+ __asm__ (".arch ev6; ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
|
||||
return r;
|
||||
}
|
||||
|
@ -1,20 +0,0 @@
|
||||
2009-05-26 Aurelien Jarno <aurelien@aurel32.net>
|
||||
|
||||
* sysdeps/alpha/Makefile (CFLAGS-rtld.c): add $(PIC-ccflag).
|
||||
|
||||
ports/sysdeps/alpha/Makefile | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/alpha/Makefile glibc-ports-2.14/sysdeps/alpha/Makefile
|
||||
--- glibc-ports-2.14.orig/sysdeps/alpha/Makefile 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/alpha/Makefile 2009-11-13 00:51:13.000000000 +0100
|
||||
@@ -35,7 +35,8 @@
|
||||
|
||||
ifeq ($(subdir),elf)
|
||||
# The ld.so startup code cannot use literals until it self-relocates.
|
||||
-CFLAGS-rtld.c = -mbuild-constants
|
||||
+# It uses more than 64k for the small data area.
|
||||
+CFLAGS-rtld.c = -mbuild-constants $(PIC-ccflag)
|
||||
endif
|
||||
|
||||
# Build everything with full IEEE math support, and with dynamic rounding;
|
@ -1,363 +0,0 @@
|
||||
http://yann.poupet.free.fr/ep93xx/
|
||||
Add support for the Maverick Crunch FPU on Cirrus EP93XX processor series
|
||||
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/bits/endian.h glibc-ports-2.14/sysdeps/arm/bits/endian.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/bits/endian.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/bits/endian.h 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -12,7 +12,7 @@
|
||||
/* FPA floating point units are always big-endian, irrespective of the
|
||||
CPU endianness. VFP floating point units use the same endianness
|
||||
as the rest of the system. */
|
||||
-#ifdef __VFP_FP__
|
||||
+#if defined __VFP_FP__ || defined __MAVERICK__
|
||||
#define __FLOAT_WORD_ORDER __BYTE_ORDER
|
||||
#else
|
||||
#define __FLOAT_WORD_ORDER __BIG_ENDIAN
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/fpu/__longjmp.S glibc-ports-2.14/sysdeps/arm/fpu/__longjmp.S
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/fpu/__longjmp.S 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/fpu/__longjmp.S 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -30,7 +30,33 @@
|
||||
movs r0, r1 /* get the return value in place */
|
||||
moveq r0, #1 /* can't let setjmp() return zero! */
|
||||
|
||||
+#ifdef __MAVERICK__
|
||||
+ cfldrd mvd4, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd5, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd6, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd7, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd8, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd9, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd10, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd11, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd12, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd13, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd14, [ip], #8
|
||||
+ nop
|
||||
+ cfldrd mvd15, [ip], #8
|
||||
+#else
|
||||
lfmfd f4, 4, [ip] ! /* load the floating point regs */
|
||||
+#endif
|
||||
|
||||
LOADREGS(ia, ip, {v1-v6, sl, fp, sp, pc})
|
||||
END (__longjmp)
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/fpu/bits/fenv.h glibc-ports-2.14/sysdeps/arm/fpu/bits/fenv.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/fpu/bits/fenv.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/fpu/bits/fenv.h 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -20,6 +20,45 @@
|
||||
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
|
||||
#endif
|
||||
|
||||
+#if defined(__MAVERICK__)
|
||||
+
|
||||
+/* Define bits representing exceptions in the FPU status word. */
|
||||
+enum
|
||||
+ {
|
||||
+ FE_INVALID = 1,
|
||||
+#define FE_INVALID FE_INVALID
|
||||
+ FE_OVERFLOW = 4,
|
||||
+#define FE_OVERFLOW FE_OVERFLOW
|
||||
+ FE_UNDERFLOW = 8,
|
||||
+#define FE_UNDERFLOW FE_UNDERFLOW
|
||||
+ FE_INEXACT = 16,
|
||||
+#define FE_INEXACT FE_INEXACT
|
||||
+ };
|
||||
+
|
||||
+/* Amount to shift by to convert an exception to a mask bit. */
|
||||
+#define FE_EXCEPT_SHIFT 5
|
||||
+
|
||||
+/* All supported exceptions. */
|
||||
+#define FE_ALL_EXCEPT \
|
||||
+ (FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
|
||||
+
|
||||
+/* IEEE rounding modes. */
|
||||
+enum
|
||||
+ {
|
||||
+ FE_TONEAREST = 0,
|
||||
+#define FE_TONEAREST FE_TONEAREST
|
||||
+ FE_TOWARDZERO = 0x400,
|
||||
+#define FE_TOWARDZERO FE_TOWARDZERO
|
||||
+ FE_DOWNWARD = 0x800,
|
||||
+#define FE_DOWNWARD FE_DOWNWARD
|
||||
+ FE_UPWARD = 0xc00,
|
||||
+#define FE_UPWARD FE_UPWARD
|
||||
+ };
|
||||
+
|
||||
+#define FE_ROUND_MASK (FE_UPWARD)
|
||||
+
|
||||
+#else /* FPA */
|
||||
+
|
||||
/* Define bits representing exceptions in the FPU status word. */
|
||||
enum
|
||||
{
|
||||
@@ -44,6 +83,8 @@
|
||||
modes exist, but you have to encode them in the actual instruction. */
|
||||
#define FE_TONEAREST 0
|
||||
|
||||
+#endif
|
||||
+
|
||||
/* Type representing exception flags. */
|
||||
typedef unsigned long int fexcept_t;
|
||||
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/fpu/bits/setjmp.h glibc-ports-2.14/sysdeps/arm/fpu/bits/setjmp.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/fpu/bits/setjmp.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/fpu/bits/setjmp.h 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -28,7 +28,11 @@
|
||||
#ifndef _ASM
|
||||
/* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not
|
||||
saved. */
|
||||
+#ifdef __MAVERICK__
|
||||
+typedef int __jmp_buf[34];
|
||||
+#else
|
||||
typedef int __jmp_buf[22];
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#endif
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/fpu/fegetround.c glibc-ports-2.14/sysdeps/arm/fpu/fegetround.c
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/fpu/fegetround.c 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/fpu/fegetround.c 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -18,9 +18,21 @@
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
+#include <fpu_control.h>
|
||||
|
||||
int
|
||||
fegetround (void)
|
||||
{
|
||||
+#if defined(__MAVERICK__)
|
||||
+
|
||||
+ unsigned long temp;
|
||||
+
|
||||
+ _FPU_GETCW (temp);
|
||||
+ return temp & FE_ROUND_MASK;
|
||||
+
|
||||
+#else /* FPA */
|
||||
+
|
||||
return FE_TONEAREST; /* Easy. :-) */
|
||||
+
|
||||
+#endif
|
||||
}
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/fpu/fesetround.c glibc-ports-2.14/sysdeps/arm/fpu/fesetround.c
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/fpu/fesetround.c 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/fpu/fesetround.c 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -18,12 +18,28 @@
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
+#include <fpu_control.h>
|
||||
|
||||
int
|
||||
fesetround (int round)
|
||||
{
|
||||
+#if defined(__MAVERICK__)
|
||||
+ unsigned long temp;
|
||||
+
|
||||
+ if (round & ~FE_ROUND_MASK)
|
||||
+ return 1;
|
||||
+
|
||||
+ _FPU_GETCW (temp);
|
||||
+ temp = (temp & ~FE_ROUND_MASK) | round;
|
||||
+ _FPU_SETCW (temp);
|
||||
+ return 0;
|
||||
+
|
||||
+#else /* FPA */
|
||||
+
|
||||
/* We only support FE_TONEAREST, so there is no need for any work. */
|
||||
return (round == FE_TONEAREST)?0:1;
|
||||
+
|
||||
+#endif
|
||||
}
|
||||
|
||||
libm_hidden_def (fesetround)
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/fpu/fpu_control.h glibc-ports-2.14/sysdeps/arm/fpu/fpu_control.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/fpu/fpu_control.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/fpu/fpu_control.h 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -1,5 +1,6 @@
|
||||
/* FPU control word definitions. ARM version.
|
||||
- Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
|
||||
+ Copyright (C) 1996, 1997, 1998, 2000, 2005
|
||||
+ 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
|
||||
@@ -20,6 +21,79 @@
|
||||
#ifndef _FPU_CONTROL_H
|
||||
#define _FPU_CONTROL_H
|
||||
|
||||
+#if defined(__MAVERICK__)
|
||||
+
|
||||
+/* DSPSC register: (from EP9312 User's Guide)
|
||||
+ *
|
||||
+ * bits 31..29 - DAID
|
||||
+ * bits 28..26 - HVID
|
||||
+ * bits 25..24 - RSVD
|
||||
+ * bit 23 - ISAT
|
||||
+ * bit 22 - UI
|
||||
+ * bit 21 - INT
|
||||
+ * bit 20 - AEXC
|
||||
+ * bits 19..18 - SAT
|
||||
+ * bits 17..16 - FCC
|
||||
+ * bit 15 - V
|
||||
+ * bit 14 - FWDEN
|
||||
+ * bit 13 - Invalid
|
||||
+ * bit 12 - Denorm
|
||||
+ * bits 11..10 - RM
|
||||
+ * bits 9..5 - IXE, UFE, OFE, RSVD, IOE
|
||||
+ * bits 4..0 - IX, UF, OF, RSVD, IO
|
||||
+ */
|
||||
+
|
||||
+/* masking of interrupts */
|
||||
+#define _FPU_MASK_IM (1 << 5) /* invalid operation */
|
||||
+#define _FPU_MASK_ZM 0 /* divide by zero */
|
||||
+#define _FPU_MASK_OM (1 << 7) /* overflow */
|
||||
+#define _FPU_MASK_UM (1 << 8) /* underflow */
|
||||
+#define _FPU_MASK_PM (1 << 9) /* inexact */
|
||||
+#define _FPU_MASK_DM 0 /* denormalized operation */
|
||||
+
|
||||
+#define _FPU_RESERVED 0xfffff000 /* These bits are reserved. */
|
||||
+
|
||||
+#define _FPU_DEFAULT 0x00b00000 /* Default value. */
|
||||
+#define _FPU_IEEE 0x00b003a0 /* Default + exceptions enabled. */
|
||||
+
|
||||
+/* Type of the control word. */
|
||||
+typedef unsigned int fpu_control_t;
|
||||
+
|
||||
+/* Macros for accessing the hardware control word. */
|
||||
+#define _FPU_GETCW(cw) ({ \
|
||||
+ register int __t1, __t2; \
|
||||
+ \
|
||||
+ __asm__ volatile ( \
|
||||
+ "cfmvr64l %1, mvdx0\n\t" \
|
||||
+ "cfmvr64h %2, mvdx0\n\t" \
|
||||
+ "cfmv32sc mvdx0, dspsc\n\t" \
|
||||
+ "cfmvr64l %0, mvdx0\n\t" \
|
||||
+ "cfmv64lr mvdx0, %1\n\t" \
|
||||
+ "cfmv64hr mvdx0, %2" \
|
||||
+ : "=r" (cw), "=r" (__t1), "=r" (__t2) \
|
||||
+ ); \
|
||||
+})
|
||||
+
|
||||
+#define _FPU_SETCW(cw) ({ \
|
||||
+ register int __t0, __t1, __t2; \
|
||||
+ \
|
||||
+ __asm__ volatile ( \
|
||||
+ "cfmvr64l %1, mvdx0\n\t" \
|
||||
+ "cfmvr64h %2, mvdx0\n\t" \
|
||||
+ "cfmv64lr mvdx0, %0\n\t" \
|
||||
+ "cfmvsc32 dspsc, mvdx0\n\t" \
|
||||
+ "cfmv64lr mvdx0, %1\n\t" \
|
||||
+ "cfmv64hr mvdx0, %2" \
|
||||
+ : "=r" (__t0), "=r" (__t1), "=r" (__t2) \
|
||||
+ : "0" (cw) \
|
||||
+ ); \
|
||||
+})
|
||||
+
|
||||
+/* Default control word set at startup. */
|
||||
+extern fpu_control_t __fpu_control;
|
||||
+
|
||||
+#else /* FPA */
|
||||
+
|
||||
/* We have a slight terminology confusion here. On the ARM, the register
|
||||
* we're interested in is actually the FPU status word - the FPU control
|
||||
* word is something different (which is implementation-defined and only
|
||||
@@ -99,4 +173,6 @@
|
||||
/* Default control word set at startup. */
|
||||
extern fpu_control_t __fpu_control;
|
||||
|
||||
+#endif
|
||||
+
|
||||
#endif /* _FPU_CONTROL_H */
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/fpu/jmpbuf-offsets.h glibc-ports-2.14/sysdeps/arm/fpu/jmpbuf-offsets.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/fpu/jmpbuf-offsets.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/fpu/jmpbuf-offsets.h 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -17,4 +17,8 @@
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
+#ifdef __MAVERICK__
|
||||
+#define __JMP_BUF_SP 32
|
||||
+#else
|
||||
#define __JMP_BUF_SP 20
|
||||
+#endif
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/fpu/setjmp.S glibc-ports-2.14/sysdeps/arm/fpu/setjmp.S
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/fpu/setjmp.S 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/fpu/setjmp.S 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -24,11 +24,41 @@
|
||||
|
||||
ENTRY (__sigsetjmp)
|
||||
/* Save registers */
|
||||
+#ifdef __MAVERICK__
|
||||
+ cfstrd mvd4, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd5, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd6, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd7, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd8, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd9, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd10, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd11, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd12, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd13, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd14, [r0], #8
|
||||
+ nop
|
||||
+ cfstrd mvd15, [r0], #8
|
||||
+#else
|
||||
sfmea f4, 4, [r0]!
|
||||
+#endif
|
||||
stmia r0, {v1-v6, sl, fp, sp, lr}
|
||||
|
||||
/* Restore pointer to jmp_buf */
|
||||
+#ifdef __MAVERICK__
|
||||
+ sub r0, r0, #96
|
||||
+#else
|
||||
sub r0, r0, #48
|
||||
+#endif
|
||||
|
||||
/* Make a tail call to __sigjmp_save; it takes the same args. */
|
||||
B PLTJMP(C_SYMBOL_NAME(__sigjmp_save))
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/gccframe.h glibc-ports-2.14/sysdeps/arm/gccframe.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/gccframe.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/gccframe.h 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -17,6 +17,10 @@
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
+#ifdef __MAVERICK__
|
||||
+#define FIRST_PSEUDO_REGISTER 43
|
||||
+#else
|
||||
#define FIRST_PSEUDO_REGISTER 27
|
||||
+#endif
|
||||
|
||||
#include <sysdeps/generic/gccframe.h>
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/arm/gmp-mparam.h glibc-ports-2.14/sysdeps/arm/gmp-mparam.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/arm/gmp-mparam.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/arm/gmp-mparam.h 2009-11-13 00:51:22.000000000 +0100
|
||||
@@ -29,7 +29,7 @@
|
||||
#if defined(__ARMEB__)
|
||||
# define IEEE_DOUBLE_MIXED_ENDIAN 0
|
||||
# define IEEE_DOUBLE_BIG_ENDIAN 1
|
||||
-#elif defined(__VFP_FP__)
|
||||
+#elif defined(__VFP_FP__) || defined(__MAVERICK__)
|
||||
# define IEEE_DOUBLE_MIXED_ENDIAN 0
|
||||
# define IEEE_DOUBLE_BIG_ENDIAN 0
|
||||
#else
|
@ -1,22 +0,0 @@
|
||||
fix build error on arm like on hppa:
|
||||
|
||||
arm-unknown-linux-gnu-gcc ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -fno-strict-aliasing -g -pipe -Wstrict-prototypes -fPIC -I../include -I/var/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.8_p20080602/work/build-default-arm-unknown-linux-gnu-nptl/nptl -I/var/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.8_p20080602/work/build-default-arm-unknown-linux-gnu-nptl -I../ports/sysdeps/arm/elf -I../ports/sysdeps/unix/sysv/linux/arm/nptl -I../ports/sysdeps/unix/sysv/linux/arm -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../ports/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../ports/sysdeps/unix/arm -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../ports/sysdeps/arm/fpu -I../ports/sysdeps/arm/nptl -I../ports/sysdeps/arm -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../nptl -I../ports -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/arm-unknown-linux-gnu/4.3.2/include -isystem /usr/lib/gcc/arm-unknown-linux-gnu/4.3.2/include-fixed -isystem /usr/arm-unknown-linux-gnu/usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DSHARED -o /var/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.8_p20080602/work/build-default-arm-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os -MD -MP -MF /var/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.8_p20080602/work/build-default-arm-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os.dt -MT /var/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.8_p20080602/work/build-default-arm-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os -DNOT_IN_libc=1 -DIS_IN_rtld=1
|
||||
In file included from ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c:21:
|
||||
../nptl/sysdeps/unix/sysv/linux/lowlevellock.c: In function '__lll_lock_wait_private':
|
||||
../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:31: warning: implicit declaration of function 'THREAD_GETMEM'
|
||||
../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:31: error: 'THREAD_SELF' undeclared (first use in this function)
|
||||
../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:31: error: (Each undeclared identifier is reported only once
|
||||
../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:31: error: for each function it appears in.)
|
||||
../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:31: error: 'header' undeclared (first use in this function)
|
||||
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h glibc-ports-2.14/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2009-11-13 00:51:23.000000000 +0100
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <atomic.h>
|
||||
#include <sysdep.h>
|
||||
#include <kernel-features.h>
|
||||
+#include <tls.h> /* Need THREAD_*, and header.*. */
|
||||
|
||||
#define FUTEX_WAIT 0
|
||||
#define FUTEX_WAKE 1
|
14
packages/glibc-ports/2.14/610-fpu-cw-mips.patch
vendored
14
packages/glibc-ports/2.14/610-fpu-cw-mips.patch
vendored
@ -1,14 +0,0 @@
|
||||
http://sourceware.org/ml/libc-alpha/2002-10/msg00392.html
|
||||
|
||||
diff -durN glibc-ports-2.14.orig/sysdeps/mips/fpu_control.h glibc-ports-2.14/sysdeps/mips/fpu_control.h
|
||||
--- glibc-ports-2.14.orig/sysdeps/mips/fpu_control.h 2009-05-16 10:36:20.000000000 +0200
|
||||
+++ glibc-ports-2.14/sysdeps/mips/fpu_control.h 2009-11-13 00:51:31.000000000 +0100
|
||||
@@ -86,7 +86,7 @@
|
||||
#define _FPU_RC_UP 0x2
|
||||
#define _FPU_RC_DOWN 0x3
|
||||
|
||||
-#define _FPU_RESERVED 0xfe3c0000 /* Reserved bits in cw */
|
||||
+#define _FPU_RESERVED 0xfebc0000 /* Reserved bits in cw */
|
||||
|
||||
|
||||
/* The fdlibm code requires strict IEEE double precision arithmetic,
|
0
packages/glibc-ports/2.14/version.desc
vendored
0
packages/glibc-ports/2.14/version.desc
vendored
1660
packages/glibc/2.14.1/996-obsolete-rpc.patch
vendored
Normal file
1660
packages/glibc/2.14.1/996-obsolete-rpc.patch
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,14 +0,0 @@
|
||||
Respect environment CPPFLAGS when we run ./configure so we can inject
|
||||
random -D things without having to set CFLAGS/ASFLAGS
|
||||
|
||||
diff -durN glibc-2.13.orig/Makeconfig glibc-2.13/Makeconfig
|
||||
--- glibc-2.13.orig/Makeconfig 2009-05-09 23:57:56.000000000 +0200
|
||||
+++ glibc-2.13/Makeconfig 2009-11-13 00:49:41.000000000 +0100
|
||||
@@ -697,6 +697,7 @@
|
||||
$(foreach lib,$(libof-$(basename $(@F))) \
|
||||
$(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
|
||||
$(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F)))
|
||||
+CPPFLAGS += $(CPPFLAGS-config)
|
||||
override CFLAGS = -std=gnu99 $(gnu89-inline-CFLAGS) \
|
||||
$(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
|
||||
$(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
|
@ -1,84 +0,0 @@
|
||||
From df1cf48777fe4cd81ad7fb09ecbe5b31432b7c1c Mon Sep 17 00:00:00 2001
|
||||
From: Yvan Roux <yvan.roux@linaro.org>
|
||||
Date: Fri, 15 Apr 2016 13:29:26 +0200
|
||||
Subject: [PATCH] Suppress GCC 6 warning about ambiguous 'else' with
|
||||
-Wparentheses
|
||||
|
||||
---
|
||||
ChangeLog | 5 +++++
|
||||
nis/nis_call.c | 20 +++++++++++---------
|
||||
stdlib/setenv.c | 26 ++++++++++++++------------
|
||||
3 files changed, 30 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/nis/nis_call.c b/nis/nis_call.c
|
||||
index 3fa37e4..cb7839a 100644
|
||||
--- a/nis/nis_call.c
|
||||
+++ b/nis/nis_call.c
|
||||
@@ -680,16 +680,18 @@ nis_server_cache_add (const_nis_name name, int search_parent,
|
||||
/* Choose which entry should be evicted from the cache. */
|
||||
loc = &nis_server_cache[0];
|
||||
if (*loc != NULL)
|
||||
- for (i = 1; i < 16; ++i)
|
||||
- if (nis_server_cache[i] == NULL)
|
||||
- {
|
||||
+ {
|
||||
+ for (i = 1; i < 16; ++i)
|
||||
+ if (nis_server_cache[i] == NULL)
|
||||
+ {
|
||||
+ loc = &nis_server_cache[i];
|
||||
+ break;
|
||||
+ }
|
||||
+ else if ((*loc)->uses > nis_server_cache[i]->uses
|
||||
+ || ((*loc)->uses == nis_server_cache[i]->uses
|
||||
+ && (*loc)->expires > nis_server_cache[i]->expires))
|
||||
loc = &nis_server_cache[i];
|
||||
- break;
|
||||
- }
|
||||
- else if ((*loc)->uses > nis_server_cache[i]->uses
|
||||
- || ((*loc)->uses == nis_server_cache[i]->uses
|
||||
- && (*loc)->expires > nis_server_cache[i]->expires))
|
||||
- loc = &nis_server_cache[i];
|
||||
+ }
|
||||
old = *loc;
|
||||
*loc = new;
|
||||
|
||||
diff --git a/stdlib/setenv.c b/stdlib/setenv.c
|
||||
index da61ee0..e66045f 100644
|
||||
--- a/stdlib/setenv.c
|
||||
+++ b/stdlib/setenv.c
|
||||
@@ -278,18 +278,20 @@ unsetenv (const char *name)
|
||||
ep = __environ;
|
||||
if (ep != NULL)
|
||||
while (*ep != NULL)
|
||||
- if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
|
||||
- {
|
||||
- /* Found it. Remove this pointer by moving later ones back. */
|
||||
- char **dp = ep;
|
||||
-
|
||||
- do
|
||||
- dp[0] = dp[1];
|
||||
- while (*dp++);
|
||||
- /* Continue the loop in case NAME appears again. */
|
||||
- }
|
||||
- else
|
||||
- ++ep;
|
||||
+ {
|
||||
+ if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
|
||||
+ {
|
||||
+ /* Found it. Remove this pointer by moving later ones back. */
|
||||
+ char **dp = ep;
|
||||
+
|
||||
+ do
|
||||
+ dp[0] = dp[1];
|
||||
+ while (*dp++);
|
||||
+ /* Continue the loop in case NAME appears again. */
|
||||
+ }
|
||||
+ else
|
||||
+ ++ep;
|
||||
+ }
|
||||
|
||||
UNLOCK;
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,98 +0,0 @@
|
||||
commit 5542236837c5c41435f8282ec92799f480c36f18
|
||||
Author: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Tue Jul 21 22:50:29 2015 -0700
|
||||
|
||||
Port the 0x7efe...feff pattern to GCC 6.
|
||||
|
||||
See Steve Ellcey's bug report in:
|
||||
https://sourceware.org/ml/libc-alpha/2015-07/msg00673.html
|
||||
* string/memrchr.c (MEMRCHR):
|
||||
* string/rawmemchr.c (RAWMEMCHR):
|
||||
* string/strchr.c (strchr):
|
||||
* string/strchrnul.c (STRCHRNUL):
|
||||
Rewrite code to avoid issues with signed shift overflow.
|
||||
|
||||
diff --git a/string/memrchr.c b/string/memrchr.c
|
||||
index 0c8fd84..86cd5b9 100644
|
||||
--- a/string/memrchr.c
|
||||
+++ b/string/memrchr.c
|
||||
@@ -96,15 +96,8 @@ MEMRCHR
|
||||
|
||||
The 1-bits make sure that carries propagate to the next 0-bit.
|
||||
The 0-bits provide holes for carries to fall into. */
|
||||
-
|
||||
- if (sizeof (longword) != 4 && sizeof (longword) != 8)
|
||||
- abort ();
|
||||
-
|
||||
-#if LONG_MAX <= LONG_MAX_32_BITS
|
||||
- magic_bits = 0x7efefeff;
|
||||
-#else
|
||||
- magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;
|
||||
-#endif
|
||||
+ magic_bits = -1;
|
||||
+ magic_bits = magic_bits / 0xff * 0xfe << 1 >> 1 | 1;
|
||||
|
||||
/* Set up a longword, each of whose bytes is C. */
|
||||
charmask = c | (c << 8);
|
||||
diff --git a/string/rawmemchr.c b/string/rawmemchr.c
|
||||
index 05b22be..228ca9d 100644
|
||||
--- a/string/rawmemchr.c
|
||||
+++ b/string/rawmemchr.c
|
||||
@@ -86,15 +86,8 @@ RAWMEMCHR (s, c_in)
|
||||
|
||||
The 1-bits make sure that carries propagate to the next 0-bit.
|
||||
The 0-bits provide holes for carries to fall into. */
|
||||
-
|
||||
- if (sizeof (longword) != 4 && sizeof (longword) != 8)
|
||||
- abort ();
|
||||
-
|
||||
-#if LONG_MAX <= LONG_MAX_32_BITS
|
||||
- magic_bits = 0x7efefeff;
|
||||
-#else
|
||||
- magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;
|
||||
-#endif
|
||||
+ magic_bits = -1;
|
||||
+ magic_bits = magic_bits / 0xff * 0xfe << 1 >> 1 | 1;
|
||||
|
||||
/* Set up a longword, each of whose bytes is C. */
|
||||
charmask = c | (c << 8);
|
||||
diff --git a/string/strchr.c b/string/strchr.c
|
||||
index 5f90075..f13b2b3 100644
|
||||
--- a/string/strchr.c
|
||||
+++ b/string/strchr.c
|
||||
@@ -60,13 +60,8 @@ strchr (const char *s, int c_in)
|
||||
|
||||
The 1-bits make sure that carries propagate to the next 0-bit.
|
||||
The 0-bits provide holes for carries to fall into. */
|
||||
- switch (sizeof (longword))
|
||||
- {
|
||||
- case 4: magic_bits = 0x7efefeffL; break;
|
||||
- case 8: magic_bits = ((0x7efefefeL << 16) << 16) | 0xfefefeffL; break;
|
||||
- default:
|
||||
- abort ();
|
||||
- }
|
||||
+ magic_bits = -1;
|
||||
+ magic_bits = magic_bits / 0xff * 0xfe << 1 >> 1 | 1;
|
||||
|
||||
/* Set up a longword, each of whose bytes is C. */
|
||||
charmask = c | (c << 8);
|
||||
diff --git a/string/strchrnul.c b/string/strchrnul.c
|
||||
index 2678f1d..daf0b3f 100644
|
||||
--- a/string/strchrnul.c
|
||||
+++ b/string/strchrnul.c
|
||||
@@ -66,13 +66,8 @@ STRCHRNUL (s, c_in)
|
||||
|
||||
The 1-bits make sure that carries propagate to the next 0-bit.
|
||||
The 0-bits provide holes for carries to fall into. */
|
||||
- switch (sizeof (longword))
|
||||
- {
|
||||
- case 4: magic_bits = 0x7efefeffL; break;
|
||||
- case 8: magic_bits = ((0x7efefefeL << 16) << 16) | 0xfefefeffL; break;
|
||||
- default:
|
||||
- abort ();
|
||||
- }
|
||||
+ magic_bits = -1;
|
||||
+ magic_bits = magic_bits / 0xff * 0xfe << 1 >> 1 | 1;
|
||||
|
||||
/* Set up a longword, each of whose bytes is C. */
|
||||
charmask = c | (c << 8);
|
195
packages/glibc/2.14/103-dl-openat64-variadic.patch
vendored
195
packages/glibc/2.14/103-dl-openat64-variadic.patch
vendored
@ -1,195 +0,0 @@
|
||||
commit 9dd346ff431fc761f1b748bd4da8bb59f7652094
|
||||
Author: Joseph Myers <joseph@codesourcery.com>
|
||||
Date: Tue Oct 20 11:54:09 2015 +0000
|
||||
|
||||
Convert 113 more function definitions to prototype style (files with assertions).
|
||||
|
||||
This mostly automatically-generated patch converts 113 function
|
||||
definitions in glibc from old-style K&R to prototype-style. Following
|
||||
my other recent such patches, this one deals with the case of function
|
||||
definitions in files that either contain assertions or where grep
|
||||
suggested they might contain assertions - and thus where it isn't
|
||||
possible to use a simple object code comparison as a sanity check on
|
||||
the correctness of the patch, because line numbers are changed.
|
||||
|
||||
A few such automatically-generated changes needed to be supplemented
|
||||
by manual changes for the result to compile. openat64 had a prototype
|
||||
declaration with "..." but an old-style definition in
|
||||
sysdeps/unix/sysv/linux/dl-openat64.c, and "..." needed adding to the
|
||||
generated prototype in the definition (I've filed
|
||||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68024> for diagnosing
|
||||
such cases in GCC; the old state was undefined behavior not requiring
|
||||
a diagnostic, but one seems a good idea). In addition, as Florian has
|
||||
noted regparm attribute mismatches between declaration and definition
|
||||
are only diagnosed for prototype definitions, and five functions
|
||||
needed internal_function added to their definitions (in the case of
|
||||
__pthread_mutex_cond_lock, via the macro definition of
|
||||
__pthread_mutex_lock) to compile on i386.
|
||||
|
||||
After this patch is in, remaining old-style definitions are probably
|
||||
most readily fixed manually before we can turn on
|
||||
-Wold-style-definition for all builds.
|
||||
|
||||
Tested for x86_64 and x86 (testsuite).
|
||||
|
||||
* crypt/md5-crypt.c (__md5_crypt_r): Convert to prototype-style
|
||||
function definition.
|
||||
* crypt/sha256-crypt.c (__sha256_crypt_r): Likewise.
|
||||
* crypt/sha512-crypt.c (__sha512_crypt_r): Likewise.
|
||||
* debug/backtracesyms.c (__backtrace_symbols): Likewise.
|
||||
* elf/dl-minimal.c (_itoa): Likewise.
|
||||
* hurd/hurdmalloc.c (malloc): Likewise.
|
||||
(free): Likewise.
|
||||
(realloc): Likewise.
|
||||
* inet/inet6_option.c (inet6_option_space): Likewise.
|
||||
(inet6_option_init): Likewise.
|
||||
(inet6_option_append): Likewise.
|
||||
(inet6_option_alloc): Likewise.
|
||||
(inet6_option_next): Likewise.
|
||||
(inet6_option_find): Likewise.
|
||||
* io/ftw.c (FTW_NAME): Likewise.
|
||||
(NFTW_NAME): Likewise.
|
||||
(NFTW_NEW_NAME): Likewise.
|
||||
(NFTW_OLD_NAME): Likewise.
|
||||
* libio/iofwide.c (_IO_fwide): Likewise.
|
||||
* libio/strops.c (_IO_str_init_static_internal): Likewise.
|
||||
(_IO_str_init_static): Likewise.
|
||||
(_IO_str_init_readonly): Likewise.
|
||||
(_IO_str_overflow): Likewise.
|
||||
(_IO_str_underflow): Likewise.
|
||||
(_IO_str_count): Likewise.
|
||||
(_IO_str_seekoff): Likewise.
|
||||
(_IO_str_pbackfail): Likewise.
|
||||
(_IO_str_finish): Likewise.
|
||||
* libio/wstrops.c (_IO_wstr_init_static): Likewise.
|
||||
(_IO_wstr_overflow): Likewise.
|
||||
(_IO_wstr_underflow): Likewise.
|
||||
(_IO_wstr_count): Likewise.
|
||||
(_IO_wstr_seekoff): Likewise.
|
||||
(_IO_wstr_pbackfail): Likewise.
|
||||
(_IO_wstr_finish): Likewise.
|
||||
* locale/programs/localedef.c (normalize_codeset): Likewise.
|
||||
* locale/programs/locarchive.c (add_locale_to_archive): Likewise.
|
||||
(add_locales_to_archive): Likewise.
|
||||
(delete_locales_from_archive): Likewise.
|
||||
* malloc/malloc.c (__libc_mallinfo): Likewise.
|
||||
* math/gen-auto-libm-tests.c (init_fp_formats): Likewise.
|
||||
* misc/tsearch.c (__tfind): Likewise.
|
||||
* nptl/pthread_attr_destroy.c (__pthread_attr_destroy): Likewise.
|
||||
* nptl/pthread_attr_getdetachstate.c
|
||||
(__pthread_attr_getdetachstate): Likewise.
|
||||
* nptl/pthread_attr_getguardsize.c (pthread_attr_getguardsize):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_getinheritsched.c
|
||||
(__pthread_attr_getinheritsched): Likewise.
|
||||
* nptl/pthread_attr_getschedparam.c
|
||||
(__pthread_attr_getschedparam): Likewise.
|
||||
* nptl/pthread_attr_getschedpolicy.c
|
||||
(__pthread_attr_getschedpolicy): Likewise.
|
||||
* nptl/pthread_attr_getscope.c (__pthread_attr_getscope):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_getstack.c (__pthread_attr_getstack):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_getstacksize.c (__pthread_attr_getstacksize):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_init.c (__pthread_attr_init_2_1): Likewise.
|
||||
(__pthread_attr_init_2_0): Likewise.
|
||||
* nptl/pthread_attr_setdetachstate.c
|
||||
(__pthread_attr_setdetachstate): Likewise.
|
||||
* nptl/pthread_attr_setguardsize.c (pthread_attr_setguardsize):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_setinheritsched.c
|
||||
(__pthread_attr_setinheritsched): Likewise.
|
||||
* nptl/pthread_attr_setschedparam.c
|
||||
(__pthread_attr_setschedparam): Likewise.
|
||||
* nptl/pthread_attr_setschedpolicy.c
|
||||
(__pthread_attr_setschedpolicy): Likewise.
|
||||
* nptl/pthread_attr_setscope.c (__pthread_attr_setscope):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_setstack.c (__pthread_attr_setstack):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_setstackaddr.c (__pthread_attr_setstackaddr):
|
||||
Likewise.
|
||||
* nptl/pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
|
||||
Likewise.
|
||||
* nptl/pthread_condattr_setclock.c (pthread_condattr_setclock):
|
||||
Likewise.
|
||||
* nptl/pthread_create.c (__find_in_stack_list): Likewise.
|
||||
* nptl/pthread_getattr_np.c (pthread_getattr_np): Likewise.
|
||||
* nptl/pthread_mutex_cond_lock.c (__pthread_mutex_lock): Define to
|
||||
use internal_function.
|
||||
* nptl/pthread_mutex_init.c (__pthread_mutex_init): Convert to
|
||||
prototype-style function definition.
|
||||
* nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Likewise.
|
||||
(__pthread_mutex_cond_lock_adjust): Likewise. Use
|
||||
internal_function.
|
||||
* nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock):
|
||||
Convert to prototype-style function definition.
|
||||
* nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock):
|
||||
Likewise.
|
||||
* nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
|
||||
Likewise.
|
||||
(__pthread_mutex_unlock): Likewise.
|
||||
* nptl_db/td_ta_clear_event.c (td_ta_clear_event): Likewise.
|
||||
* nptl_db/td_ta_set_event.c (td_ta_set_event): Likewise.
|
||||
* nptl_db/td_thr_clear_event.c (td_thr_clear_event): Likewise.
|
||||
* nptl_db/td_thr_event_enable.c (td_thr_event_enable): Likewise.
|
||||
* nptl_db/td_thr_set_event.c (td_thr_set_event): Likewise.
|
||||
* nss/makedb.c (process_input): Likewise.
|
||||
* posix/fnmatch.c (__strchrnul): Likewise.
|
||||
(__wcschrnul): Likewise.
|
||||
(fnmatch): Likewise.
|
||||
* posix/fnmatch_loop.c (FCT): Likewise.
|
||||
* posix/glob.c (globfree): Likewise.
|
||||
(__glob_pattern_type): Likewise.
|
||||
(__glob_pattern_p): Likewise.
|
||||
* posix/regcomp.c (re_compile_pattern): Likewise.
|
||||
(re_set_syntax): Likewise.
|
||||
(re_compile_fastmap): Likewise.
|
||||
(regcomp): Likewise.
|
||||
(regerror): Likewise.
|
||||
(regfree): Likewise.
|
||||
* posix/regexec.c (regexec): Likewise.
|
||||
(re_match): Likewise.
|
||||
(re_search): Likewise.
|
||||
(re_match_2): Likewise.
|
||||
(re_search_2): Likewise.
|
||||
(re_search_stub): Likewise. Use internal_function
|
||||
(re_copy_regs): Likewise.
|
||||
(re_set_registers): Convert to prototype-style function
|
||||
definition.
|
||||
(prune_impossible_nodes): Likewise. Use internal_function.
|
||||
* resolv/inet_net_pton.c (inet_net_pton): Convert to
|
||||
prototype-style function definition.
|
||||
(inet_net_pton_ipv4): Likewise.
|
||||
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Likewise.
|
||||
* sysdeps/pthread/aio_cancel.c (aio_cancel): Likewise.
|
||||
* sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise.
|
||||
* sysdeps/pthread/timer_delete.c (timer_delete): Likewise.
|
||||
* sysdeps/unix/sysv/linux/dl-openat64.c (openat64): Likewise.
|
||||
Make variadic.
|
||||
* time/strptime_l.c (localtime_r): Convert to prototype-style
|
||||
function definition.
|
||||
* wcsmbs/mbsnrtowcs.c (__mbsnrtowcs): Likewise.
|
||||
* wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Likewise.
|
||||
* wcsmbs/wcsnrtombs.c (__wcsnrtombs): Likewise.
|
||||
* wcsmbs/wcsrtombs.c (__wcsrtombs): Likewise.
|
||||
|
||||
diff --git a/sysdeps/unix/sysv/linux/dl-openat64.c b/sysdeps/unix/sysv/linux/dl-openat64.c
|
||||
index 7d100bb..7eea0ca 100644
|
||||
--- a/sysdeps/unix/sysv/linux/dl-openat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/dl-openat64.c
|
||||
@@ -23,10 +23,7 @@
|
||||
|
||||
|
||||
int
|
||||
-openat64 (dfd, file, oflag)
|
||||
- int dfd;
|
||||
- const char *file;
|
||||
- int oflag;
|
||||
+openat64 (int dfd, const char *file, int oflag, ...)
|
||||
{
|
||||
assert ((oflag & O_CREAT) == 0);
|
||||
|
165
packages/glibc/2.14/104-unused-variables.patch
vendored
165
packages/glibc/2.14/104-unused-variables.patch
vendored
@ -1,165 +0,0 @@
|
||||
commit 6565fcb6e189d67b5a3f321453daebb805056d73
|
||||
Author: Wilco Dijkstra <wdijkstr@arm.com>
|
||||
Date: Fri Sep 18 20:27:20 2015 +0100
|
||||
|
||||
Fix several build failures with GCC6 due to unused static variables.
|
||||
|
||||
2015-09-18 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* resolv/base64.c (rcsid): Remove unused static.
|
||||
* sysdeps/ieee754/dbl-64/atnat2.h (qpi1): Remove unused
|
||||
static. (tqpi1): Likewise.
|
||||
* sysdeps/ieee754/dbl-64/uexp.h (one): Likewise.
|
||||
* sysdeps/ieee754/dbl-64/upow.h (sqrt_2): Likewise.
|
||||
* sysdeps/ieee754/flt-32/e_log10f.c (one): Likewise.
|
||||
* sysdeps/ieee754/flt-32/s_cosf.c (one): Likewise.
|
||||
* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (zero): Likewise.
|
||||
* sysdeps/ieee754/ldbl-128/s_erfl.c (half): Likewise.
|
||||
* sysdeps/ieee754/ldbl-128/s_log1pl.c (maxlog): Likewise.
|
||||
* timezone/private.h (time_t_min): Likewise. (time_t_max):
|
||||
Likewise.
|
||||
|
||||
diff --git a/resolv/base64.c b/resolv/base64.c
|
||||
index ea584ed..519e5d2 100644
|
||||
--- a/resolv/base64.c
|
||||
+++ b/resolv/base64.c
|
||||
@@ -40,10 +40,6 @@
|
||||
* IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
-#if !defined(LINT) && !defined(CODECENTER)
|
||||
-static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $";
|
||||
-#endif /* not lint */
|
||||
-
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/socket.h>
|
||||
diff --git a/sysdeps/ieee754/dbl-64/atnat2.h b/sysdeps/ieee754/dbl-64/atnat2.h
|
||||
index e0d65af..82943f9 100644
|
||||
--- a/sysdeps/ieee754/dbl-64/atnat2.h
|
||||
+++ b/sysdeps/ieee754/dbl-64/atnat2.h
|
||||
@@ -65,10 +65,8 @@
|
||||
/**/ hpi1 = {{0x3c91a626, 0x33145c07} }, /* pi/2-hpi */
|
||||
/**/ mhpi = {{0xbff921fb, 0x54442d18} }, /* -pi/2 */
|
||||
/**/ qpi = {{0x3fe921fb, 0x54442d18} }, /* pi/4 */
|
||||
-/**/ qpi1 = {{0x3c81a626, 0x33145c07} }, /* pi/4-qpi */
|
||||
/**/ mqpi = {{0xbfe921fb, 0x54442d18} }, /* -pi/4 */
|
||||
/**/ tqpi = {{0x4002d97c, 0x7f3321d2} }, /* 3pi/4 */
|
||||
-/**/ tqpi1 = {{0x3c9a7939, 0x4c9e8a0a} }, /* 3pi/4-tqpi */
|
||||
/**/ mtqpi = {{0xc002d97c, 0x7f3321d2} }, /* -3pi/4 */
|
||||
/**/ u1 = {{0x3c314c2a, 0x00000000} }, /* 9.377e-19 */
|
||||
/**/ u2 = {{0x3bf955e4, 0x00000000} }, /* 8.584e-20 */
|
||||
@@ -129,10 +127,8 @@
|
||||
/**/ hpi1 = {{0x33145c07, 0x3c91a626} }, /* pi/2-hpi */
|
||||
/**/ mhpi = {{0x54442d18, 0xbff921fb} }, /* -pi/2 */
|
||||
/**/ qpi = {{0x54442d18, 0x3fe921fb} }, /* pi/4 */
|
||||
-/**/ qpi1 = {{0x33145c07, 0x3c81a626} }, /* pi/4-qpi */
|
||||
/**/ mqpi = {{0x54442d18, 0xbfe921fb} }, /* -pi/4 */
|
||||
/**/ tqpi = {{0x7f3321d2, 0x4002d97c} }, /* 3pi/4 */
|
||||
-/**/ tqpi1 = {{0x4c9e8a0a, 0x3c9a7939} }, /* 3pi/4-tqpi */
|
||||
/**/ mtqpi = {{0x7f3321d2, 0xc002d97c} }, /* -3pi/4 */
|
||||
/**/ u1 = {{0x00000000, 0x3c314c2a} }, /* 9.377e-19 */
|
||||
/**/ u2 = {{0x00000000, 0x3bf955e4} }, /* 8.584e-20 */
|
||||
diff --git a/sysdeps/ieee754/dbl-64/uexp.h b/sysdeps/ieee754/dbl-64/uexp.h
|
||||
index 6817eaf..42b21f2 100644
|
||||
--- a/sysdeps/ieee754/dbl-64/uexp.h
|
||||
+++ b/sysdeps/ieee754/dbl-64/uexp.h
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#include "mydefs.h"
|
||||
|
||||
-const static double one = 1.0, zero = 0.0, hhuge = 1.0e300, tiny = 1.0e-300,
|
||||
+const static double zero = 0.0, hhuge = 1.0e300, tiny = 1.0e-300,
|
||||
err_0 = 1.000014, err_1 = 0.000016;
|
||||
const static int4 bigint = 0x40862002,
|
||||
badint = 0x40876000,smallint = 0x3C8fffff;
|
||||
diff --git a/sysdeps/ieee754/dbl-64/upow.h b/sysdeps/ieee754/dbl-64/upow.h
|
||||
index c8569a9..b4911e5 100644
|
||||
--- a/sysdeps/ieee754/dbl-64/upow.h
|
||||
+++ b/sysdeps/ieee754/dbl-64/upow.h
|
||||
@@ -34,7 +34,6 @@
|
||||
/**/ INF = {{0x7ff00000, 0x00000000}}, /* INF */
|
||||
/**/ nINF = {{0xfff00000, 0x00000000}}, /* -INF */
|
||||
/**/ NaNQ = {{0x7ff80000, 0x00000000}}, /* NaNQ */
|
||||
-/**/ sqrt_2 = {{0x3ff6a09e, 0x667f3bcc}}, /* sqrt(2) */
|
||||
/**/ ln2a = {{0x3fe62e42, 0xfefa3800}}, /* ln(2) 43 bits */
|
||||
/**/ ln2b = {{0x3d2ef357, 0x93c76730}}, /* ln(2)-ln2a */
|
||||
/**/ bigu = {{0x4297ffff, 0xfffffd2c}}, /* 1.5*2**42 -724*2**-10 */
|
||||
@@ -48,7 +47,6 @@
|
||||
/**/ INF = {{0x00000000, 0x7ff00000}}, /* INF */
|
||||
/**/ nINF = {{0x00000000, 0xfff00000}}, /* -INF */
|
||||
/**/ NaNQ = {{0x00000000, 0x7ff80000}}, /* NaNQ */
|
||||
-/**/ sqrt_2 = {{0x667f3bcc, 0x3ff6a09e}}, /* sqrt(2) */
|
||||
/**/ ln2a = {{0xfefa3800, 0x3fe62e42}}, /* ln(2) 43 bits */
|
||||
/**/ ln2b = {{0x93c76730, 0x3d2ef357}}, /* ln(2)-ln2a */
|
||||
/**/ bigu = {{0xfffffd2c, 0x4297ffff}}, /* 1.5*2**42 -724*2**-10 */
|
||||
diff --git a/sysdeps/ieee754/flt-32/e_log10f.c b/sysdeps/ieee754/flt-32/e_log10f.c
|
||||
index 96f0e81..1daeef7 100644
|
||||
--- a/sysdeps/ieee754/flt-32/e_log10f.c
|
||||
+++ b/sysdeps/ieee754/flt-32/e_log10f.c
|
||||
@@ -22,12 +22,6 @@ ivln10 = 4.3429449201e-01, /* 0x3ede5bd9 */
|
||||
log10_2hi = 3.0102920532e-01, /* 0x3e9a2080 */
|
||||
log10_2lo = 7.9034151668e-07; /* 0x355427db */
|
||||
|
||||
-#ifdef __STDC__
|
||||
-static const float zero = 0.0;
|
||||
-#else
|
||||
-static float zero = 0.0;
|
||||
-#endif
|
||||
-
|
||||
#ifdef __STDC__
|
||||
float __ieee754_log10f(float x)
|
||||
#else
|
||||
diff --git a/sysdeps/ieee754/flt-32/s_cosf.c b/sysdeps/ieee754/flt-32/s_cosf.c
|
||||
index 864ab27..0affd40 100644
|
||||
--- a/sysdeps/ieee754/flt-32/s_cosf.c
|
||||
+++ b/sysdeps/ieee754/flt-32/s_cosf.c
|
||||
@@ -21,12 +21,6 @@ static char rcsid[] = "$NetBSD: s_cosf.c,v 1.4 1995/05/10 20:47:03 jtc Exp $";
|
||||
#include "math.h"
|
||||
#include "math_private.h"
|
||||
|
||||
-#ifdef __STDC__
|
||||
-static const float one=1.0;
|
||||
-#else
|
||||
-static float one=1.0;
|
||||
-#endif
|
||||
-
|
||||
#ifdef __STDC__
|
||||
float __cosf(float x)
|
||||
#else
|
||||
diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
|
||||
index 500aacc..ab5a96e 100644
|
||||
--- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
|
||||
+++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
|
||||
@@ -82,7 +82,6 @@ DIAG_IGNORE_NEEDS_COMMENT (4.6, "-Woverflow");
|
||||
static const long double PIL = 3.1415926535897932384626433832795028841972E0L;
|
||||
static const long double MAXLGM = 1.0485738685148938358098967157129705071571E4928L;
|
||||
static const long double one = 1.0L;
|
||||
-static const long double zero = 0.0L;
|
||||
static const long double huge = 1.0e4000L;
|
||||
|
||||
/* log gamma(x) = ( x - 0.5 ) * log(x) - x + LS2PI + 1/x P(1/x^2)
|
||||
diff --git a/sysdeps/ieee754/ldbl-128/s_erfl.c b/sysdeps/ieee754/ldbl-128/s_erfl.c
|
||||
index fa4609f..08c80a3 100644
|
||||
--- a/sysdeps/ieee754/ldbl-128/s_erfl.c
|
||||
+++ b/sysdeps/ieee754/ldbl-128/s_erfl.c
|
||||
@@ -140,7 +140,6 @@ deval (long double x, const long double *p, int n)
|
||||
static long double
|
||||
#endif
|
||||
tiny = 1e-4931L,
|
||||
- half = 0.5L,
|
||||
one = 1.0L,
|
||||
two = 2.0L,
|
||||
/* 2/sqrt(pi) - 1 */
|
||||
diff --git a/sysdeps/ieee754/ldbl-128/s_log1pl.c b/sysdeps/ieee754/ldbl-128/s_log1pl.c
|
||||
index ff759bc..9609550 100644
|
||||
--- a/sysdeps/ieee754/ldbl-128/s_log1pl.c
|
||||
+++ b/sysdeps/ieee754/ldbl-128/s_log1pl.c
|
||||
@@ -117,7 +117,6 @@ static const long double C2 = 1.428606820309417232121458176568075500134E-6L;
|
||||
|
||||
static const long double sqrth = 0.7071067811865475244008443621048490392848L;
|
||||
/* ln (2^16384 * (1 - 2^-113)) */
|
||||
-static const long double maxlog = 1.1356523406294143949491931077970764891253E4L;
|
||||
static const long double zero = 0.0L;
|
||||
|
||||
long double
|
@ -1,24 +0,0 @@
|
||||
commit 976ef870542580cf5fed896c2c652b3e1a95f9da
|
||||
Author: Steve Ellcey <sellcey@mips.com>
|
||||
Date: Fri Dec 11 09:19:37 2015 -0800
|
||||
|
||||
Fix indentation.
|
||||
|
||||
* sysdeps/ieee754/flt-32/k_rem_pio2f.c (__kernel_rem_pio2f):
|
||||
Fix indentation.
|
||||
|
||||
diff --git a/sysdeps/ieee754/flt-32/k_rem_pio2f.c b/sysdeps/ieee754/flt-32/k_rem_pio2f.c
|
||||
index 0c7685c..392afdb 100644
|
||||
--- a/sysdeps/ieee754/flt-32/k_rem_pio2f.c
|
||||
+++ b/sysdeps/ieee754/flt-32/k_rem_pio2f.c
|
||||
@@ -65,7 +65,9 @@ int __kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const int32
|
||||
|
||||
/* compute q[0],q[1],...q[jk] */
|
||||
for (i=0;i<=jk;i++) {
|
||||
- for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw;
|
||||
+ for(j=0,fw=0.0;j<=jx;j++)
|
||||
+ fw += x[j]*f[jx+i-j];
|
||||
+ q[i] = fw;
|
||||
}
|
||||
|
||||
jz = jk;
|
@ -1,27 +0,0 @@
|
||||
commit 328c44c3670ebf6c1bd790acddce65a12998cd6c
|
||||
Author: Roland McGrath <roland@hack.frob.com>
|
||||
Date: Fri Apr 17 12:11:58 2015 -0700
|
||||
|
||||
Fuller check for invalid NSID in _dl_open.
|
||||
|
||||
diff --git a/elf/dl-open.c b/elf/dl-open.c
|
||||
index 0dbe07f..2d0e082 100644
|
||||
--- a/elf/dl-open.c
|
||||
+++ b/elf/dl-open.c
|
||||
@@ -619,8 +619,14 @@ no more namespaces available for dlmopen()"));
|
||||
/* Never allow loading a DSO in a namespace which is empty. Such
|
||||
direct placements is only causing problems. Also don't allow
|
||||
loading into a namespace used for auditing. */
|
||||
- else if (__builtin_expect (nsid != LM_ID_BASE && nsid != __LM_ID_CALLER, 0)
|
||||
- && (GL(dl_ns)[nsid]._ns_nloaded == 0
|
||||
+ else if ((nsid != LM_ID_BASE && nsid != __LM_ID_CALLER)
|
||||
+ && ((nsid < 0 || nsid >= GL(dl_nns))
|
||||
+ /* This prevents the [NSID] index expressions from being
|
||||
+ evaluated, so the compiler won't think that we are
|
||||
+ accessing an invalid index here in the !SHARED case where
|
||||
+ DL_NNS is 1 and so any NSID != 0 is invalid. */
|
||||
+ || DL_NNS == 1
|
||||
+ || GL(dl_ns)[nsid]._ns_nloaded == 0
|
||||
|| GL(dl_ns)[nsid]._ns_loaded->l_auditing))
|
||||
_dl_signal_error (EINVAL, file, NULL,
|
||||
N_("invalid target namespace in dlmopen()"));
|
@ -1,55 +0,0 @@
|
||||
revert cfi additions to clone on i386/x86_64 to workaround problems in
|
||||
gcc's unwinder code. this is not a bug in glibc, it triggers problems
|
||||
elsewhere. this cfi code does not gain us a whole lot anyways.
|
||||
|
||||
http://gcc.gnu.org/ml/gcc/2006-12/msg00293.html
|
||||
|
||||
Index: sysdeps/unix/sysv/linux/i386/clone.S
|
||||
===================================================================
|
||||
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/clone.S,v
|
||||
retrieving revision 1.27
|
||||
retrieving revision 1.26
|
||||
diff -u -p -r1.27 -r1.26
|
||||
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/i386/clone.S glibc-2.13/sysdeps/unix/sysv/linux/i386/clone.S
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/i386/clone.S 2006-12-04 00:12:36.000000000 +0100
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/i386/clone.S 2009-11-13 00:49:45.000000000 +0100
|
||||
@@ -120,9 +120,6 @@
|
||||
ret
|
||||
|
||||
L(thread_start):
|
||||
- cfi_startproc;
|
||||
- /* Clearing frame pointer is insufficient, use CFI. */
|
||||
- cfi_undefined (eip);
|
||||
/* Note: %esi is zero. */
|
||||
movl %esi,%ebp /* terminate the stack frame */
|
||||
#ifdef RESET_PID
|
||||
@@ -155,7 +152,6 @@
|
||||
jmp L(haspid)
|
||||
.previous
|
||||
#endif
|
||||
- cfi_endproc;
|
||||
|
||||
cfi_startproc
|
||||
PSEUDO_END (BP_SYM (__clone))
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/x86_64/clone.S glibc-2.13/sysdeps/unix/sysv/linux/x86_64/clone.S
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/x86_64/clone.S 2006-12-04 00:12:36.000000000 +0100
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-11-13 00:49:45.000000000 +0100
|
||||
@@ -89,9 +89,6 @@
|
||||
ret
|
||||
|
||||
L(thread_start):
|
||||
- cfi_startproc;
|
||||
- /* Clearing frame pointer is insufficient, use CFI. */
|
||||
- cfi_undefined (rip);
|
||||
/* Clear the frame pointer. The ABI suggests this be done, to mark
|
||||
the outermost frame obviously. */
|
||||
xorl %ebp, %ebp
|
||||
@@ -116,7 +113,6 @@
|
||||
/* Call exit with return value from function call. */
|
||||
movq %rax, %rdi
|
||||
call HIDDEN_JUMPTARGET (_exit)
|
||||
- cfi_endproc;
|
||||
|
||||
cfi_startproc;
|
||||
PSEUDO_END (BP_SYM (__clone))
|
@ -1,44 +0,0 @@
|
||||
From 61d5f9c09b3157db76bd1a393e248c262a8d9dd4 Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Neyman <stilor@att.net>
|
||||
Date: Wed, 8 Mar 2017 14:31:10 -0800
|
||||
Subject: [PATCH] Fix combreloc test with BSD grep
|
||||
|
||||
The test for "-z combreloc" fails when cross-compiling on a machine
|
||||
that uses BSD grep (e.g. on macos). grep complains about empty
|
||||
subexpression and exits with non-zero status, which is interpreted
|
||||
by configure as "not found". As a result, support for "-z combreloc"
|
||||
(HAVE_Z_COMBRELOC) is not detected, leading to link failure on SPARC.
|
||||
|
||||
* configure.ac: Avoid empty subexpression in grep.
|
||||
|
||||
Signed-off-by: Alexey Neyman <stilor@att.net>
|
||||
---
|
||||
ChangeLog | 5 +++++
|
||||
configure | 2 +-
|
||||
configure.ac | 2 +-
|
||||
3 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff -urpN glibc-2.14.1.orig/configure glibc-2.14.1/configure
|
||||
--- glibc-2.14.1.orig/configure 2011-10-07 02:48:55.000000000 -0700
|
||||
+++ glibc-2.14.1/configure 2017-03-08 21:06:36.000000000 -0800
|
||||
@@ -6377,7 +6377,7 @@ EOF
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; }
|
||||
then
|
||||
- if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
|
||||
+ if readelf -S conftest.so | grep '\.\(rel\|rela\)\.dyn' > /dev/null; then
|
||||
libc_cv_z_combreloc=yes
|
||||
else
|
||||
libc_cv_z_combreloc=no
|
||||
diff -urpN glibc-2.14.1.orig/configure.in glibc-2.14.1/configure.in
|
||||
--- glibc-2.14.1.orig/configure.in 2011-10-07 02:48:55.000000000 -0700
|
||||
+++ glibc-2.14.1/configure.in 2017-03-08 21:06:50.000000000 -0800
|
||||
@@ -1655,7 +1655,7 @@ dnl cross-platform since the gcc used ca
|
||||
dnl introducing new options this is not easily doable. Instead use a tool
|
||||
dnl which always is cross-platform: readelf. To detect whether -z combreloc
|
||||
dnl look for a section named .rel.dyn.
|
||||
- if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
|
||||
+ if readelf -S conftest.so | grep '\.\(rel\|rela\)\.dyn' > /dev/null; then
|
||||
libc_cv_z_combreloc=yes
|
||||
else
|
||||
libc_cv_z_combreloc=no
|
16
packages/glibc/2.14/140-disable-ldconfig.patch
vendored
16
packages/glibc/2.14/140-disable-ldconfig.patch
vendored
@ -1,16 +0,0 @@
|
||||
do not bother running ldconfig on DESTDIR. it wants to write the temp cache
|
||||
file outside of the chroot. doesnt matter anyways as we wont use the cache
|
||||
results (portage will rebuild cache), so running ldconfig is simply a waste
|
||||
of time.
|
||||
|
||||
diff -durN glibc-2.13.orig/Makefile glibc-2.13/Makefile
|
||||
--- glibc-2.13.orig/Makefile 2009-04-23 20:23:03.000000000 +0200
|
||||
+++ glibc-2.13/Makefile 2009-11-13 00:49:49.000000000 +0100
|
||||
@@ -116,6 +116,7 @@
|
||||
rm -f $(symbolic-link-list)
|
||||
|
||||
install:
|
||||
+dont-bother-with-destdir:
|
||||
-test ! -x $(common-objpfx)elf/ldconfig || LC_ALL=C LANGUAGE=C \
|
||||
$(common-objpfx)elf/ldconfig $(addprefix -r ,$(install_root)) \
|
||||
$(slibdir) $(libdir)
|
@ -1,85 +0,0 @@
|
||||
grab some updates from FreeBSD
|
||||
|
||||
http://bugs.gentoo.org/201979
|
||||
|
||||
diff -durN glibc-2.13.orig/misc/sys/queue.h glibc-2.13/misc/sys/queue.h
|
||||
|
||||
diff -durN glibc-2.13.orig/misc/sys/queue.h glibc-2.13/misc/sys/queue.h
|
||||
--- glibc-2.13.orig/misc/sys/queue.h 2008-03-05 06:50:30.000000000 +0100
|
||||
+++ glibc-2.13/misc/sys/queue.h 2009-11-13 00:49:51.000000000 +0100
|
||||
@@ -136,6 +136,11 @@
|
||||
(var); \
|
||||
(var) = ((var)->field.le_next))
|
||||
|
||||
+#define LIST_FOREACH_SAFE(var, head, field, tvar) \
|
||||
+ for ((var) = LIST_FIRST((head)); \
|
||||
+ (var) && ((tvar) = LIST_NEXT((var), field), 1); \
|
||||
+ (var) = (tvar))
|
||||
+
|
||||
/*
|
||||
* List access methods.
|
||||
*/
|
||||
@@ -197,6 +202,16 @@
|
||||
#define SLIST_FOREACH(var, head, field) \
|
||||
for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
|
||||
|
||||
+#define SLIST_FOREACH_SAFE(var, head, field, tvar) \
|
||||
+ for ((var) = SLIST_FIRST((head)); \
|
||||
+ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
|
||||
+ (var) = (tvar))
|
||||
+
|
||||
+#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \
|
||||
+ for ((varp) = &SLIST_FIRST((head)); \
|
||||
+ ((var) = *(varp)) != NULL; \
|
||||
+ (varp) = &SLIST_NEXT((var), field))
|
||||
+
|
||||
/*
|
||||
* Singly-linked List access methods.
|
||||
*/
|
||||
@@ -242,6 +257,12 @@
|
||||
(head)->stqh_last = &(elm)->field.stqe_next; \
|
||||
} while (/*CONSTCOND*/0)
|
||||
|
||||
+#define STAILQ_LAST(head, type, field) \
|
||||
+ (STAILQ_EMPTY((head)) ? \
|
||||
+ NULL : \
|
||||
+ ((struct type *)(void *) \
|
||||
+ ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
|
||||
+
|
||||
#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
|
||||
if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
|
||||
(head)->stqh_last = &(elm)->field.stqe_next; \
|
||||
@@ -271,6 +292,11 @@
|
||||
(var); \
|
||||
(var) = ((var)->field.stqe_next))
|
||||
|
||||
+#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
|
||||
+ for ((var) = STAILQ_FIRST((head)); \
|
||||
+ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
|
||||
+ (var) = (tvar))
|
||||
+
|
||||
#define STAILQ_CONCAT(head1, head2) do { \
|
||||
if (!STAILQ_EMPTY((head2))) { \
|
||||
*(head1)->stqh_last = (head2)->stqh_first; \
|
||||
@@ -437,11 +463,21 @@
|
||||
(var); \
|
||||
(var) = ((var)->field.tqe_next))
|
||||
|
||||
+#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \
|
||||
+ for ((var) = TAILQ_FIRST((head)); \
|
||||
+ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
|
||||
+ (var) = (tvar))
|
||||
+
|
||||
#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
|
||||
for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
|
||||
(var); \
|
||||
(var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
|
||||
|
||||
+#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \
|
||||
+ for ((var) = TAILQ_LAST((head), headname); \
|
||||
+ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
|
||||
+ (var) = (tvar))
|
||||
+
|
||||
#define TAILQ_CONCAT(head1, head2, field) do { \
|
||||
if (!TAILQ_EMPTY(head2)) { \
|
||||
*(head1)->tqh_last = (head2)->tqh_first; \
|
24
packages/glibc/2.14/160-manual-no-perl.patch
vendored
24
packages/glibc/2.14/160-manual-no-perl.patch
vendored
@ -1,24 +0,0 @@
|
||||
If we're using a cvs snapshot which updates the source files, and
|
||||
perl isn't installed yet, then we can't regen the docs. Not a big
|
||||
deal, so just whine a little and continue on our merry way.
|
||||
|
||||
http://bugs.gentoo.org/60132
|
||||
|
||||
diff -durN glibc-2.13.orig/manual/Makefile glibc-2.13/manual/Makefile
|
||||
--- glibc-2.13.orig/manual/Makefile 2006-01-08 07:43:47.000000000 +0100
|
||||
+++ glibc-2.13/manual/Makefile 2009-11-13 00:49:54.000000000 +0100
|
||||
@@ -104,9 +104,14 @@
|
||||
libm-err.texi: stamp-libm-err
|
||||
stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\
|
||||
$(dir)/libm-test-ulps))
|
||||
+ifneq ($(PERL),no)
|
||||
pwd=`pwd`; \
|
||||
$(PERL) $< $$pwd/.. > libm-err-tmp
|
||||
$(move-if-change) libm-err-tmp libm-err.texi
|
||||
+else
|
||||
+ echo "Unable to rebuild math docs, no perl installed"
|
||||
+ touch libm-err.texi
|
||||
+endif
|
||||
touch $@
|
||||
|
||||
# Generate Texinfo files from the C source for the example programs.
|
@ -1,53 +0,0 @@
|
||||
# DP: Description: Fix localedef segfault when run under exec-shield,
|
||||
# PaX or similar. (#231438, #198099)
|
||||
# DP: Dpatch Author: James Troup <james@nocrew.org>
|
||||
# DP: Patch Author: (probably) Jakub Jelinek <jakub@redhat.com>
|
||||
# DP: Upstream status: Unknown
|
||||
# DP: Status Details: Unknown
|
||||
# DP: Date: 2004-03-16
|
||||
diff -durN glibc-2.13.orig/locale/programs/3level.h glibc-2.13/locale/programs/3level.h
|
||||
--- glibc-2.13.orig/locale/programs/3level.h 2007-07-16 02:54:59.000000000 +0200
|
||||
+++ glibc-2.13/locale/programs/3level.h 2009-11-13 00:49:56.000000000 +0100
|
||||
@@ -203,6 +203,42 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+/* GCC ATM seems to do a poor job with pointers to nested functions passed
|
||||
+ to inlined functions. Help it a little bit with this hack. */
|
||||
+#define wchead_table_iterate(tp, fn) \
|
||||
+do \
|
||||
+ { \
|
||||
+ struct wchead_table *t = (tp); \
|
||||
+ uint32_t index1; \
|
||||
+ for (index1 = 0; index1 < t->level1_size; index1++) \
|
||||
+ { \
|
||||
+ uint32_t lookup1 = t->level1[index1]; \
|
||||
+ if (lookup1 != ((uint32_t) ~0)) \
|
||||
+ { \
|
||||
+ uint32_t lookup1_shifted = lookup1 << t->q; \
|
||||
+ uint32_t index2; \
|
||||
+ for (index2 = 0; index2 < (1 << t->q); index2++) \
|
||||
+ { \
|
||||
+ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \
|
||||
+ if (lookup2 != ((uint32_t) ~0)) \
|
||||
+ { \
|
||||
+ uint32_t lookup2_shifted = lookup2 << t->p; \
|
||||
+ uint32_t index3; \
|
||||
+ for (index3 = 0; index3 < (1 << t->p); index3++) \
|
||||
+ { \
|
||||
+ struct element_t *lookup3 \
|
||||
+ = t->level3[index3 + lookup2_shifted]; \
|
||||
+ if (lookup3 != NULL) \
|
||||
+ fn ((((index1 << t->q) + index2) << t->p) + index3, \
|
||||
+ lookup3); \
|
||||
+ } \
|
||||
+ } \
|
||||
+ } \
|
||||
+ } \
|
||||
+ } \
|
||||
+ } while (0)
|
||||
+
|
||||
#endif
|
||||
|
||||
#ifndef NO_FINALIZE
|
39
packages/glibc/2.14/180-resolv-dynamic.patch
vendored
39
packages/glibc/2.14/180-resolv-dynamic.patch
vendored
@ -1,39 +0,0 @@
|
||||
ripped from SuSE
|
||||
|
||||
if /etc/resolv.conf is updated, then make sure applications
|
||||
already running get the updated information.
|
||||
|
||||
http://bugs.gentoo.org/177416
|
||||
|
||||
diff -durN glibc-2.13.orig/resolv/res_libc.c glibc-2.13/resolv/res_libc.c
|
||||
--- glibc-2.13.orig/resolv/res_libc.c 2009-02-07 05:27:42.000000000 +0100
|
||||
+++ glibc-2.13/resolv/res_libc.c 2009-11-13 00:49:59.000000000 +0100
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <arpa/nameser.h>
|
||||
#include <resolv.h>
|
||||
#include <bits/libc-lock.h>
|
||||
+#include <sys/stat.h>
|
||||
|
||||
|
||||
/* The following bit is copied from res_data.c (where it is #ifdef'ed
|
||||
@@ -95,6 +96,20 @@
|
||||
__res_maybe_init (res_state resp, int preinit)
|
||||
{
|
||||
if (resp->options & RES_INIT) {
|
||||
+ static time_t last_mtime, last_check;
|
||||
+ time_t now;
|
||||
+ struct stat statbuf;
|
||||
+
|
||||
+ time (&now);
|
||||
+ if (now != last_check) {
|
||||
+ last_check = now;
|
||||
+ if (stat (_PATH_RESCONF, &statbuf) == 0 && last_mtime != statbuf.st_mtime) {
|
||||
+ last_mtime = statbuf.st_mtime;
|
||||
+ atomicinclock (lock);
|
||||
+ atomicinc (__res_initstamp);
|
||||
+ atomicincunlock (lock);
|
||||
+ }
|
||||
+ }
|
||||
if (__res_initstamp != resp->_u._ext.initstamp) {
|
||||
if (resp->nscount > 0)
|
||||
__res_iclose (resp, true);
|
39
packages/glibc/2.14/190-localedef-mmap.patch
vendored
39
packages/glibc/2.14/190-localedef-mmap.patch
vendored
@ -1,39 +0,0 @@
|
||||
sniped from Debian
|
||||
http://bugs.gentoo.org/289615
|
||||
|
||||
2009-10-27 Aurelien Jarno <aurelien@aurel32.net>
|
||||
|
||||
* locale/programs/locarchive.c: use MMAP_SHARED to reserve memory
|
||||
used later with MMAP_FIXED | MMAP_SHARED to cope with different
|
||||
alignment restrictions.
|
||||
|
||||
diff -durN glibc-2.13.orig/locale/programs/locarchive.c glibc-2.13/locale/programs/locarchive.c
|
||||
--- glibc-2.13.orig/locale/programs/locarchive.c 2009-04-27 16:07:47.000000000 +0200
|
||||
+++ glibc-2.13/locale/programs/locarchive.c 2009-11-13 00:50:01.000000000 +0100
|
||||
@@ -134,7 +134,7 @@
|
||||
size_t reserved = RESERVE_MMAP_SIZE;
|
||||
int xflags = 0;
|
||||
if (total < reserved
|
||||
- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
|
||||
+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
|
||||
-1, 0)) != MAP_FAILED))
|
||||
xflags = MAP_FIXED;
|
||||
else
|
||||
@@ -396,7 +396,7 @@
|
||||
size_t reserved = RESERVE_MMAP_SIZE;
|
||||
int xflags = 0;
|
||||
if (total < reserved
|
||||
- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
|
||||
+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
|
||||
-1, 0)) != MAP_FAILED))
|
||||
xflags = MAP_FIXED;
|
||||
else
|
||||
@@ -614,7 +614,7 @@
|
||||
int xflags = 0;
|
||||
void *p;
|
||||
if (st.st_size < reserved
|
||||
- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
|
||||
+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
|
||||
-1, 0)) != MAP_FAILED))
|
||||
xflags = MAP_FIXED;
|
||||
else
|
28
packages/glibc/2.14/200-fadvise64_64.patch
vendored
28
packages/glibc/2.14/200-fadvise64_64.patch
vendored
@ -1,28 +0,0 @@
|
||||
ripped from Debian
|
||||
|
||||
sysdeps/unix/sysv/linux/posix_fadvise.c | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/posix_fadvise.c glibc-2.13/sysdeps/unix/sysv/linux/posix_fadvise.c
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/posix_fadvise.c 2003-08-17 02:36:22.000000000 +0200
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/posix_fadvise.c 2009-11-13 00:50:03.000000000 +0100
|
||||
@@ -35,6 +35,19 @@
|
||||
return INTERNAL_SYSCALL_ERRNO (ret, err);
|
||||
return 0;
|
||||
#else
|
||||
+# ifdef __NR_fadvise64_64
|
||||
+ INTERNAL_SYSCALL_DECL (err);
|
||||
+ int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd,
|
||||
+ __LONG_LONG_PAIR ((long) (offset >> 31),
|
||||
+ (long) offset),
|
||||
+ __LONG_LONG_PAIR ((long) (len >> 31),
|
||||
+ (long) len),
|
||||
+ advise);
|
||||
+ if (INTERNAL_SYSCALL_ERROR_P (ret, err))
|
||||
+ return INTERNAL_SYSCALL_ERRNO (ret, err);
|
||||
+ return 0;
|
||||
+# else
|
||||
return ENOSYS;
|
||||
+# endif
|
||||
#endif
|
||||
}
|
24
packages/glibc/2.14/220-section-comments.patch
vendored
24
packages/glibc/2.14/220-section-comments.patch
vendored
@ -1,24 +0,0 @@
|
||||
http://sources.redhat.com/ml/binutils/2004-04/msg00665.html
|
||||
|
||||
fixes building on some architectures (like m68k/arm/cris/etc...) because
|
||||
it does the right thing
|
||||
|
||||
diff -durN glibc-2.13.orig/include/libc-symbols.h glibc-2.13/include/libc-symbols.h
|
||||
--- glibc-2.13.orig/include/libc-symbols.h 2009-03-14 00:51:46.000000000 +0100
|
||||
+++ glibc-2.13/include/libc-symbols.h 2009-11-13 00:50:07.000000000 +0100
|
||||
@@ -239,12 +239,12 @@
|
||||
# define __make_section_unallocated(section_string)
|
||||
# endif
|
||||
|
||||
-/* Tacking on "\n\t#" to the section name makes gcc put it's bogus
|
||||
+/* Tacking on "\n#APP\n\t#" to the section name makes gcc put it's bogus
|
||||
section attributes on what looks like a comment to the assembler. */
|
||||
# ifdef HAVE_SECTION_QUOTES
|
||||
-# define __sec_comment "\"\n\t#\""
|
||||
+# define __sec_comment "\"\n#APP\n\t#\""
|
||||
# else
|
||||
-# define __sec_comment "\n\t#"
|
||||
+# define __sec_comment "\n#APP\n\t#"
|
||||
# endif
|
||||
# define link_warning(symbol, msg) \
|
||||
__make_section_unallocated (".gnu.warning." #symbol) \
|
36
packages/glibc/2.14/230-no-inline-gmon.patch
vendored
36
packages/glibc/2.14/230-no-inline-gmon.patch
vendored
@ -1,36 +0,0 @@
|
||||
http://bugs.gentoo.org/196245
|
||||
http://sourceware.org/ml/libc-alpha/2006-05/msg00017.html
|
||||
|
||||
Attached is a patch to add __attribute__ ((noinline)) to
|
||||
call_gmon_start.
|
||||
|
||||
Without this patch, the sec script that processed initfini.s removes a
|
||||
part of inlined call_gmon_start, causing undefined label errors.
|
||||
|
||||
This patch solves the problem by forcing gcc not to inline
|
||||
call_gmon_start with __attribute__ ((noinline)).
|
||||
|
||||
Tested by building for arm-none-lixux-gnueabi. OK to apply?
|
||||
|
||||
Kazu Hirata
|
||||
|
||||
2006-05-07 Kazu Hirata <kazu@codesourcery.com>
|
||||
|
||||
* sysdeps/generic/initfini.c (call_gmon_start): Add
|
||||
__attribute__ ((noinline)).
|
||||
|
||||
Index: sysdeps/generic/initfini.c
|
||||
===================================================================
|
||||
|
||||
diff -durN glibc-2.13.orig/sysdeps/generic/initfini.c glibc-2.13/sysdeps/generic/initfini.c
|
||||
--- glibc-2.13.orig/sysdeps/generic/initfini.c 2007-06-17 20:02:40.000000000 +0200
|
||||
+++ glibc-2.13/sysdeps/generic/initfini.c 2009-11-13 00:50:09.000000000 +0100
|
||||
@@ -70,7 +70,7 @@
|
||||
/* The beginning of _init: */
|
||||
asm ("\n/*@_init_PROLOG_BEGINS*/");
|
||||
|
||||
-static void
|
||||
+static void __attribute__ ((noinline))
|
||||
call_gmon_start(void)
|
||||
{
|
||||
extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/
|
@ -1,17 +0,0 @@
|
||||
many ports hit this warning:
|
||||
../sysdeps/unix/sysv/linux/check_native.c:46: warning: implicit declaration of function 'memset'
|
||||
../sysdeps/unix/sysv/linux/check_native.c:46: warning: implicit declaration of function 'memset'
|
||||
|
||||
snipped from suse
|
||||
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/check_native.c glibc-2.13/sysdeps/unix/sysv/linux/check_native.c
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/check_native.c 2007-11-24 04:12:17.000000000 +0100
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/check_native.c 2009-11-13 00:50:11.000000000 +0100
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <net/if.h>
|
40
packages/glibc/2.14/260-assume-pipe2.patch
vendored
40
packages/glibc/2.14/260-assume-pipe2.patch
vendored
@ -1,40 +0,0 @@
|
||||
http://bugs.gentoo.org/250342
|
||||
http://sources.redhat.com/bugzilla/show_bug.cgi?id=9685
|
||||
|
||||
we cant assume sock_cloexec and pipe2 are bound together as the former defines
|
||||
are found in glibc only while the latter are a combo of kernel headers and
|
||||
glibc. so if we do a runtime detection of SOCK_CLOEXEC, but pipe2() is a stub
|
||||
inside of glibc, we hit a problem. for example:
|
||||
|
||||
#include <grp.h>
|
||||
#include <stdio.h>
|
||||
main()
|
||||
{
|
||||
getgrnam("portage");
|
||||
if (!popen("ls", "r"))
|
||||
perror("popen()");
|
||||
}
|
||||
|
||||
getgrnam() will detect that the kernel supports SOCK_CLOEXEC and then set both
|
||||
__have_sock_cloexec and __have_pipe2 to true. but if glibc was built against
|
||||
older kernel headers where __NR_pipe2 does not exist, glibc will have a ENOSYS
|
||||
stub for it. so popen() will always fail as glibc assumes pipe2() works.
|
||||
|
||||
diff -durN glibc-2.13.orig/socket/have_sock_cloexec.c glibc-2.13/socket/have_sock_cloexec.c
|
||||
--- glibc-2.13.orig/socket/have_sock_cloexec.c 2008-07-25 18:46:23.000000000 +0200
|
||||
+++ glibc-2.13/socket/have_sock_cloexec.c 2009-11-13 00:50:15.000000000 +0100
|
||||
@@ -16,9 +16,14 @@
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
+#include <fcntl.h>
|
||||
#include <sys/socket.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
#if defined SOCK_CLOEXEC && !defined __ASSUME_SOCK_CLOEXEC
|
||||
int __have_sock_cloexec;
|
||||
#endif
|
||||
+
|
||||
+#if defined O_CLOEXEC && !defined __ASSUME_PIPE2
|
||||
+int __have_pipe2;
|
||||
+#endif
|
32
packages/glibc/2.14/270-china.patch
vendored
32
packages/glibc/2.14/270-china.patch
vendored
@ -1,32 +0,0 @@
|
||||
|
||||
|
||||
diff -durN glibc-2.13.orig/localedata/locales/zh_TW glibc-2.13/localedata/locales/zh_TW
|
||||
--- glibc-2.13.orig/localedata/locales/zh_TW 2004-11-01 00:42:28.000000000 +0100
|
||||
+++ glibc-2.13/localedata/locales/zh_TW 2009-11-13 00:50:17.000000000 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
comment_char %
|
||||
escape_char /
|
||||
%
|
||||
-% Chinese language locale for Taiwan R.O.C.
|
||||
+% Chinese language locale for Taiwan
|
||||
% charmap: BIG5-CP950
|
||||
%
|
||||
% Original Author:
|
||||
@@ -17,7 +17,7 @@
|
||||
% Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf
|
||||
|
||||
LC_IDENTIFICATION
|
||||
-title "Chinese locale for Taiwan R.O.C."
|
||||
+title "Chinese locale for Taiwan"
|
||||
source ""
|
||||
address ""
|
||||
contact ""
|
||||
@@ -25,7 +25,7 @@
|
||||
tel ""
|
||||
fax ""
|
||||
language "Chinese"
|
||||
-territory "Taiwan R.O.C."
|
||||
+territory "Taiwan"
|
||||
revision "0.2"
|
||||
date "2000-08-02"
|
||||
%
|
115
packages/glibc/2.14/280-new-valencian-locale.patch
vendored
115
packages/glibc/2.14/280-new-valencian-locale.patch
vendored
@ -1,115 +0,0 @@
|
||||
http://bugs.gentoo.org/show_bug.cgi?id=131815
|
||||
http://sourceware.org/bugzilla/show_bug.cgi?id=2522
|
||||
|
||||
diff -durN glibc-2.13.orig/localedata/SUPPORTED glibc-2.13/localedata/SUPPORTED
|
||||
--- glibc-2.13.orig/localedata/SUPPORTED 2009-04-18 10:43:52.000000000 +0200
|
||||
+++ glibc-2.13/localedata/SUPPORTED 2009-11-13 00:50:20.000000000 +0100
|
||||
@@ -72,6 +72,8 @@
|
||||
ca_ES.UTF-8/UTF-8 \
|
||||
ca_ES/ISO-8859-1 \
|
||||
ca_ES@euro/ISO-8859-15 \
|
||||
+ca_ES.UTF-8@valencia/UTF-8 \
|
||||
+ca_ES@valencia/ISO-8859-15 \
|
||||
ca_FR.UTF-8/UTF-8 \
|
||||
ca_FR/ISO-8859-15 \
|
||||
ca_IT.UTF-8/UTF-8 \
|
||||
diff -durN glibc-2.13.orig/localedata/locales/ca_ES@valencia glibc-2.13/localedata/locales/ca_ES@valencia
|
||||
--- glibc-2.13.orig/localedata/locales/ca_ES@valencia 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ glibc-2.13/localedata/locales/ca_ES@valencia 2009-11-13 00:50:20.000000000 +0100
|
||||
@@ -0,0 +1,96 @@
|
||||
+comment_char %
|
||||
+escape_char /
|
||||
+%
|
||||
+% Valencian (southern Catalan) locale for Spain with Euro
|
||||
+%
|
||||
+% Note that this locale is almost the same as ca_ES@euro. The point of having
|
||||
+% a separate locale is only for PO translations, which have a lot of social
|
||||
+% support and are very appreciated by the Valencian-speaking community.
|
||||
+%
|
||||
+% Contact: Jordi Mallach
|
||||
+% Email: jordi@gnu.org
|
||||
+% Tel:
|
||||
+% Fax:
|
||||
+% Language: ca
|
||||
+% Territory: ES
|
||||
+% Option: euro
|
||||
+% Revision: 1.0
|
||||
+% Date: 2006-04-06
|
||||
+% Application: general
|
||||
+% Users: general
|
||||
+% Repertoiremap: mnemonic,ds
|
||||
+% Charset: ISO-8859-15
|
||||
+% Distribution and use is free, also
|
||||
+% for commercial purposes.
|
||||
+
|
||||
+LC_IDENTIFICATION
|
||||
+title "Valencian (southern Catalan) locale for Spain with Euro"
|
||||
+source ""
|
||||
+address ""
|
||||
+contact "Jordi Mallach"
|
||||
+email "jordi@gnu.org"
|
||||
+tel ""
|
||||
+fax ""
|
||||
+language "Catalan"
|
||||
+territory "Spain"
|
||||
+revision "1.0"
|
||||
+date "2006-04-06"
|
||||
+%
|
||||
+category "ca_ES@valencia:2006";LC_IDENTIFICATION
|
||||
+category "ca_ES@valencia:2006";LC_CTYPE
|
||||
+category "ca_ES@valencia:2006";LC_COLLATE
|
||||
+category "ca_ES@valencia:2006";LC_MONETARY
|
||||
+category "ca_ES@valencia:2006";LC_NUMERIC
|
||||
+category "ca_ES@valencia:2006";LC_TIME
|
||||
+category "ca_ES@valencia:2006";LC_MESSAGES
|
||||
+category "ca_ES@valencia:2006";LC_PAPER
|
||||
+category "ca_ES@valencia:2006";LC_NAME
|
||||
+category "ca_ES@valencia:2006";LC_ADDRESS
|
||||
+category "ca_ES@valencia:2006";LC_TELEPHONE
|
||||
+category "ca_ES@valencia:2006";LC_MEASUREMENT
|
||||
+
|
||||
+END LC_IDENTIFICATION
|
||||
+
|
||||
+LC_CTYPE
|
||||
+copy "i18n"
|
||||
+END LC_CTYPE
|
||||
+
|
||||
+LC_COLLATE
|
||||
+copy "ca_ES"
|
||||
+END LC_COLLATE
|
||||
+
|
||||
+LC_MONETARY
|
||||
+copy "ca_ES"
|
||||
+END LC_MONETARY
|
||||
+
|
||||
+LC_NUMERIC
|
||||
+copy "ca_ES"
|
||||
+END LC_NUMERIC
|
||||
+
|
||||
+LC_TIME
|
||||
+copy "ca_ES"
|
||||
+END LC_TIME
|
||||
+
|
||||
+LC_MESSAGES
|
||||
+copy "ca_ES"
|
||||
+END LC_MESSAGES
|
||||
+
|
||||
+LC_PAPER
|
||||
+copy "ca_ES"
|
||||
+END LC_PAPER
|
||||
+
|
||||
+LC_NAME
|
||||
+copy "ca_ES"
|
||||
+END LC_NAME
|
||||
+
|
||||
+LC_ADDRESS
|
||||
+copy "ca_ES"
|
||||
+END LC_ADDRESS
|
||||
+
|
||||
+LC_TELEPHONE
|
||||
+copy "ca_ES"
|
||||
+END LC_TELEPHONE
|
||||
+
|
||||
+LC_MEASUREMENT
|
||||
+copy "ca_ES"
|
||||
+END LC_MEASUREMENT
|
32
packages/glibc/2.14/300-macos-cross-rpcgen.patch
vendored
32
packages/glibc/2.14/300-macos-cross-rpcgen.patch
vendored
@ -1,32 +0,0 @@
|
||||
commit ae7080d30c68cfa0c81ce3422dca948f64a94f50
|
||||
Author: Jia Liu <proljc@gmail.com>
|
||||
Date: Sat Sep 7 00:01:08 2013 +0800
|
||||
|
||||
sunrpc/rpc/types.h: fix OS X and FreeBSD build problems
|
||||
|
||||
When I build arm-linux-gcc on OS X, I find glibc will get a build error
|
||||
in sunrpc/rpc/types.h, so I add __APPLE_CC__ to make OS X build OK.
|
||||
For FreeBSD, Add __FreeBSD__ to make it build OK, too.
|
||||
|
||||
URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00155.html
|
||||
URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00217.html
|
||||
URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00240.html
|
||||
Signed-off-by: Jia Liu <proljc@gmail.com>
|
||||
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
diff --git a/sunrpc/rpc/types.h b/sunrpc/rpc/types.h
|
||||
index 3dca5c4..beded52 100644
|
||||
--- a/sunrpc/rpc/types.h
|
||||
+++ b/sunrpc/rpc/types.h
|
||||
@@ -69,6 +69,11 @@ typedef unsigned long rpcport_t;
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#if defined __APPLE_CC__ || defined __FreeBSD__
|
||||
+# define __u_char_defined
|
||||
+# define __daddr_t_defined
|
||||
+#endif
|
||||
+
|
||||
#ifndef __u_char_defined
|
||||
typedef __u_char u_char;
|
||||
typedef __u_short u_short;
|
40
packages/glibc/2.14/300-nscd-one-fork.patch
vendored
40
packages/glibc/2.14/300-nscd-one-fork.patch
vendored
@ -1,40 +0,0 @@
|
||||
only fork one to assist in stop-start-daemon assumptions about daemon behavior
|
||||
|
||||
http://bugs.gentoo.org/190785
|
||||
|
||||
diff -durN glibc-2.13.orig/nscd/nscd.c glibc-2.13/nscd/nscd.c
|
||||
--- glibc-2.13.orig/nscd/nscd.c 2009-02-06 21:10:27.000000000 +0100
|
||||
+++ glibc-2.13/nscd/nscd.c 2009-11-13 00:50:24.000000000 +0100
|
||||
@@ -182,6 +182,9 @@
|
||||
if (pid != 0)
|
||||
exit (0);
|
||||
|
||||
+ if (write_pid (_PATH_NSCDPID) < 0)
|
||||
+ dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno));
|
||||
+
|
||||
int nullfd = open (_PATH_DEVNULL, O_RDWR);
|
||||
if (nullfd != -1)
|
||||
{
|
||||
@@ -231,12 +234,6 @@
|
||||
for (i = min_close_fd; i < getdtablesize (); i++)
|
||||
close (i);
|
||||
|
||||
- pid = fork ();
|
||||
- if (pid == -1)
|
||||
- error (EXIT_FAILURE, errno, _("cannot fork"));
|
||||
- if (pid != 0)
|
||||
- exit (0);
|
||||
-
|
||||
setsid ();
|
||||
|
||||
if (chdir ("/") != 0)
|
||||
@@ -245,9 +242,6 @@
|
||||
|
||||
openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON);
|
||||
|
||||
- if (write_pid (_PATH_NSCDPID) < 0)
|
||||
- dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno));
|
||||
-
|
||||
if (!init_logfile ())
|
||||
dbg_log (_("Could not create log file"));
|
||||
|
246
packages/glibc/2.14/310-hppa-nptl-carlos.patch
vendored
246
packages/glibc/2.14/310-hppa-nptl-carlos.patch
vendored
@ -1,246 +0,0 @@
|
||||
|
||||
|
||||
diff -durN glibc-2.13.orig/elf/rtld.c glibc-2.13/elf/rtld.c
|
||||
--- glibc-2.13.orig/elf/rtld.c 2009-04-17 02:00:08.000000000 +0200
|
||||
+++ glibc-2.13/elf/rtld.c 2009-11-13 00:50:26.000000000 +0100
|
||||
@@ -392,14 +392,14 @@
|
||||
know it is available. We do not have to clear the memory if we
|
||||
do not have to use the temporary bootstrap_map. Global variables
|
||||
are initialized to zero by default. */
|
||||
-#ifndef DONT_USE_BOOTSTRAP_MAP
|
||||
+#if !defined DONT_USE_BOOTSTRAP_MAP
|
||||
# ifdef HAVE_BUILTIN_MEMSET
|
||||
__builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info));
|
||||
# else
|
||||
- for (size_t cnt = 0;
|
||||
- cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]);
|
||||
- ++cnt)
|
||||
- bootstrap_map.l_info[cnt] = 0;
|
||||
+ /* Clear the whole bootstrap_map structure */
|
||||
+ for (char *cnt = (char *)&(bootstrap_map);
|
||||
+ cnt < ((char *)&(bootstrap_map) + sizeof (bootstrap_map));
|
||||
+ *cnt++ = '\0');
|
||||
# endif
|
||||
# if USE___THREAD
|
||||
bootstrap_map.l_tls_modid = 0;
|
||||
diff -durN glibc-2.13.orig/include/atomic.h glibc-2.13/include/atomic.h
|
||||
--- glibc-2.13.orig/include/atomic.h 2009-02-09 00:49:53.000000000 +0100
|
||||
+++ glibc-2.13/include/atomic.h 2009-11-13 00:50:26.000000000 +0100
|
||||
@@ -185,7 +185,7 @@
|
||||
__typeof (*(mem)) __atg5_value = (newvalue); \
|
||||
\
|
||||
do \
|
||||
- __atg5_oldval = *__atg5_memp; \
|
||||
+ __atg5_oldval = *(volatile __typeof (mem))__atg5_memp; \
|
||||
while (__builtin_expect \
|
||||
(atomic_compare_and_exchange_bool_acq (__atg5_memp, __atg5_value, \
|
||||
__atg5_oldval), 0)); \
|
||||
@@ -206,7 +206,7 @@
|
||||
__typeof (*(mem)) __atg6_value = (value); \
|
||||
\
|
||||
do \
|
||||
- __atg6_oldval = *__atg6_memp; \
|
||||
+ __atg6_oldval = *(volatile __typeof (mem))__atg6_memp; \
|
||||
while (__builtin_expect \
|
||||
(atomic_compare_and_exchange_bool_acq (__atg6_memp, \
|
||||
__atg6_oldval \
|
||||
@@ -224,7 +224,7 @@
|
||||
__typeof (*(mem)) __atg7_value = (value); \
|
||||
\
|
||||
do \
|
||||
- __atg7_oldv = *__atg7_memp; \
|
||||
+ __atg7_oldv = *(volatile __typeof (mem))__atg7_memp; \
|
||||
while (__builtin_expect \
|
||||
(catomic_compare_and_exchange_bool_acq (__atg7_memp, \
|
||||
__atg7_oldv \
|
||||
@@ -242,7 +242,7 @@
|
||||
__typeof (mem) __atg8_memp = (mem); \
|
||||
__typeof (*(mem)) __atg8_value = (value); \
|
||||
do { \
|
||||
- __atg8_oldval = *__atg8_memp; \
|
||||
+ __atg8_oldval = *(volatile __typeof (mem))__atg8_memp; \
|
||||
if (__atg8_oldval >= __atg8_value) \
|
||||
break; \
|
||||
} while (__builtin_expect \
|
||||
@@ -259,7 +259,7 @@
|
||||
__typeof (mem) __atg9_memp = (mem); \
|
||||
__typeof (*(mem)) __atg9_value = (value); \
|
||||
do { \
|
||||
- __atg9_oldv = *__atg9_memp; \
|
||||
+ __atg9_oldv = *(volatile __typeof (mem))__atg9_memp; \
|
||||
if (__atg9_oldv >= __atg9_value) \
|
||||
break; \
|
||||
} while (__builtin_expect \
|
||||
@@ -277,7 +277,7 @@
|
||||
__typeof (mem) __atg10_memp = (mem); \
|
||||
__typeof (*(mem)) __atg10_value = (value); \
|
||||
do { \
|
||||
- __atg10_oldval = *__atg10_memp; \
|
||||
+ __atg10_oldval = *(volatile __typeof (mem))__atg10_memp; \
|
||||
if (__atg10_oldval <= __atg10_value) \
|
||||
break; \
|
||||
} while (__builtin_expect \
|
||||
@@ -361,7 +361,7 @@
|
||||
\
|
||||
do \
|
||||
{ \
|
||||
- __atg11_oldval = *__atg11_memp; \
|
||||
+ __atg11_oldval = *(volatile __typeof (mem))__atg11_memp; \
|
||||
if (__builtin_expect (__atg11_oldval <= 0, 0)) \
|
||||
break; \
|
||||
} \
|
||||
@@ -400,7 +400,7 @@
|
||||
__typeof (*(mem)) __atg14_mask = ((__typeof (*(mem))) 1 << (bit)); \
|
||||
\
|
||||
do \
|
||||
- __atg14_old = (*__atg14_memp); \
|
||||
+ __atg14_old = (*(volatile __typeof (mem))__atg14_memp); \
|
||||
while (__builtin_expect \
|
||||
(atomic_compare_and_exchange_bool_acq (__atg14_memp, \
|
||||
__atg14_old | __atg14_mask,\
|
||||
@@ -418,7 +418,7 @@
|
||||
__typeof (*(mem)) __atg15_mask = (mask); \
|
||||
\
|
||||
do \
|
||||
- __atg15_old = (*__atg15_memp); \
|
||||
+ __atg15_old = (*(volatile __typeof (mem))__atg15_memp); \
|
||||
while (__builtin_expect \
|
||||
(atomic_compare_and_exchange_bool_acq (__atg15_memp, \
|
||||
__atg15_old & __atg15_mask, \
|
||||
@@ -450,7 +450,7 @@
|
||||
__typeof (*(mem)) __atg16_mask = (mask); \
|
||||
\
|
||||
do \
|
||||
- __atg16_old = (*__atg16_memp); \
|
||||
+ __atg16_old = (*(volatile __typeof (mem))__atg16_memp); \
|
||||
while (__builtin_expect \
|
||||
(atomic_compare_and_exchange_bool_acq (__atg16_memp, \
|
||||
__atg16_old & __atg16_mask,\
|
||||
@@ -468,7 +468,7 @@
|
||||
__typeof (*(mem)) __atg17_mask = (mask); \
|
||||
\
|
||||
do \
|
||||
- __atg17_old = (*__atg17_memp); \
|
||||
+ __atg17_old = (*(volatile __typeof (mem))__atg17_memp); \
|
||||
while (__builtin_expect \
|
||||
(atomic_compare_and_exchange_bool_acq (__atg17_memp, \
|
||||
__atg17_old | __atg17_mask, \
|
||||
@@ -484,7 +484,7 @@
|
||||
__typeof (*(mem)) __atg18_mask = (mask); \
|
||||
\
|
||||
do \
|
||||
- __atg18_old = (*__atg18_memp); \
|
||||
+ __atg18_old = (*(volatile __typeof (mem))__atg18_memp); \
|
||||
while (__builtin_expect \
|
||||
(catomic_compare_and_exchange_bool_acq (__atg18_memp, \
|
||||
__atg18_old | __atg18_mask,\
|
||||
@@ -500,7 +500,7 @@
|
||||
__typeof (*(mem)) __atg19_mask = (mask); \
|
||||
\
|
||||
do \
|
||||
- __atg19_old = (*__atg19_memp); \
|
||||
+ __atg19_old = (*(volatile __typeof (mem))__atg19_memp); \
|
||||
while (__builtin_expect \
|
||||
(atomic_compare_and_exchange_bool_acq (__atg19_memp, \
|
||||
__atg19_old | __atg19_mask,\
|
||||
diff -durN glibc-2.13.orig/nptl/Makefile glibc-2.13/nptl/Makefile
|
||||
--- glibc-2.13.orig/nptl/Makefile 2008-11-12 14:38:23.000000000 +0100
|
||||
+++ glibc-2.13/nptl/Makefile 2009-11-13 00:50:26.000000000 +0100
|
||||
@@ -265,9 +265,9 @@
|
||||
# Files which must not be linked with libpthread.
|
||||
tests-nolibpthread = tst-unload
|
||||
|
||||
-# This sets the stack resource limit to 1023kb, which is not a multiple
|
||||
-# of the page size since every architecture's page size is > 1k.
|
||||
-tst-oddstacklimit-ENV = ; ulimit -s 1023;
|
||||
+# This sets the stack resource limit to 8193kb, which is not a multiple
|
||||
+# of the page size since every architecture's page size is 4096 bytes.
|
||||
+tst-oddstacklimit-ENV = ; ulimit -s 8193;
|
||||
|
||||
distribute = eintr.c tst-cleanup4aux.c
|
||||
|
||||
@@ -426,6 +426,35 @@
|
||||
CFLAGS-tst-cleanupx4.c += -fexceptions
|
||||
CFLAGS-tst-oncex3.c += -fexceptions
|
||||
CFLAGS-tst-oncex4.c += -fexceptions
|
||||
+
|
||||
+ldflags-libgcc_s = --as-needed -lgcc_s --no-as-needed
|
||||
+LDFLAGS-tst-cancelx2 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx3 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx4 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx5 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx6 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx7 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx8 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx9 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx10 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx11 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx12 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx13 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx14 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx15 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx16 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx17 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx18 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx20 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cancelx21 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cleanupx0 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cleanupx1 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cleanupx2 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cleanupx3 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-cleanupx4 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-oncex3 += $(ldflags-libgcc_s)
|
||||
+LDFLAGS-tst-oncex4 += $(ldflags-libgcc_s)
|
||||
+
|
||||
CFLAGS-tst-align.c += $(stack-align-test-flags)
|
||||
CFLAGS-tst-align3.c += $(stack-align-test-flags)
|
||||
CFLAGS-tst-initializers1.c = -W -Wall -Werror
|
||||
diff -durN glibc-2.13.orig/nptl/pthread_barrier_wait.c glibc-2.13/nptl/pthread_barrier_wait.c
|
||||
--- glibc-2.13.orig/nptl/pthread_barrier_wait.c 2007-08-01 06:18:50.000000000 +0200
|
||||
+++ glibc-2.13/nptl/pthread_barrier_wait.c 2009-11-13 00:50:26.000000000 +0100
|
||||
@@ -64,7 +64,7 @@
|
||||
do
|
||||
lll_futex_wait (&ibarrier->curr_event, event,
|
||||
ibarrier->private ^ FUTEX_PRIVATE_FLAG);
|
||||
- while (event == ibarrier->curr_event);
|
||||
+ while (event == *(volatile unsigned int *)&ibarrier->curr_event);
|
||||
}
|
||||
|
||||
/* Make sure the init_count is stored locally or in a register. */
|
||||
diff -durN glibc-2.13.orig/nptl/sysdeps/pthread/Makefile glibc-2.13/nptl/sysdeps/pthread/Makefile
|
||||
--- glibc-2.13.orig/nptl/sysdeps/pthread/Makefile 2006-02-28 08:09:41.000000000 +0100
|
||||
+++ glibc-2.13/nptl/sysdeps/pthread/Makefile 2009-11-13 00:50:26.000000000 +0100
|
||||
@@ -33,7 +33,9 @@
|
||||
|
||||
ifeq ($(have-forced-unwind),yes)
|
||||
tests += tst-mqueue8x
|
||||
+ldflags-libgcc_s = --as-needed -lgcc_s --no-as-needed
|
||||
CFLAGS-tst-mqueue8x.c += -fexceptions
|
||||
+LDFLAGS-tst-mqueue8x += $(ldflags-libgcc_s)
|
||||
endif
|
||||
endif
|
||||
|
||||
diff -durN glibc-2.13.orig/stdio-common/Makefile glibc-2.13/stdio-common/Makefile
|
||||
--- glibc-2.13.orig/stdio-common/Makefile 2009-04-11 07:29:56.000000000 +0200
|
||||
+++ glibc-2.13/stdio-common/Makefile 2009-11-13 00:50:26.000000000 +0100
|
||||
@@ -82,7 +82,7 @@
|
||||
$(SHELL) -e tst-printf.sh $(common-objpfx) '$(run-program-prefix)'
|
||||
endif
|
||||
|
||||
-CFLAGS-vfprintf.c = -Wno-uninitialized
|
||||
+CFLAGS-vfprintf.c = -Wno-uninitialized -fno-delayed-branch
|
||||
CFLAGS-vfwprintf.c = -Wno-uninitialized
|
||||
CFLAGS-tst-printf.c = -Wno-format
|
||||
CFLAGS-tstdiomisc.c = -Wno-format
|
||||
diff -durN glibc-2.13.orig/sunrpc/clnt_udp.c glibc-2.13/sunrpc/clnt_udp.c
|
||||
--- glibc-2.13.orig/sunrpc/clnt_udp.c 2008-07-26 10:42:44.000000000 +0200
|
||||
+++ glibc-2.13/sunrpc/clnt_udp.c 2009-11-13 00:50:26.000000000 +0100
|
||||
@@ -456,7 +456,7 @@
|
||||
while (inlen < 0 && errno == EINTR);
|
||||
if (inlen < 0)
|
||||
{
|
||||
- if (errno == EWOULDBLOCK)
|
||||
+ if (errno == EWOULDBLOCK || errno == EAGAIN)
|
||||
continue;
|
||||
cu->cu_error.re_errno = errno;
|
||||
return (cu->cu_error.re_status = RPC_CANTRECV);
|
@ -1,66 +0,0 @@
|
||||
With latest versions of glibc, a lot of apps failed on a PaX enabled
|
||||
system with:
|
||||
cannot enable executable stack as shared object requires: Permission denied
|
||||
|
||||
This is due to PaX 'exec-protecting' the stack, and ld.so then trying
|
||||
to make the stack executable due to some libraries not containing the
|
||||
PT_GNU_STACK section. Bug #32960. <azarah@gentoo.org> (12 Nov 2003).
|
||||
|
||||
Patch also NPTL. Bug #116086. <kevquinn@gentoo.org> (20 Dec 2005).
|
||||
|
||||
diff -durN glibc-2.13.orig/nptl/allocatestack.c glibc-2.13/nptl/allocatestack.c
|
||||
--- glibc-2.13.orig/nptl/allocatestack.c 2009-01-29 21:34:16.000000000 +0100
|
||||
+++ glibc-2.13/nptl/allocatestack.c 2009-11-13 00:50:33.000000000 +0100
|
||||
@@ -329,7 +329,8 @@
|
||||
# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
|
||||
#endif
|
||||
if (mprotect (stack, len, PROT_READ | PROT_WRITE | PROT_EXEC) != 0)
|
||||
- return errno;
|
||||
+ if (errno != EACCES) /* PAX is enabled */
|
||||
+ return errno;
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/dl-execstack.c glibc-2.13/sysdeps/unix/sysv/linux/dl-execstack.c
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/dl-execstack.c 2006-01-08 09:21:15.000000000 +0100
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/dl-execstack.c 2009-11-13 00:50:33.000000000 +0100
|
||||
@@ -63,7 +63,10 @@
|
||||
else
|
||||
# endif
|
||||
{
|
||||
- result = errno;
|
||||
+ if (errno == EACCES) /* PAX is enabled */
|
||||
+ result = 0;
|
||||
+ else
|
||||
+ result = errno;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
@@ -89,7 +92,12 @@
|
||||
page -= size;
|
||||
else
|
||||
{
|
||||
- if (errno != ENOMEM) /* Unexpected failure mode. */
|
||||
+ if (errno == EACCES) /* PAX is enabled */
|
||||
+ {
|
||||
+ result = 0;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ else if (errno != ENOMEM) /* Unexpected failure mode. */
|
||||
{
|
||||
result = errno;
|
||||
goto out;
|
||||
@@ -115,7 +123,12 @@
|
||||
page += size;
|
||||
else
|
||||
{
|
||||
- if (errno != ENOMEM) /* Unexpected failure mode. */
|
||||
+ if (errno == EACCES) /* PAX is enabled */
|
||||
+ {
|
||||
+ result = 0;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ else if (errno != ENOMEM) /* Unexpected failure mode. */
|
||||
{
|
||||
result = errno;
|
||||
goto out;
|
32
packages/glibc/2.14/350-pre20040117-pt_pax.patch
vendored
32
packages/glibc/2.14/350-pre20040117-pt_pax.patch
vendored
@ -1,32 +0,0 @@
|
||||
|
||||
|
||||
diff -durN glibc-2.13.orig/elf/elf.h glibc-2.13/elf/elf.h
|
||||
--- glibc-2.13.orig/elf/elf.h 2009-04-15 02:15:54.000000000 +0200
|
||||
+++ glibc-2.13/elf/elf.h 2009-11-13 00:50:35.000000000 +0100
|
||||
@@ -580,6 +580,7 @@
|
||||
#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
|
||||
#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
|
||||
#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */
|
||||
+#define PT_PAX_FLAGS 0x65041580 /* Indicates PaX flag markings */
|
||||
#define PT_LOSUNW 0x6ffffffa
|
||||
#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
|
||||
#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
|
||||
@@ -593,6 +594,18 @@
|
||||
#define PF_X (1 << 0) /* Segment is executable */
|
||||
#define PF_W (1 << 1) /* Segment is writable */
|
||||
#define PF_R (1 << 2) /* Segment is readable */
|
||||
+#define PF_PAGEEXEC (1 << 4) /* Enable PAGEEXEC */
|
||||
+#define PF_NOPAGEEXEC (1 << 5) /* Disable PAGEEXEC */
|
||||
+#define PF_SEGMEXEC (1 << 6) /* Enable SEGMEXEC */
|
||||
+#define PF_NOSEGMEXEC (1 << 7) /* Disable SEGMEXEC */
|
||||
+#define PF_MPROTECT (1 << 8) /* Enable MPROTECT */
|
||||
+#define PF_NOMPROTECT (1 << 9) /* Disable MPROTECT */
|
||||
+#define PF_RANDEXEC (1 << 10) /* Enable RANDEXEC */
|
||||
+#define PF_NORANDEXEC (1 << 11) /* Disable RANDEXEC */
|
||||
+#define PF_EMUTRAMP (1 << 12) /* Enable EMUTRAMP */
|
||||
+#define PF_NOEMUTRAMP (1 << 13) /* Disable EMUTRAMP */
|
||||
+#define PF_RANDMMAP (1 << 14) /* Enable RANDMMAP */
|
||||
+#define PF_NORANDMMAP (1 << 15) /* Disable RANDMMAP */
|
||||
#define PF_MASKOS 0x0ff00000 /* OS-specific */
|
||||
#define PF_MASKPROC 0xf0000000 /* Processor-specific */
|
||||
|
@ -1,193 +0,0 @@
|
||||
when glibc runs its tests, it does so by invoking the local library loader.
|
||||
in Gentoo, we build/run inside of our "sandbox" which itself is linked against
|
||||
libdl (so that it can load libraries and pull out symbols). the trouble
|
||||
is that when you upgrade from an older glibc to the new one, often times
|
||||
internal symbols change name or abi. this is normally OK as you cannot use
|
||||
libc.so from say version 2.3.6 but libpthread.so from say version 2.5, so
|
||||
we always say "keep all of the glibc libraries from the same build". but
|
||||
when glibc runs its tests, it uses dynamic paths to point to its new local
|
||||
copies of libraries. if the test doesnt use libdl, then glibc doesnt add
|
||||
its path, and when sandbox triggers the loading of libdl, glibc does so
|
||||
from the host system system. this gets us into the case of all libraries
|
||||
are from the locally compiled version of glibc except for libdl.so.
|
||||
|
||||
Fix by Wormo
|
||||
|
||||
http://bugs.gentoo.org/56898
|
||||
|
||||
diff -durN glibc-2.13.orig/grp/tst_fgetgrent.sh glibc-2.13/grp/tst_fgetgrent.sh
|
||||
--- glibc-2.13.orig/grp/tst_fgetgrent.sh 2001-07-06 06:54:46.000000000 +0200
|
||||
+++ glibc-2.13/grp/tst_fgetgrent.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -24,7 +24,8 @@
|
||||
rtld_installed_name=$1; shift
|
||||
|
||||
testout=${common_objpfx}/grp/tst_fgetgrent.out
|
||||
-library_path=${common_objpfx}
|
||||
+# make sure libdl is also in path in case sandbox is in use
|
||||
+library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
|
||||
result=0
|
||||
|
||||
diff -durN glibc-2.13.orig/iconvdata/run-iconv-test.sh glibc-2.13/iconvdata/run-iconv-test.sh
|
||||
--- glibc-2.13.orig/iconvdata/run-iconv-test.sh 2008-05-15 03:59:44.000000000 +0200
|
||||
+++ glibc-2.13/iconvdata/run-iconv-test.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -34,7 +34,7 @@
|
||||
export GCONV_PATH
|
||||
|
||||
# We have to have some directories in the library path.
|
||||
-LIBPATH=$codir:$codir/iconvdata
|
||||
+LIBPATH=$codir:$codir/iconvdata:$codir/dlfcn
|
||||
|
||||
# How the start the iconv(1) program.
|
||||
ICONV='$codir/elf/ld.so --library-path $LIBPATH --inhibit-rpath ${from}.so \
|
||||
diff -durN glibc-2.13.orig/iconvdata/tst-table.sh glibc-2.13/iconvdata/tst-table.sh
|
||||
--- glibc-2.13.orig/iconvdata/tst-table.sh 2002-04-24 23:39:35.000000000 +0200
|
||||
+++ glibc-2.13/iconvdata/tst-table.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -59,8 +59,11 @@
|
||||
irreversible=${charset}.irreversible
|
||||
fi
|
||||
|
||||
+# make sure libdl is also in path in case sandbox is in use
|
||||
+library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
+
|
||||
# iconv in one direction.
|
||||
-${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
||||
+${common_objpfx}elf/ld.so --library-path $library_path \
|
||||
${objpfx}tst-table-from ${charset} \
|
||||
> ${objpfx}tst-${charset}.table
|
||||
|
||||
diff -durN glibc-2.13.orig/intl/tst-codeset.sh glibc-2.13/intl/tst-codeset.sh
|
||||
--- glibc-2.13.orig/intl/tst-codeset.sh 2005-04-06 04:18:35.000000000 +0200
|
||||
+++ glibc-2.13/intl/tst-codeset.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -37,6 +37,9 @@
|
||||
LOCPATH=${common_objpfx}localedata
|
||||
export LOCPATH
|
||||
|
||||
+# make sure libdl is also in path in case sandbox is in use
|
||||
+library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
+
|
||||
${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
||||
${objpfx}tst-codeset > ${objpfx}tst-codeset.out
|
||||
|
||||
diff -durN glibc-2.13.orig/intl/tst-gettext.sh glibc-2.13/intl/tst-gettext.sh
|
||||
--- glibc-2.13.orig/intl/tst-gettext.sh 2004-08-15 21:28:18.000000000 +0200
|
||||
+++ glibc-2.13/intl/tst-gettext.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -51,9 +51,12 @@
|
||||
LOCPATH=${common_objpfx}localedata
|
||||
export LOCPATH
|
||||
|
||||
+# make sure libdl is also in path in case sandbox is in use
|
||||
+library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
+
|
||||
# Now run the test.
|
||||
MALLOC_TRACE=$malloc_trace LOCPATH=${objpfx}localedir:$LOCPATH \
|
||||
-${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
||||
+${common_objpfx}elf/ld.so --library-path $library_path \
|
||||
${objpfx}tst-gettext > ${objpfx}tst-gettext.out ${objpfx}domaindir
|
||||
|
||||
exit $?
|
||||
diff -durN glibc-2.13.orig/intl/tst-gettext2.sh glibc-2.13/intl/tst-gettext2.sh
|
||||
--- glibc-2.13.orig/intl/tst-gettext2.sh 2005-05-04 19:54:48.000000000 +0200
|
||||
+++ glibc-2.13/intl/tst-gettext2.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -65,8 +65,11 @@
|
||||
LOCPATH=${objpfx}domaindir
|
||||
export LOCPATH
|
||||
|
||||
+# make sure libdl is also in path in case sandbox is in use
|
||||
+library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
+
|
||||
# Now run the test.
|
||||
-${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
||||
+${common_objpfx}elf/ld.so --library-path $library_path \
|
||||
${objpfx}tst-gettext2 > ${objpfx}tst-gettext2.out ${objpfx}domaindir &&
|
||||
cmp ${objpfx}tst-gettext2.out - <<EOF
|
||||
String1 - Lang1: 1st string
|
||||
diff -durN glibc-2.13.orig/intl/tst-translit.sh glibc-2.13/intl/tst-translit.sh
|
||||
--- glibc-2.13.orig/intl/tst-translit.sh 2005-05-04 19:56:10.000000000 +0200
|
||||
+++ glibc-2.13/intl/tst-translit.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -36,7 +36,10 @@
|
||||
LOCPATH=${common_objpfx}localedata
|
||||
export LOCPATH
|
||||
|
||||
-${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
||||
+# make sure libdl is also in path in case sandbox is in use
|
||||
+library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
+
|
||||
+${common_objpfx}elf/ld.so --library-path $library_path \
|
||||
${objpfx}tst-translit > ${objpfx}tst-translit.out ${objpfx}domaindir
|
||||
|
||||
exit $?
|
||||
diff -durN glibc-2.13.orig/malloc/tst-mtrace.sh glibc-2.13/malloc/tst-mtrace.sh
|
||||
--- glibc-2.13.orig/malloc/tst-mtrace.sh 2005-10-15 01:40:35.000000000 +0200
|
||||
+++ glibc-2.13/malloc/tst-mtrace.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -24,9 +24,12 @@
|
||||
status=0
|
||||
trap "rm -f ${common_objpfx}malloc/tst-mtrace.leak; exit 1" 1 2 15
|
||||
|
||||
+# make sure libdl is also in path in case sandbox is in use
|
||||
+library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
+
|
||||
MALLOC_TRACE=${common_objpfx}malloc/tst-mtrace.leak \
|
||||
LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}iconvdata \
|
||||
-${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
||||
+${common_objpfx}elf/ld.so --library-path $library_path \
|
||||
${common_objpfx}malloc/tst-mtrace || status=1
|
||||
|
||||
if test $status -eq 0 && test -f ${common_objpfx}malloc/mtrace; then
|
||||
diff -durN glibc-2.13.orig/nptl/tst-tls6.sh glibc-2.13/nptl/tst-tls6.sh
|
||||
--- glibc-2.13.orig/nptl/tst-tls6.sh 2003-09-03 00:02:59.000000000 +0200
|
||||
+++ glibc-2.13/nptl/tst-tls6.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -5,8 +5,8 @@
|
||||
rtld_installed_name=$1; shift
|
||||
logfile=$common_objpfx/nptl/tst-tls6.out
|
||||
|
||||
-# We have to find libc and nptl
|
||||
-library_path=${common_objpfx}:${common_objpfx}nptl
|
||||
+# We have to find libc and nptl (also libdl in case sandbox is in use)
|
||||
+library_path=${common_objpfx}:${common_objpfx}nptl:${common_objpfx}/dlfcn
|
||||
tst_tls5="${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
||||
${common_objpfx}/nptl/tst-tls5"
|
||||
|
||||
diff -durN glibc-2.13.orig/posix/globtest.sh glibc-2.13/posix/globtest.sh
|
||||
--- glibc-2.13.orig/posix/globtest.sh 2008-12-06 07:05:39.000000000 +0100
|
||||
+++ glibc-2.13/posix/globtest.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -18,7 +18,7 @@
|
||||
esac
|
||||
|
||||
# We have to find the libc and the NSS modules.
|
||||
-library_path=${common_objpfx}:${common_objpfx}nss:${common_objpfx}nis:${common_objpfx}db2:${common_objpfx}hesiod
|
||||
+library_path=${common_objpfx}:${common_objpfx}nss:${common_objpfx}nis:${common_objpfx}db2:${common_objpfx}hesiod:${common_objpfx}/dlfcn
|
||||
|
||||
# Since we use `sort' we must make sure to use the same locale everywhere.
|
||||
LC_ALL=C
|
||||
diff -durN glibc-2.13.orig/posix/tst-getconf.sh glibc-2.13/posix/tst-getconf.sh
|
||||
--- glibc-2.13.orig/posix/tst-getconf.sh 2002-09-01 13:11:25.000000000 +0200
|
||||
+++ glibc-2.13/posix/tst-getconf.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -10,7 +10,10 @@
|
||||
else
|
||||
rtld_installed_name=$1; shift
|
||||
runit() {
|
||||
- ${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} "$@"
|
||||
+
|
||||
+ # make sure libdl is also in path in case sandbox is in use
|
||||
+ library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
+ ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} "$@"
|
||||
}
|
||||
fi
|
||||
|
||||
diff -durN glibc-2.13.orig/posix/wordexp-tst.sh glibc-2.13/posix/wordexp-tst.sh
|
||||
--- glibc-2.13.orig/posix/wordexp-tst.sh 2000-10-20 18:23:30.000000000 +0200
|
||||
+++ glibc-2.13/posix/wordexp-tst.sh 2009-11-13 00:50:37.000000000 +0100
|
||||
@@ -19,8 +19,11 @@
|
||||
"
|
||||
export IFS
|
||||
|
||||
+# make sure libdl is also in path in case sandbox is in use
|
||||
+library_path=${common_objpfx}:${common_objpfx}/dlfcn
|
||||
+
|
||||
failed=0
|
||||
-${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} \
|
||||
+${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
||||
${common_objpfx}posix/wordexp-test '$*' > ${testout}1
|
||||
cat <<"EOF" | cmp - ${testout}1 >> $logfile || failed=1
|
||||
wordexp returned 0
|
@ -1,14 +0,0 @@
|
||||
timezone data has been split into the package sys-libs/timezone-data
|
||||
|
||||
diff -durN glibc-2.13.orig/Makeconfig glibc-2.13/Makeconfig
|
||||
--- glibc-2.13.orig/Makeconfig 2009-11-13 00:50:13.000000000 +0100
|
||||
+++ glibc-2.13/Makeconfig 2009-11-13 00:50:41.000000000 +0100
|
||||
@@ -944,7 +944,7 @@
|
||||
stdlib stdio-common libio malloc string wcsmbs time dirent \
|
||||
grp pwd posix io termios resource misc socket sysvipc gmon \
|
||||
gnulib iconv iconvdata wctype manual shadow gshadow po argp \
|
||||
- crypt nss localedata timezone rt conform debug \
|
||||
+ crypt nss localedata rt conform debug \
|
||||
$(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
|
||||
|
||||
ifndef avoid-generated
|
15
packages/glibc/2.14/400-alpha-xstat.patch
vendored
15
packages/glibc/2.14/400-alpha-xstat.patch
vendored
@ -1,15 +0,0 @@
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/kernel-features.h glibc-2.13/sysdeps/unix/sysv/linux/kernel-features.h
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/kernel-features.h 2009-05-09 08:54:20.000000000 +0200
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/kernel-features.h 2009-11-13 00:50:45.000000000 +0100
|
||||
@@ -386,6 +386,11 @@
|
||||
# define __ASSUME_GETDENTS32_D_TYPE 1
|
||||
#endif
|
||||
|
||||
+/* Starting with version 2.6.4, alpha stat64 syscalls are available. */
|
||||
+#if __LINUX_KERNEL_VERSION >= 0x020604 && defined __alpha__
|
||||
+# define __ASSUME_STAT64_SYSCALL 1
|
||||
+#endif
|
||||
+
|
||||
/* Starting with version 2.5.3, the initial location returned by `brk'
|
||||
after exec is always rounded up to the next page. */
|
||||
#if __LINUX_KERNEL_VERSION >= 132355
|
14
packages/glibc/2.14/430-alpha-creat.patch
vendored
14
packages/glibc/2.14/430-alpha-creat.patch
vendored
@ -1,14 +0,0 @@
|
||||
alpha does not have a __NR_creat
|
||||
|
||||
http://bugs.gentoo.org/227275
|
||||
http://sourceware.org/bugzilla/show_bug.cgi?id=6650
|
||||
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/wordsize-64/creat64.c glibc-2.13/sysdeps/unix/sysv/linux/wordsize-64/creat64.c
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/wordsize-64/creat64.c 2007-11-10 20:34:26.000000000 +0100
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/wordsize-64/creat64.c 2009-11-13 00:50:51.000000000 +0100
|
||||
@@ -1 +1,5 @@
|
||||
/* Defined as alias for the syscall. */
|
||||
+#include <sysdep.h>
|
||||
+#ifndef __NR_creat
|
||||
+#include "../../../../../io/creat64.c"
|
||||
+#endif
|
@ -1,126 +0,0 @@
|
||||
2009-07-25 Aurelien Jarno <aurelien@aurel32.net>
|
||||
|
||||
* sysdeps/unix/sysv/linux/kernel-features.h: define
|
||||
__ASSUME_FDATASYNC.
|
||||
* sysdeps/unix/sysv/linux/fdatasync.c: New file.
|
||||
* sysdeps/unix/sysv/linux/Makefile: compile fdatasync.c with
|
||||
-fexceptions.
|
||||
* sysdeps/unix/sysv/linux/syscalls.list: Remove fdatasync.
|
||||
|
||||
sysdeps/unix/sysv/linux/Makefile | 1
|
||||
sysdeps/unix/sysv/linux/fdatasync.c | 69 ++++++++++++++++++++++++++++++
|
||||
sysdeps/unix/sysv/linux/kernel-features.h | 6 ++
|
||||
sysdeps/unix/sysv/linux/syscalls.list | 1
|
||||
4 files changed, 76 insertions(+), 1 deletion(-)
|
||||
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/Makefile glibc-2.13/sysdeps/unix/sysv/linux/Makefile
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/Makefile 2009-03-02 17:15:13.000000000 +0100
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/Makefile 2009-11-13 00:51:04.000000000 +0100
|
||||
@@ -20,6 +20,7 @@
|
||||
setfsuid setfsgid makedev epoll_pwait signalfd \
|
||||
eventfd eventfd_read eventfd_write prlimit
|
||||
|
||||
+CFLAGS-fdatasync.c = -fexceptions
|
||||
CFLAGS-gethostid.c = -fexceptions
|
||||
|
||||
sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/fdatasync.c glibc-2.13/sysdeps/unix/sysv/linux/fdatasync.c
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/fdatasync.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/fdatasync.c 2009-11-13 00:51:04.000000000 +0100
|
||||
@@ -0,0 +1,69 @@
|
||||
+/* fdatasync -- synchronize at least the data part of a file with
|
||||
+ the underlying media. Linux version.
|
||||
+
|
||||
+ Copyright (C) 2007 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.
|
||||
+
|
||||
+ 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. */
|
||||
+
|
||||
+#include <errno.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+#include <sysdep-cancel.h>
|
||||
+#include <sys/syscall.h>
|
||||
+#include <bp-checks.h>
|
||||
+
|
||||
+#include <kernel-features.h>
|
||||
+
|
||||
+#if defined __NR_fdatasync && !defined __ASSUME_FDATASYNC
|
||||
+static int __have_no_fdatasync;
|
||||
+#endif
|
||||
+
|
||||
+static int
|
||||
+do_fdatasync (int fd)
|
||||
+{
|
||||
+#ifdef __ASSUME_FDATASYNC
|
||||
+ return INLINE_SYSCALL (fdatasync, 1, fd);
|
||||
+#elif defined __NR_fdatasync
|
||||
+ if (!__builtin_expect (__have_no_fdatasync, 0))
|
||||
+ {
|
||||
+ int result = INLINE_SYSCALL (fdatasync, 1, fd);
|
||||
+ if (__builtin_expect (result, 0) != -1 || errno != ENOSYS)
|
||||
+ return result;
|
||||
+
|
||||
+ __have_no_fdatasync = 1;
|
||||
+ }
|
||||
+#endif
|
||||
+ return INLINE_SYSCALL (fsync, 1, fd);
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+__fdatasync (int fd)
|
||||
+{
|
||||
+ if (SINGLE_THREAD_P)
|
||||
+ return do_fdatasync (fd);
|
||||
+
|
||||
+ int oldtype = LIBC_CANCEL_ASYNC ();
|
||||
+
|
||||
+ int result = do_fdatasync (fd);
|
||||
+
|
||||
+ LIBC_CANCEL_RESET (oldtype);
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+weak_alias (__fdatasync, fdatasync)
|
||||
+
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/kernel-features.h glibc-2.13/sysdeps/unix/sysv/linux/kernel-features.h
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/kernel-features.h 2009-11-13 00:50:45.000000000 +0100
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/kernel-features.h 2009-11-13 00:51:04.000000000 +0100
|
||||
@@ -459,6 +459,12 @@
|
||||
# define __ASSUME_FUTEX_LOCK_PI 1
|
||||
#endif
|
||||
|
||||
+/* Support for fsyncdata syscall was added in 2.6.22 on alpha, but it
|
||||
+ was already present in 2.0 kernels on other architectures. */
|
||||
+#if (!defined __alpha || __LINUX_KERNEL_VERSION >= 0x020616)
|
||||
+# define __ASSUME_FDATASYNC 1
|
||||
+#endif
|
||||
+
|
||||
/* Support for utimensat syscall was added in 2.6.22, on SH
|
||||
only after 2.6.22-rc1. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x020616 \
|
||||
diff -durN glibc-2.13.orig/sysdeps/unix/sysv/linux/syscalls.list glibc-2.13/sysdeps/unix/sysv/linux/syscalls.list
|
||||
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/syscalls.list 2008-08-02 01:29:08.000000000 +0200
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/syscalls.list 2009-11-13 00:51:04.000000000 +0100
|
||||
@@ -11,7 +11,6 @@
|
||||
epoll_create1 EXTRA epoll_create1 i:i epoll_create1
|
||||
epoll_ctl EXTRA epoll_ctl i:iiip epoll_ctl
|
||||
epoll_wait EXTRA epoll_wait Ci:ipii epoll_wait
|
||||
-fdatasync - fdatasync Ci:i fdatasync
|
||||
flock - flock i:ii __flock flock
|
||||
fork - fork i: __libc_fork __fork fork
|
||||
get_kernel_syms EXTRA get_kernel_syms i:p get_kernel_syms
|
415
packages/glibc/2.14/560-ppc-atomic.patch
vendored
415
packages/glibc/2.14/560-ppc-atomic.patch
vendored
@ -1,415 +0,0 @@
|
||||
sniped from suse
|
||||
|
||||
Index: sysdeps/powerpc/bits/atomic.h
|
||||
===================================================================
|
||||
RCS file: /cvs/glibc/libc/sysdeps/powerpc/bits/atomic.h,v
|
||||
retrieving revision 1.17
|
||||
diff -u -a -p -r1.17 atomic.h
|
||||
|
||||
diff -durN glibc-2.13.orig/sysdeps/powerpc/bits/atomic.h glibc-2.13/sysdeps/powerpc/bits/atomic.h
|
||||
--- glibc-2.13.orig/sysdeps/powerpc/bits/atomic.h 2007-03-26 22:15:28.000000000 +0200
|
||||
+++ glibc-2.13/sysdeps/powerpc/bits/atomic.h 2009-11-13 00:51:19.000000000 +0100
|
||||
@@ -85,14 +85,14 @@
|
||||
__typeof (*(mem)) __tmp; \
|
||||
__typeof (mem) __memp = (mem); \
|
||||
__asm __volatile ( \
|
||||
- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \
|
||||
+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \
|
||||
" cmpw %0,%2\n" \
|
||||
" bne 2f\n" \
|
||||
- " stwcx. %3,0,%1\n" \
|
||||
+ " stwcx. %3,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " __ARCH_ACQ_INSTR \
|
||||
- : "=&r" (__tmp) \
|
||||
- : "b" (__memp), "r" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "+Z" (*__memp) \
|
||||
+ : "r" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp; \
|
||||
})
|
||||
@@ -102,14 +102,14 @@
|
||||
__typeof (*(mem)) __tmp; \
|
||||
__typeof (mem) __memp = (mem); \
|
||||
__asm __volatile (__ARCH_REL_INSTR "\n" \
|
||||
- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \
|
||||
+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \
|
||||
" cmpw %0,%2\n" \
|
||||
" bne 2f\n" \
|
||||
- " stwcx. %3,0,%1\n" \
|
||||
+ " stwcx. %3,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " \
|
||||
- : "=&r" (__tmp) \
|
||||
- : "b" (__memp), "r" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "+Z" (__memp) \
|
||||
+ : "r" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp; \
|
||||
})
|
||||
@@ -118,12 +118,12 @@
|
||||
({ \
|
||||
__typeof (*mem) __val; \
|
||||
__asm __volatile ( \
|
||||
- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \
|
||||
- " stwcx. %3,0,%2\n" \
|
||||
+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \
|
||||
+ " stwcx. %2,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
" " __ARCH_ACQ_INSTR \
|
||||
- : "=&r" (__val), "=m" (*mem) \
|
||||
- : "b" (mem), "r" (value), "m" (*mem) \
|
||||
+ : "=&r" (__val), "+Z" (*mem) \
|
||||
+ : "r" (value) \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
@@ -132,11 +132,11 @@
|
||||
({ \
|
||||
__typeof (*mem) __val; \
|
||||
__asm __volatile (__ARCH_REL_INSTR "\n" \
|
||||
- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \
|
||||
- " stwcx. %3,0,%2\n" \
|
||||
+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \
|
||||
+ " stwcx. %2,%y1\n" \
|
||||
" bne- 1b" \
|
||||
- : "=&r" (__val), "=m" (*mem) \
|
||||
- : "b" (mem), "r" (value), "m" (*mem) \
|
||||
+ : "=&r" (__val), "+Z" (*mem) \
|
||||
+ : "r" (value) \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
@@ -144,12 +144,12 @@
|
||||
#define __arch_atomic_exchange_and_add_32(mem, value) \
|
||||
({ \
|
||||
__typeof (*mem) __val, __tmp; \
|
||||
- __asm __volatile ("1: lwarx %0,0,%3\n" \
|
||||
- " add %1,%0,%4\n" \
|
||||
- " stwcx. %1,0,%3\n" \
|
||||
+ __asm __volatile ("1: lwarx %0,%y2\n" \
|
||||
+ " add %1,%0,%3\n" \
|
||||
+ " stwcx. %1,%y2\n" \
|
||||
" bne- 1b" \
|
||||
- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \
|
||||
- : "b" (mem), "r" (value), "m" (*mem) \
|
||||
+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \
|
||||
+ : "r" (value) \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
@@ -157,12 +157,12 @@
|
||||
#define __arch_atomic_increment_val_32(mem) \
|
||||
({ \
|
||||
__typeof (*(mem)) __val; \
|
||||
- __asm __volatile ("1: lwarx %0,0,%2\n" \
|
||||
+ __asm __volatile ("1: lwarx %0,%y1\n" \
|
||||
" addi %0,%0,1\n" \
|
||||
- " stwcx. %0,0,%2\n" \
|
||||
+ " stwcx. %0,%y1\n" \
|
||||
" bne- 1b" \
|
||||
- : "=&b" (__val), "=m" (*mem) \
|
||||
- : "b" (mem), "m" (*mem) \
|
||||
+ : "=&b" (__val), "+Z" (*mem) \
|
||||
+ : \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
@@ -170,27 +170,27 @@
|
||||
#define __arch_atomic_decrement_val_32(mem) \
|
||||
({ \
|
||||
__typeof (*(mem)) __val; \
|
||||
- __asm __volatile ("1: lwarx %0,0,%2\n" \
|
||||
+ __asm __volatile ("1: lwarx %0,%y1\n" \
|
||||
" subi %0,%0,1\n" \
|
||||
- " stwcx. %0,0,%2\n" \
|
||||
+ " stwcx. %0,%y1\n" \
|
||||
" bne- 1b" \
|
||||
- : "=&b" (__val), "=m" (*mem) \
|
||||
- : "b" (mem), "m" (*mem) \
|
||||
+ : "=&b" (__val), "+Z" (*mem) \
|
||||
+ : \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
|
||||
#define __arch_atomic_decrement_if_positive_32(mem) \
|
||||
({ int __val, __tmp; \
|
||||
- __asm __volatile ("1: lwarx %0,0,%3\n" \
|
||||
+ __asm __volatile ("1: lwarx %0,%y2\n" \
|
||||
" cmpwi 0,%0,0\n" \
|
||||
" addi %1,%0,-1\n" \
|
||||
" ble 2f\n" \
|
||||
- " stwcx. %1,0,%3\n" \
|
||||
+ " stwcx. %1,%y2\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " __ARCH_ACQ_INSTR \
|
||||
- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \
|
||||
- : "b" (mem), "m" (*mem) \
|
||||
+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \
|
||||
+ : \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
diff -durN glibc-2.13.orig/sysdeps/powerpc/powerpc32/bits/atomic.h glibc-2.13/sysdeps/powerpc/powerpc32/bits/atomic.h
|
||||
--- glibc-2.13.orig/sysdeps/powerpc/powerpc32/bits/atomic.h 2007-03-26 22:15:45.000000000 +0200
|
||||
+++ glibc-2.13/sysdeps/powerpc/powerpc32/bits/atomic.h 2009-11-13 00:51:19.000000000 +0100
|
||||
@@ -44,14 +44,14 @@
|
||||
({ \
|
||||
unsigned int __tmp; \
|
||||
__asm __volatile ( \
|
||||
- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \
|
||||
+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \
|
||||
" subf. %0,%2,%0\n" \
|
||||
" bne 2f\n" \
|
||||
- " stwcx. %3,0,%1\n" \
|
||||
+ " stwcx. %3,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " __ARCH_ACQ_INSTR \
|
||||
- : "=&r" (__tmp) \
|
||||
- : "b" (mem), "r" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "+Z" (*(mem)) \
|
||||
+ : "r" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp != 0; \
|
||||
})
|
||||
@@ -60,14 +60,14 @@
|
||||
({ \
|
||||
unsigned int __tmp; \
|
||||
__asm __volatile (__ARCH_REL_INSTR "\n" \
|
||||
- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \
|
||||
+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \
|
||||
" subf. %0,%2,%0\n" \
|
||||
" bne 2f\n" \
|
||||
- " stwcx. %3,0,%1\n" \
|
||||
+ " stwcx. %3,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " \
|
||||
- : "=&r" (__tmp) \
|
||||
- : "b" (mem), "r" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "+Z" (*(mem)) \
|
||||
+ : "r" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp != 0; \
|
||||
})
|
||||
diff -durN glibc-2.13.orig/sysdeps/powerpc/powerpc64/bits/atomic.h glibc-2.13/sysdeps/powerpc/powerpc64/bits/atomic.h
|
||||
--- glibc-2.13.orig/sysdeps/powerpc/powerpc64/bits/atomic.h 2007-03-26 22:16:03.000000000 +0200
|
||||
+++ glibc-2.13/sysdeps/powerpc/powerpc64/bits/atomic.h 2009-11-13 00:51:19.000000000 +0100
|
||||
@@ -44,14 +44,14 @@
|
||||
({ \
|
||||
unsigned int __tmp, __tmp2; \
|
||||
__asm __volatile (" clrldi %1,%1,32\n" \
|
||||
- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \
|
||||
+ "1: lwarx %0,%y2" MUTEX_HINT_ACQ "\n" \
|
||||
" subf. %0,%1,%0\n" \
|
||||
" bne 2f\n" \
|
||||
- " stwcx. %4,0,%2\n" \
|
||||
+ " stwcx. %4,%y2\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " __ARCH_ACQ_INSTR \
|
||||
- : "=&r" (__tmp), "=r" (__tmp2) \
|
||||
- : "b" (mem), "1" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \
|
||||
+ : "1" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp != 0; \
|
||||
})
|
||||
@@ -61,14 +61,14 @@
|
||||
unsigned int __tmp, __tmp2; \
|
||||
__asm __volatile (__ARCH_REL_INSTR "\n" \
|
||||
" clrldi %1,%1,32\n" \
|
||||
- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \
|
||||
+ "1: lwarx %0,%y2" MUTEX_HINT_REL "\n" \
|
||||
" subf. %0,%1,%0\n" \
|
||||
" bne 2f\n" \
|
||||
- " stwcx. %4,0,%2\n" \
|
||||
+ " stwcx. %4,%y2\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " \
|
||||
- : "=&r" (__tmp), "=r" (__tmp2) \
|
||||
- : "b" (mem), "1" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \
|
||||
+ : "1" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp != 0; \
|
||||
})
|
||||
@@ -82,14 +82,14 @@
|
||||
({ \
|
||||
unsigned long __tmp; \
|
||||
__asm __volatile ( \
|
||||
- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \
|
||||
+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \
|
||||
" subf. %0,%2,%0\n" \
|
||||
" bne 2f\n" \
|
||||
- " stdcx. %3,0,%1\n" \
|
||||
+ " stdcx. %3,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " __ARCH_ACQ_INSTR \
|
||||
- : "=&r" (__tmp) \
|
||||
- : "b" (mem), "r" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "+Z" (*(mem)) \
|
||||
+ : "r" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp != 0; \
|
||||
})
|
||||
@@ -98,14 +98,14 @@
|
||||
({ \
|
||||
unsigned long __tmp; \
|
||||
__asm __volatile (__ARCH_REL_INSTR "\n" \
|
||||
- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \
|
||||
+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \
|
||||
" subf. %0,%2,%0\n" \
|
||||
" bne 2f\n" \
|
||||
- " stdcx. %3,0,%1\n" \
|
||||
+ " stdcx. %3,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " \
|
||||
- : "=&r" (__tmp) \
|
||||
- : "b" (mem), "r" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "+Z" (*(mem)) \
|
||||
+ : "r" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp != 0; \
|
||||
})
|
||||
@@ -115,14 +115,14 @@
|
||||
__typeof (*(mem)) __tmp; \
|
||||
__typeof (mem) __memp = (mem); \
|
||||
__asm __volatile ( \
|
||||
- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \
|
||||
+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \
|
||||
" cmpd %0,%2\n" \
|
||||
" bne 2f\n" \
|
||||
- " stdcx. %3,0,%1\n" \
|
||||
+ " stdcx. %3,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " __ARCH_ACQ_INSTR \
|
||||
- : "=&r" (__tmp) \
|
||||
- : "b" (__memp), "r" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "+Z" (*__memp) \
|
||||
+ : "r" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp; \
|
||||
})
|
||||
@@ -132,14 +132,14 @@
|
||||
__typeof (*(mem)) __tmp; \
|
||||
__typeof (mem) __memp = (mem); \
|
||||
__asm __volatile (__ARCH_REL_INSTR "\n" \
|
||||
- "1: ldarx %0,0,%1" MUTEX_HINT_REL "\n" \
|
||||
+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \
|
||||
" cmpd %0,%2\n" \
|
||||
" bne 2f\n" \
|
||||
- " stdcx. %3,0,%1\n" \
|
||||
+ " stdcx. %3,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " \
|
||||
- : "=&r" (__tmp) \
|
||||
- : "b" (__memp), "r" (oldval), "r" (newval) \
|
||||
+ : "=&r" (__tmp), "+Z" (*__memp) \
|
||||
+ : "r" (oldval), "r" (newval) \
|
||||
: "cr0", "memory"); \
|
||||
__tmp; \
|
||||
})
|
||||
@@ -148,12 +148,12 @@
|
||||
({ \
|
||||
__typeof (*mem) __val; \
|
||||
__asm __volatile (__ARCH_REL_INSTR "\n" \
|
||||
- "1: ldarx %0,0,%2" MUTEX_HINT_ACQ "\n" \
|
||||
- " stdcx. %3,0,%2\n" \
|
||||
+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \
|
||||
+ " stdcx. %2,%y1\n" \
|
||||
" bne- 1b\n" \
|
||||
" " __ARCH_ACQ_INSTR \
|
||||
- : "=&r" (__val), "=m" (*mem) \
|
||||
- : "b" (mem), "r" (value), "m" (*mem) \
|
||||
+ : "=&r" (__val), "+Z" (*(mem)) \
|
||||
+ : "r" (value) \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
@@ -162,11 +162,11 @@
|
||||
({ \
|
||||
__typeof (*mem) __val; \
|
||||
__asm __volatile (__ARCH_REL_INSTR "\n" \
|
||||
- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \
|
||||
- " stdcx. %3,0,%2\n" \
|
||||
+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \
|
||||
+ " stdcx. %2,%y1\n" \
|
||||
" bne- 1b" \
|
||||
- : "=&r" (__val), "=m" (*mem) \
|
||||
- : "b" (mem), "r" (value), "m" (*mem) \
|
||||
+ : "=&r" (__val), "+Z" (*(mem)) \
|
||||
+ : "r" (value) \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
@@ -174,12 +174,12 @@
|
||||
#define __arch_atomic_exchange_and_add_64(mem, value) \
|
||||
({ \
|
||||
__typeof (*mem) __val, __tmp; \
|
||||
- __asm __volatile ("1: ldarx %0,0,%3\n" \
|
||||
- " add %1,%0,%4\n" \
|
||||
- " stdcx. %1,0,%3\n" \
|
||||
+ __asm __volatile ("1: ldarx %0,%y2\n" \
|
||||
+ " add %1,%0,%3\n" \
|
||||
+ " stdcx. %1,%y2\n" \
|
||||
" bne- 1b" \
|
||||
- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \
|
||||
- : "b" (mem), "r" (value), "m" (*mem) \
|
||||
+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \
|
||||
+ : "r" (value) \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
@@ -187,12 +187,12 @@
|
||||
#define __arch_atomic_increment_val_64(mem) \
|
||||
({ \
|
||||
__typeof (*(mem)) __val; \
|
||||
- __asm __volatile ("1: ldarx %0,0,%2\n" \
|
||||
+ __asm __volatile ("1: ldarx %0,%y1\n" \
|
||||
" addi %0,%0,1\n" \
|
||||
- " stdcx. %0,0,%2\n" \
|
||||
+ " stdcx. %0,%y1\n" \
|
||||
" bne- 1b" \
|
||||
- : "=&b" (__val), "=m" (*mem) \
|
||||
- : "b" (mem), "m" (*mem) \
|
||||
+ : "=&b" (__val), "+Z" (*(mem)) \
|
||||
+ : \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
@@ -200,27 +200,27 @@
|
||||
#define __arch_atomic_decrement_val_64(mem) \
|
||||
({ \
|
||||
__typeof (*(mem)) __val; \
|
||||
- __asm __volatile ("1: ldarx %0,0,%2\n" \
|
||||
+ __asm __volatile ("1: ldarx %0,%y1\n" \
|
||||
" subi %0,%0,1\n" \
|
||||
- " stdcx. %0,0,%2\n" \
|
||||
+ " stdcx. %0,%y1\n" \
|
||||
" bne- 1b" \
|
||||
- : "=&b" (__val), "=m" (*mem) \
|
||||
- : "b" (mem), "m" (*mem) \
|
||||
+ : "=&b" (__val), "+Z" (*(mem)) \
|
||||
+ : \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
||||
|
||||
#define __arch_atomic_decrement_if_positive_64(mem) \
|
||||
({ int __val, __tmp; \
|
||||
- __asm __volatile ("1: ldarx %0,0,%3\n" \
|
||||
+ __asm __volatile ("1: ldarx %0,%y2\n" \
|
||||
" cmpdi 0,%0,0\n" \
|
||||
" addi %1,%0,-1\n" \
|
||||
" ble 2f\n" \
|
||||
- " stdcx. %1,0,%3\n" \
|
||||
+ " stdcx. %1,%y2\n" \
|
||||
" bne- 1b\n" \
|
||||
"2: " __ARCH_ACQ_INSTR \
|
||||
- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \
|
||||
- : "b" (mem), "m" (*mem) \
|
||||
+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \
|
||||
+ : \
|
||||
: "cr0", "memory"); \
|
||||
__val; \
|
||||
})
|
@ -1,16 +0,0 @@
|
||||
diff -durN glibc-2.13.orig/elf/dl-lookup.c glibc-2.13/elf/dl-lookup.c
|
||||
--- glibc-2.13.orig/elf/dl-lookup.c 2009-03-30 23:14:32.000000000 +0200
|
||||
+++ glibc-2.13/elf/dl-lookup.c 2009-11-13 00:51:36.000000000 +0100
|
||||
@@ -301,6 +301,12 @@
|
||||
/* FALLTHROUGH */
|
||||
case STB_GLOBAL:
|
||||
success:
|
||||
+#ifdef __mips__
|
||||
+ /* HACK: MIPS marks its lazy evaluation stubs with SHN_UNDEF
|
||||
+ symbols, we skip them. */
|
||||
+ if (sym->st_shndx == SHN_UNDEF)
|
||||
+ break;
|
||||
+#endif
|
||||
/* Global definition. Just what we need. */
|
||||
result->s = sym;
|
||||
result->m = (struct link_map *) map;
|
12
packages/glibc/2.14/640-alpha-atfcts.patch
vendored
12
packages/glibc/2.14/640-alpha-atfcts.patch
vendored
@ -1,12 +0,0 @@
|
||||
--- glibc-2.13/sysdeps/unix/sysv/linux/kernel-features.h 2010-07-27 14:34:39.000000000 +0300
|
||||
+++ glibc-2.13/sysdeps/unix/sysv/linux/kernel-features.h.new 2011-03-10 18:54:37.686795979 +0200
|
||||
@@ -437,7 +437,8 @@
|
||||
the code. On PPC they were introduced in 2.6.17-rc1,
|
||||
on SH in 2.6.19-rc1. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x020611 \
|
||||
- && (!defined __sh__ || __LINUX_KERNEL_VERSION >= 0x020613)
|
||||
+ && (!defined __sh__ || __LINUX_KERNEL_VERSION >= 0x020613) \
|
||||
+ && (!defined __alpha__)
|
||||
# define __ASSUME_ATFCTS 1
|
||||
#endif
|
||||
|
12
packages/glibc/2.14/650-syslog.patch
vendored
12
packages/glibc/2.14/650-syslog.patch
vendored
@ -1,12 +0,0 @@
|
||||
diff -durN glibc-cvs-2.9.orig/misc/syslog.c glibc-cvs-2.9/misc/syslog.c
|
||||
--- glibc-cvs-2.9.orig/misc/syslog.c 2009-06-01 10:16:50.000000000 +0200
|
||||
+++ glibc-cvs-2.9/misc/syslog.c 2009-06-01 10:17:20.000000000 +0200
|
||||
@@ -152,7 +152,7 @@
|
||||
#define INTERNALLOG LOG_ERR|LOG_CONS|LOG_PERROR|LOG_PID
|
||||
/* Check for invalid bits. */
|
||||
if (pri & ~(LOG_PRIMASK|LOG_FACMASK)) {
|
||||
- syslog(INTERNALLOG,
|
||||
+ __syslog(INTERNALLOG,
|
||||
"syslog: unknown facility/priority: %x", pri);
|
||||
pri &= LOG_PRIMASK|LOG_FACMASK;
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
diff -dur glibc-cvs-2.9.orig/debug/readlink_chk.c glibc-cvs-2.9/debug/readlink_chk.c
|
||||
--- glibc-cvs-2.9.orig/debug/readlink_chk.c 2005-03-01 01:41:15.000000000 +0100
|
||||
+++ glibc-cvs-2.9/debug/readlink_chk.c 2009-06-01 10:59:37.000000000 +0200
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
ssize_t
|
||||
-__readlink_chk (const char *path, void *buf, size_t len, size_t buflen)
|
||||
+__readlink_chk (const char *path, char *buf, size_t len, size_t buflen)
|
||||
{
|
||||
if (len > buflen)
|
||||
__chk_fail ();
|
||||
diff -dur glibc-cvs-2.9.orig/debug/readlinkat_chk.c glibc-cvs-2.9/debug/readlinkat_chk.c
|
||||
--- glibc-cvs-2.9.orig/debug/readlinkat_chk.c 2006-04-24 18:56:12.000000000 +0200
|
||||
+++ glibc-cvs-2.9/debug/readlinkat_chk.c 2009-06-01 11:07:26.000000000 +0200
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
|
||||
ssize_t
|
||||
-__readlinkat_chk (int fd, const char *path, void *buf, size_t len,
|
||||
+__readlinkat_chk (int fd, const char *path, char *buf, size_t len,
|
||||
size_t buflen)
|
||||
{
|
||||
if (len > buflen)
|
628
packages/glibc/2.14/900-cpuid-include.patch
vendored
628
packages/glibc/2.14/900-cpuid-include.patch
vendored
@ -1,628 +0,0 @@
|
||||
This patch fixes another configure test issue when bootstrapping.
|
||||
sysdeps/i386/configure.in uses the obsolete AC_HEADER_CHECK macro to
|
||||
test for cpuid.h, and that macro tries to include various other
|
||||
standard headers (which come from the library, unlike cpuid.h which
|
||||
comes from the compiler, so aren't available when bootstrapping) in
|
||||
the test code it compiles. This patch changes the code to use
|
||||
AC_CHECK_HEADER, with the fourth argument used to prevent any default
|
||||
includes being used in the test.
|
||||
|
||||
Tested x86_64 (native).
|
||||
|
||||
2012-03-07 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/i386/configure.in (cpuid.h): Use AC_CHECK_HEADER with no
|
||||
default includes instead of AC_HEADER_CHECK.
|
||||
* sysdeps/i386/configure: Regenerated.
|
||||
|
||||
Origin: http://sourceware.org/ml/libc-alpha/2012-03/msg00177.html
|
||||
|
||||
diff -Nur glibc-2.14.1.orig/sysdeps/i386/configure glibc-2.14.1/sysdeps/i386/configure
|
||||
--- glibc-2.14.1.orig/sysdeps/i386/configure 2011-10-07 20:48:55.000000000 +1100
|
||||
+++ glibc-2.14.1/sysdeps/i386/configure 2012-07-25 01:23:11.799118927 +1000
|
||||
@@ -16,23 +16,6 @@
|
||||
as_fn_set_status $1
|
||||
exit $1
|
||||
} # as_fn_exit
|
||||
-# as_fn_arith ARG...
|
||||
-# ------------------
|
||||
-# Perform arithmetic evaluation on the ARGs, and store the result in the
|
||||
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
|
||||
-# must be portable across $(()) and expr.
|
||||
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
|
||||
- eval 'as_fn_arith ()
|
||||
- {
|
||||
- as_val=$(( $* ))
|
||||
- }'
|
||||
-else
|
||||
- as_fn_arith ()
|
||||
- {
|
||||
- as_val=`expr "$@" || test $? -eq 1`
|
||||
- }
|
||||
-fi # as_fn_arith
|
||||
-
|
||||
if expr a : '\(a\)' >/dev/null 2>&1 &&
|
||||
test "X`expr 00001 : '.*\(...\)'`" = X001; then
|
||||
as_expr=expr
|
||||
@@ -89,6 +72,10 @@
|
||||
chmod +x "$as_me.lineno" ||
|
||||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
|
||||
|
||||
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
|
||||
+ # already done that, so ensure we don't try to do so again and fall
|
||||
+ # in an infinite loop. This has already happened in practice.
|
||||
+ _as_can_reexec=no; export _as_can_reexec
|
||||
# Don't try to exec as it changes $[0], causing all sort of problems
|
||||
# (the dirname of $[0] is not the place where we might find the
|
||||
# original and so on. Autoconf is especially sensitive to this).
|
||||
@@ -97,42 +84,6 @@
|
||||
exit
|
||||
}
|
||||
|
||||
-# Factoring default headers for most tests.
|
||||
-ac_includes_default="\
|
||||
-#include <stdio.h>
|
||||
-#ifdef HAVE_SYS_TYPES_H
|
||||
-# include <sys/types.h>
|
||||
-#endif
|
||||
-#ifdef HAVE_SYS_STAT_H
|
||||
-# include <sys/stat.h>
|
||||
-#endif
|
||||
-#ifdef STDC_HEADERS
|
||||
-# include <stdlib.h>
|
||||
-# include <stddef.h>
|
||||
-#else
|
||||
-# ifdef HAVE_STDLIB_H
|
||||
-# include <stdlib.h>
|
||||
-# endif
|
||||
-#endif
|
||||
-#ifdef HAVE_STRING_H
|
||||
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
|
||||
-# include <memory.h>
|
||||
-# endif
|
||||
-# include <string.h>
|
||||
-#endif
|
||||
-#ifdef HAVE_STRINGS_H
|
||||
-# include <strings.h>
|
||||
-#endif
|
||||
-#ifdef HAVE_INTTYPES_H
|
||||
-# include <inttypes.h>
|
||||
-#endif
|
||||
-#ifdef HAVE_STDINT_H
|
||||
-# include <stdint.h>
|
||||
-#endif
|
||||
-#ifdef HAVE_UNISTD_H
|
||||
-# include <unistd.h>
|
||||
-#endif"
|
||||
-
|
||||
|
||||
# ac_fn_c_try_compile LINENO
|
||||
# --------------------------
|
||||
@@ -167,177 +118,11 @@
|
||||
|
||||
ac_retval=1
|
||||
fi
|
||||
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
|
||||
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||
as_fn_set_status $ac_retval
|
||||
|
||||
} # ac_fn_c_try_compile
|
||||
|
||||
-# ac_fn_c_try_cpp LINENO
|
||||
-# ----------------------
|
||||
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
|
||||
-ac_fn_c_try_cpp ()
|
||||
-{
|
||||
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
- if { { ac_try="$ac_cpp conftest.$ac_ext"
|
||||
-case "(($ac_try" in
|
||||
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
- *) ac_try_echo=$ac_try;;
|
||||
-esac
|
||||
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||
-$as_echo "$ac_try_echo"; } >&5
|
||||
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
|
||||
- ac_status=$?
|
||||
- if test -s conftest.err; then
|
||||
- grep -v '^ *+' conftest.err >conftest.er1
|
||||
- cat conftest.er1 >&5
|
||||
- mv -f conftest.er1 conftest.err
|
||||
- fi
|
||||
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
- test $ac_status = 0; } >/dev/null && {
|
||||
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||
- test ! -s conftest.err
|
||||
- }; then :
|
||||
- ac_retval=0
|
||||
-else
|
||||
- $as_echo "$as_me: failed program was:" >&5
|
||||
-sed 's/^/| /' conftest.$ac_ext >&5
|
||||
-
|
||||
- ac_retval=1
|
||||
-fi
|
||||
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
|
||||
- as_fn_set_status $ac_retval
|
||||
-
|
||||
-} # ac_fn_c_try_cpp
|
||||
-
|
||||
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
|
||||
-# -------------------------------------------------------
|
||||
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
|
||||
-# the include files in INCLUDES and setting the cache variable VAR
|
||||
-# accordingly.
|
||||
-ac_fn_c_check_header_mongrel ()
|
||||
-{
|
||||
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
- if eval "test \"\${$3+set}\"" = set; then :
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
|
||||
-$as_echo_n "checking for $2... " >&6; }
|
||||
-if eval "test \"\${$3+set}\"" = set; then :
|
||||
- $as_echo_n "(cached) " >&6
|
||||
-fi
|
||||
-eval ac_res=\$$3
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
-$as_echo "$ac_res" >&6; }
|
||||
-else
|
||||
- # Is the header compilable?
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
|
||||
-$as_echo_n "checking $2 usability... " >&6; }
|
||||
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
-/* end confdefs.h. */
|
||||
-$4
|
||||
-#include <$2>
|
||||
-_ACEOF
|
||||
-if ac_fn_c_try_compile "$LINENO"; then :
|
||||
- ac_header_compiler=yes
|
||||
-else
|
||||
- ac_header_compiler=no
|
||||
-fi
|
||||
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
|
||||
-$as_echo "$ac_header_compiler" >&6; }
|
||||
-
|
||||
-# Is the header present?
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
|
||||
-$as_echo_n "checking $2 presence... " >&6; }
|
||||
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
-/* end confdefs.h. */
|
||||
-#include <$2>
|
||||
-_ACEOF
|
||||
-if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
- ac_header_preproc=yes
|
||||
-else
|
||||
- ac_header_preproc=no
|
||||
-fi
|
||||
-rm -f conftest.err conftest.$ac_ext
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
|
||||
-$as_echo "$ac_header_preproc" >&6; }
|
||||
-
|
||||
-# So? What about this header?
|
||||
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
|
||||
- yes:no: )
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
||||
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
||||
- ;;
|
||||
- no:yes:* )
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
|
||||
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
|
||||
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
|
||||
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
|
||||
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
||||
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
||||
- ;;
|
||||
-esac
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
|
||||
-$as_echo_n "checking for $2... " >&6; }
|
||||
-if eval "test \"\${$3+set}\"" = set; then :
|
||||
- $as_echo_n "(cached) " >&6
|
||||
-else
|
||||
- eval "$3=\$ac_header_compiler"
|
||||
-fi
|
||||
-eval ac_res=\$$3
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
-$as_echo "$ac_res" >&6; }
|
||||
-fi
|
||||
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
|
||||
-
|
||||
-} # ac_fn_c_check_header_mongrel
|
||||
-
|
||||
-# ac_fn_c_try_run LINENO
|
||||
-# ----------------------
|
||||
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
|
||||
-# that executables *can* be run.
|
||||
-ac_fn_c_try_run ()
|
||||
-{
|
||||
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
- if { { ac_try="$ac_link"
|
||||
-case "(($ac_try" in
|
||||
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
- *) ac_try_echo=$ac_try;;
|
||||
-esac
|
||||
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||
-$as_echo "$ac_try_echo"; } >&5
|
||||
- (eval "$ac_link") 2>&5
|
||||
- ac_status=$?
|
||||
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
|
||||
- { { case "(($ac_try" in
|
||||
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
- *) ac_try_echo=$ac_try;;
|
||||
-esac
|
||||
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||
-$as_echo "$ac_try_echo"; } >&5
|
||||
- (eval "$ac_try") 2>&5
|
||||
- ac_status=$?
|
||||
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
- test $ac_status = 0; }; }; then :
|
||||
- ac_retval=0
|
||||
-else
|
||||
- $as_echo "$as_me: program exited with status $ac_status" >&5
|
||||
- $as_echo "$as_me: failed program was:" >&5
|
||||
-sed 's/^/| /' conftest.$ac_ext >&5
|
||||
-
|
||||
- ac_retval=$ac_status
|
||||
-fi
|
||||
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
|
||||
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
|
||||
- as_fn_set_status $ac_retval
|
||||
-
|
||||
-} # ac_fn_c_try_run
|
||||
-
|
||||
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
|
||||
# -------------------------------------------------------
|
||||
# Tests whether HEADER exists and can be compiled using the include files in
|
||||
@@ -347,7 +132,7 @@
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
|
||||
$as_echo_n "checking for $2... " >&6; }
|
||||
-if eval "test \"\${$3+set}\"" = set; then :
|
||||
+if eval \${$3+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
@@ -365,275 +150,16 @@
|
||||
eval ac_res=\$$3
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
|
||||
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||
|
||||
} # ac_fn_c_check_header_compile
|
||||
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
|
||||
# Local configure fragment for sysdeps/i386.
|
||||
|
||||
|
||||
-
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
|
||||
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
|
||||
-if test "${ac_cv_path_GREP+set}" = set; then :
|
||||
- $as_echo_n "(cached) " >&6
|
||||
-else
|
||||
- if test -z "$GREP"; then
|
||||
- ac_path_GREP_found=false
|
||||
- # Loop through the user's path and test for each of PROGNAME-LIST
|
||||
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
||||
-do
|
||||
- IFS=$as_save_IFS
|
||||
- test -z "$as_dir" && as_dir=.
|
||||
- for ac_prog in grep ggrep; do
|
||||
- for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
|
||||
-# Check for GNU ac_path_GREP and select it if it is found.
|
||||
- # Check for GNU $ac_path_GREP
|
||||
-case `"$ac_path_GREP" --version 2>&1` in
|
||||
-*GNU*)
|
||||
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
|
||||
-*)
|
||||
- ac_count=0
|
||||
- $as_echo_n 0123456789 >"conftest.in"
|
||||
- while :
|
||||
- do
|
||||
- cat "conftest.in" "conftest.in" >"conftest.tmp"
|
||||
- mv "conftest.tmp" "conftest.in"
|
||||
- cp "conftest.in" "conftest.nl"
|
||||
- $as_echo 'GREP' >> "conftest.nl"
|
||||
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
||||
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
||||
- as_fn_arith $ac_count + 1 && ac_count=$as_val
|
||||
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
|
||||
- # Best one so far, save it but keep looking for a better one
|
||||
- ac_cv_path_GREP="$ac_path_GREP"
|
||||
- ac_path_GREP_max=$ac_count
|
||||
- fi
|
||||
- # 10*(2^10) chars as input seems more than enough
|
||||
- test $ac_count -gt 10 && break
|
||||
- done
|
||||
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||
-esac
|
||||
-
|
||||
- $ac_path_GREP_found && break 3
|
||||
- done
|
||||
- done
|
||||
- done
|
||||
-IFS=$as_save_IFS
|
||||
- if test -z "$ac_cv_path_GREP"; then
|
||||
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
|
||||
- fi
|
||||
-else
|
||||
- ac_cv_path_GREP=$GREP
|
||||
-fi
|
||||
-
|
||||
-fi
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
|
||||
-$as_echo "$ac_cv_path_GREP" >&6; }
|
||||
- GREP="$ac_cv_path_GREP"
|
||||
-
|
||||
-
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
|
||||
-$as_echo_n "checking for egrep... " >&6; }
|
||||
-if test "${ac_cv_path_EGREP+set}" = set; then :
|
||||
- $as_echo_n "(cached) " >&6
|
||||
-else
|
||||
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
|
||||
- then ac_cv_path_EGREP="$GREP -E"
|
||||
- else
|
||||
- if test -z "$EGREP"; then
|
||||
- ac_path_EGREP_found=false
|
||||
- # Loop through the user's path and test for each of PROGNAME-LIST
|
||||
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
||||
-do
|
||||
- IFS=$as_save_IFS
|
||||
- test -z "$as_dir" && as_dir=.
|
||||
- for ac_prog in egrep; do
|
||||
- for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
|
||||
-# Check for GNU ac_path_EGREP and select it if it is found.
|
||||
- # Check for GNU $ac_path_EGREP
|
||||
-case `"$ac_path_EGREP" --version 2>&1` in
|
||||
-*GNU*)
|
||||
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
|
||||
-*)
|
||||
- ac_count=0
|
||||
- $as_echo_n 0123456789 >"conftest.in"
|
||||
- while :
|
||||
- do
|
||||
- cat "conftest.in" "conftest.in" >"conftest.tmp"
|
||||
- mv "conftest.tmp" "conftest.in"
|
||||
- cp "conftest.in" "conftest.nl"
|
||||
- $as_echo 'EGREP' >> "conftest.nl"
|
||||
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
||||
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
||||
- as_fn_arith $ac_count + 1 && ac_count=$as_val
|
||||
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
|
||||
- # Best one so far, save it but keep looking for a better one
|
||||
- ac_cv_path_EGREP="$ac_path_EGREP"
|
||||
- ac_path_EGREP_max=$ac_count
|
||||
- fi
|
||||
- # 10*(2^10) chars as input seems more than enough
|
||||
- test $ac_count -gt 10 && break
|
||||
- done
|
||||
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||
-esac
|
||||
-
|
||||
- $ac_path_EGREP_found && break 3
|
||||
- done
|
||||
- done
|
||||
- done
|
||||
-IFS=$as_save_IFS
|
||||
- if test -z "$ac_cv_path_EGREP"; then
|
||||
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
|
||||
- fi
|
||||
-else
|
||||
- ac_cv_path_EGREP=$EGREP
|
||||
-fi
|
||||
-
|
||||
- fi
|
||||
-fi
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
|
||||
-$as_echo "$ac_cv_path_EGREP" >&6; }
|
||||
- EGREP="$ac_cv_path_EGREP"
|
||||
-
|
||||
-
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
|
||||
-$as_echo_n "checking for ANSI C header files... " >&6; }
|
||||
-if test "${ac_cv_header_stdc+set}" = set; then :
|
||||
- $as_echo_n "(cached) " >&6
|
||||
-else
|
||||
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
-/* end confdefs.h. */
|
||||
-#include <stdlib.h>
|
||||
-#include <stdarg.h>
|
||||
-#include <string.h>
|
||||
-#include <float.h>
|
||||
-
|
||||
-int
|
||||
-main ()
|
||||
-{
|
||||
-
|
||||
- ;
|
||||
- return 0;
|
||||
-}
|
||||
-_ACEOF
|
||||
-if ac_fn_c_try_compile "$LINENO"; then :
|
||||
- ac_cv_header_stdc=yes
|
||||
-else
|
||||
- ac_cv_header_stdc=no
|
||||
-fi
|
||||
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
-
|
||||
-if test $ac_cv_header_stdc = yes; then
|
||||
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
|
||||
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
-/* end confdefs.h. */
|
||||
-#include <string.h>
|
||||
-
|
||||
-_ACEOF
|
||||
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
- $EGREP "memchr" >/dev/null 2>&1; then :
|
||||
-
|
||||
-else
|
||||
- ac_cv_header_stdc=no
|
||||
-fi
|
||||
-rm -f conftest*
|
||||
-
|
||||
-fi
|
||||
-
|
||||
-if test $ac_cv_header_stdc = yes; then
|
||||
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
|
||||
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
-/* end confdefs.h. */
|
||||
-#include <stdlib.h>
|
||||
-
|
||||
-_ACEOF
|
||||
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
- $EGREP "free" >/dev/null 2>&1; then :
|
||||
-
|
||||
-else
|
||||
- ac_cv_header_stdc=no
|
||||
-fi
|
||||
-rm -f conftest*
|
||||
-
|
||||
-fi
|
||||
-
|
||||
-if test $ac_cv_header_stdc = yes; then
|
||||
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
|
||||
- if test "$cross_compiling" = yes; then :
|
||||
- :
|
||||
-else
|
||||
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
-/* end confdefs.h. */
|
||||
-#include <ctype.h>
|
||||
-#include <stdlib.h>
|
||||
-#if ((' ' & 0x0FF) == 0x020)
|
||||
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
|
||||
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
|
||||
-#else
|
||||
-# define ISLOWER(c) \
|
||||
- (('a' <= (c) && (c) <= 'i') \
|
||||
- || ('j' <= (c) && (c) <= 'r') \
|
||||
- || ('s' <= (c) && (c) <= 'z'))
|
||||
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
|
||||
-#endif
|
||||
-
|
||||
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
|
||||
-int
|
||||
-main ()
|
||||
-{
|
||||
- int i;
|
||||
- for (i = 0; i < 256; i++)
|
||||
- if (XOR (islower (i), ISLOWER (i))
|
||||
- || toupper (i) != TOUPPER (i))
|
||||
- return 2;
|
||||
- return 0;
|
||||
-}
|
||||
-_ACEOF
|
||||
-if ac_fn_c_try_run "$LINENO"; then :
|
||||
-
|
||||
-else
|
||||
- ac_cv_header_stdc=no
|
||||
-fi
|
||||
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
- conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
-fi
|
||||
-
|
||||
-fi
|
||||
-fi
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
|
||||
-$as_echo "$ac_cv_header_stdc" >&6; }
|
||||
-if test $ac_cv_header_stdc = yes; then
|
||||
-
|
||||
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
|
||||
-
|
||||
-fi
|
||||
-
|
||||
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
|
||||
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
|
||||
- inttypes.h stdint.h unistd.h
|
||||
-do :
|
||||
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
|
||||
+ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "/* No default includes. */
|
||||
"
|
||||
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
|
||||
- cat >>confdefs.h <<_ACEOF
|
||||
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
|
||||
-_ACEOF
|
||||
-
|
||||
-fi
|
||||
-
|
||||
-done
|
||||
-
|
||||
-
|
||||
-ac_fn_c_check_header_mongrel "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default"
|
||||
-if test "x$ac_cv_header_cpuid_h" = x""yes; then :
|
||||
+if test "x$ac_cv_header_cpuid_h" = xyes; then :
|
||||
|
||||
else
|
||||
as_fn_error $? "gcc must provide the <cpuid.h> header" "$LINENO" 5
|
||||
@@ -643,7 +169,7 @@
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -g produces usable source locations for assembler-with-cpp" >&5
|
||||
$as_echo_n "checking if -g produces usable source locations for assembler-with-cpp... " >&6; }
|
||||
-if test "${libc_cv_cpp_asm_debuginfo+set}" = set; then :
|
||||
+if ${libc_cv_cpp_asm_debuginfo+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat > conftest.S <<EOF
|
||||
@@ -693,7 +219,7 @@
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE4 support" >&5
|
||||
$as_echo_n "checking for SSE4 support... " >&6; }
|
||||
-if test "${libc_cv_cc_sse4+set}" = set; then :
|
||||
+if ${libc_cv_cc_sse4+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if { ac_try='${CC-cc} -msse4 -xc /dev/null -S -o /dev/null'
|
||||
@@ -716,7 +242,7 @@
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler -mtune=i686 support" >&5
|
||||
$as_echo_n "checking for assembler -mtune=i686 support... " >&6; }
|
||||
-if test "${libc_cv_as_i686+set}" = set; then :
|
||||
+if ${libc_cv_as_i686+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if { ac_try='${CC-cc} -Wa,-mtune=i686 -xc /dev/null -S -o /dev/null'
|
||||
@@ -735,7 +261,7 @@
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX support" >&5
|
||||
$as_echo_n "checking for AVX support... " >&6; }
|
||||
-if test "${libc_cv_cc_avx+set}" = set; then :
|
||||
+if ${libc_cv_cc_avx+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if { ac_try='${CC-cc} -mavx -xc /dev/null -S -o /dev/null'
|
||||
@@ -758,7 +284,7 @@
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -mno-vzeroupper support" >&5
|
||||
$as_echo_n "checking for -mno-vzeroupper support... " >&6; }
|
||||
-if test "${libc_cv_cc_novzeroupper+set}" = set; then :
|
||||
+if ${libc_cv_cc_novzeroupper+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if { ac_try='${CC-cc} -mno-vzeroupper -xc /dev/null -S -o /dev/null'
|
||||
diff -Nur glibc-2.14.1.orig/sysdeps/i386/configure.in glibc-2.14.1/sysdeps/i386/configure.in
|
||||
--- glibc-2.14.1.orig/sysdeps/i386/configure.in 2011-10-07 20:48:55.000000000 +1100
|
||||
+++ glibc-2.14.1/sysdeps/i386/configure.in 2012-07-25 01:00:49.345025022 +1000
|
||||
@@ -1,8 +1,9 @@
|
||||
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
||||
# Local configure fragment for sysdeps/i386.
|
||||
|
||||
-AC_HEADER_CHECK([cpuid.h], ,
|
||||
- [AC_MSG_ERROR([gcc must provide the <cpuid.h> header])])
|
||||
+AC_CHECK_HEADER([cpuid.h], ,
|
||||
+ [AC_MSG_ERROR([gcc must provide the <cpuid.h> header])],
|
||||
+ [/* No default includes. */])
|
||||
|
||||
AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
|
||||
libc_cv_cpp_asm_debuginfo, [dnl
|
||||
|
@ -1,60 +0,0 @@
|
||||
commit 5874510faaf3cbd0bb112aaacab9f225002beed1
|
||||
Author: Joseph Myers <joseph@codesourcery.com>
|
||||
Date: Tue Nov 8 23:44:51 2016 +0000
|
||||
|
||||
Fix rpcgen buffer overrun (bug 20790).
|
||||
|
||||
Building with GCC 7 produces an error building rpcgen:
|
||||
|
||||
rpc_parse.c: In function 'get_prog_declaration':
|
||||
rpc_parse.c:543:25: error: may write a terminating nul past the end of the destination [-Werror=format-length=]
|
||||
sprintf (name, "%s%d", ARGNAME, num); /* default name of argument */
|
||||
~~~~^
|
||||
rpc_parse.c:543:5: note: format output between 5 and 14 bytes into a destination of size 10
|
||||
sprintf (name, "%s%d", ARGNAME, num); /* default name of argument */
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
That buffer overrun is for the case where the .x file declares a
|
||||
program with a million arguments. The strcpy two lines above can
|
||||
generate a buffer overrun much more simply for a long argument name.
|
||||
|
||||
The limit on length of line read by rpcgen (MAXLINESIZE == 1024)
|
||||
provides a bound on the buffer size needed, so this patch just changes
|
||||
the buffer size to MAXLINESIZE to avoid both possible buffer
|
||||
overruns. A testcase is added that rpcgen does not crash with a
|
||||
500-character argument name, where it previously crashed.
|
||||
|
||||
It would not at all surprise me if there are many other ways of
|
||||
crashing rpcgen with either valid or invalid input; fuzz testing would
|
||||
likely find various such bugs, though I don't think they are that
|
||||
important to fix (rpcgen is not that likely to be used with untrusted
|
||||
.x files as input). (As well as fuzz-findable bugs there are probably
|
||||
also issues when various int variables get overflowed on very large
|
||||
input.) The test infrastructure for rpcgen-not-crashing tests would
|
||||
need extending if tests are to be added for cases where rpcgen should
|
||||
produce an error, as opposed to cases where it should succeed.
|
||||
|
||||
Tested for x86_64 and x86.
|
||||
|
||||
[BZ #20790]
|
||||
* sunrpc/rpc_parse.c (get_prog_declaration): Increase buffer size
|
||||
to MAXLINESIZE.
|
||||
* sunrpc/bug20790.x: New file.
|
||||
* sunrpc/Makefile [$(run-built-tests) = yes] (rpcgen-tests): New
|
||||
variable.
|
||||
[$(run-built-tests) = yes] (tests-special): Add $(rpcgen-tests).
|
||||
[$(run-built-tests) = yes] ($(rpcgen-tests)): New rule.
|
||||
|
||||
diff --git a/sunrpc/rpc_parse.c b/sunrpc/rpc_parse.c
|
||||
index 1a1df6d8c2..505a6554cf 100644
|
||||
--- a/sunrpc/rpc_parse.c
|
||||
+++ b/sunrpc/rpc_parse.c
|
||||
@@ -521,7 +521,7 @@ static void
|
||||
get_prog_declaration (declaration * dec, defkind dkind, int num /* arg number */ )
|
||||
{
|
||||
token tok;
|
||||
- char name[10]; /* argument name */
|
||||
+ char name[MAXLINESIZE]; /* argument name */
|
||||
|
||||
if (dkind == DEF_PROGRAM)
|
||||
{
|
@ -1,62 +0,0 @@
|
||||
commit f88759ea9bd3c8d8fef28f123ba9767cb0e421a3
|
||||
Author: Joseph Myers <joseph@codesourcery.com>
|
||||
Date: Wed Dec 21 23:44:01 2016 +0000
|
||||
|
||||
Fix nss_nisplus build with mainline GCC (bug 20978).
|
||||
|
||||
glibc build with current mainline GCC fails because
|
||||
nis/nss_nisplus/nisplus-alias.c contains code
|
||||
|
||||
if (name != NULL)
|
||||
{
|
||||
*errnop = EINVAL;
|
||||
return NSS_STATUS_UNAVAIL;
|
||||
}
|
||||
|
||||
char buf[strlen (name) + 9 + tablename_len];
|
||||
|
||||
producing an error about strlen being called on a pointer that is
|
||||
always NULL (and a subsequent use of that pointer with a %s format in
|
||||
snprintf).
|
||||
|
||||
As Andreas noted, the bogus conditional comes from a 1997 change:
|
||||
|
||||
- if (name == NULL || strlen(name) > 8)
|
||||
- return NSS_STATUS_NOTFOUND;
|
||||
- else
|
||||
+ if (name != NULL || strlen(name) <= 8)
|
||||
|
||||
So the intention is clearly to return an error for NULL name.
|
||||
|
||||
This patch duly inverts the sense of the conditional. It fixes the
|
||||
build with GCC mainline, and passes usual glibc testsuite testing for
|
||||
x86_64. However, I have not tried any actual substantive nisplus
|
||||
testing, do not have an environment for such testing, and do not know
|
||||
whether it is possible that strlen (name) or tablename_len might be
|
||||
large so that the VLA for buf is actually a security issue. However,
|
||||
if it is a security issue, there are plenty of other similar instances
|
||||
in the nisplus code (that haven't been hidden by a bogus comparison
|
||||
with NULL) - and nis_table.c:__create_ib_request uses strdupa on the
|
||||
string passed to nis_list, so a local fix in the caller wouldn't
|
||||
suffice anyway (see bug 20987). (Calls to strdupa and other such
|
||||
macros that use alloca must be considered equally questionable
|
||||
regarding stack overflow issues as direct calls to alloca and VLA
|
||||
declarations.)
|
||||
|
||||
[BZ #20978]
|
||||
* nis/nss_nisplus/nisplus-alias.c (_nss_nisplus_getaliasbyname_r):
|
||||
Compare name == NULL, not name != NULL.
|
||||
|
||||
diff --git a/nis/nss_nisplus/nisplus-alias.c b/nis/nss_nisplus/nisplus-alias.c
|
||||
index 7f698b4e6d..cb5acce01d 100644
|
||||
--- a/nis/nss_nisplus/nisplus-alias.c
|
||||
+++ b/nis/nss_nisplus/nisplus-alias.c
|
||||
@@ -291,7 +291,7 @@ _nss_nisplus_getaliasbyname_r (const char *name, struct aliasent *alias,
|
||||
return status;
|
||||
}
|
||||
|
||||
- if (name != NULL)
|
||||
+ if (name == NULL)
|
||||
{
|
||||
*errnop = EINVAL;
|
||||
return NSS_STATUS_UNAVAIL;
|
20
packages/glibc/2.14/950-initfini-ppc64.patch
vendored
20
packages/glibc/2.14/950-initfini-ppc64.patch
vendored
@ -1,20 +0,0 @@
|
||||
Prevent erroneous inline optimization of initfini.s on PowerPC64.
|
||||
|
||||
The problem and the fix was reported there:
|
||||
http://sourceware.org/ml/libc-alpha/2012-01/msg00195.html
|
||||
Git commit:
|
||||
commit 1fe05ea95e1460e5e1cf1568a8ce3982f0f02de6
|
||||
Author: Ryan S. Arnold <rsa@us.ibm.com>
|
||||
Date: Tue May 3 17:26:17 2011 -0500
|
||||
|
||||
--- glibc.orig/sysdeps/powerpc/powerpc64/Makefile 2012-12-22 19:10:06.713568781 -0800
|
||||
+++ glibc/sysdeps/powerpc/powerpc64/Makefile 2012-12-22 19:10:50.318605517 -0800
|
||||
@@ -31,7 +31,7 @@
|
||||
ifneq ($(elf),no)
|
||||
# The initfini generation code doesn't work in the presence of -fPIC, so
|
||||
# we use -fpic instead which is much better.
|
||||
-CFLAGS-initfini.s += -fpic -O1
|
||||
+CFLAGS-initfini.s += -fpic -O1 -fno-inline
|
||||
endif
|
||||
endif
|
||||
|
69
packages/glibc/2.14/999-new-tools.patch
vendored
69
packages/glibc/2.14/999-new-tools.patch
vendored
@ -1,69 +0,0 @@
|
||||
diff -urpN glibc-2.14.orig/configure glibc-2.14/configure
|
||||
--- glibc-2.14.orig/configure 2011-05-30 21:12:33.000000000 -0700
|
||||
+++ glibc-2.14/configure 2017-02-08 00:38:34.469859812 -0800
|
||||
@@ -4939,7 +4939,7 @@ $as_echo_n "checking version of $CC... "
|
||||
ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
- 3.4* | 4.[0-9]* )
|
||||
+ 3.4* | [4-9].* )
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
|
||||
@@ -5002,7 +5002,7 @@ $as_echo_n "checking version of $MAKE...
|
||||
ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
- 3.79* | 3.[89]*)
|
||||
+ 3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*)
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
|
||||
@@ -5129,7 +5129,7 @@ $as_echo_n "checking version of $MAKEINF
|
||||
ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
- 4.*)
|
||||
+ [4-9].*)
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
|
||||
@@ -5189,7 +5189,7 @@ else
|
||||
# Found it, now check the version.
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $SED" >&5
|
||||
$as_echo_n "checking version of $SED... " >&6; }
|
||||
- ac_prog_version=`$SED --version 2>&1 | sed -n 's/^.*GNU sed version \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
||||
+ ac_prog_version=`$SED --version 2>&1 | sed -n 's/^.*GNU sed[^0-9]* \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
3.0[2-9]*|3.[1-9]*|[4-9]*)
|
||||
diff -urpN glibc-2.14.orig/configure.in glibc-2.14/configure.in
|
||||
--- glibc-2.14.orig/configure.in 2011-05-30 21:12:33.000000000 -0700
|
||||
+++ glibc-2.14/configure.in 2017-02-08 00:30:32.232661325 -0800
|
||||
@@ -1026,11 +1026,11 @@ fi
|
||||
# These programs are version sensitive.
|
||||
AC_CHECK_TOOL_PREFIX
|
||||
AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
|
||||
- [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
|
||||
+ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* ],
|
||||
critic_missing="$critic_missing gcc")
|
||||
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
|
||||
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
|
||||
- [3.79* | 3.[89]*], critic_missing="$critic_missing make")
|
||||
+ [3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make")
|
||||
|
||||
AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
|
||||
[GNU gettext.* \([0-9]*\.[0-9.]*\)],
|
||||
@@ -1038,10 +1038,10 @@ AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsg
|
||||
MSGFMT=: aux_missing="$aux_missing msgfmt")
|
||||
AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
|
||||
[GNU texinfo.* \([0-9][0-9.]*\)],
|
||||
- [4.*],
|
||||
+ [[4-9].*],
|
||||
MAKEINFO=: aux_missing="$aux_missing makeinfo")
|
||||
AC_CHECK_PROG_VER(SED, sed, --version,
|
||||
- [GNU sed version \([0-9]*\.[0-9.]*\)],
|
||||
+ [GNU sed[^0-9]* \([0-9]*\.[0-9.]*\)],
|
||||
[3.0[2-9]*|3.[1-9]*|[4-9]*],
|
||||
SED=: aux_missing="$aux_missing sed")
|
||||
|
1
packages/glibc/2.14/version.desc
vendored
1
packages/glibc/2.14/version.desc
vendored
@ -1 +0,0 @@
|
||||
obsolete='yes'
|
1660
packages/glibc/2.15/996-obsolete-rpc.patch
vendored
Normal file
1660
packages/glibc/2.15/996-obsolete-rpc.patch
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
origin='GNU'
|
||||
repository='git git://sourceware.org/git/glibc.git'
|
||||
mirrors='$(CT_Mirrors GNU glibc)'
|
||||
milestones='2.17 2.20 2.23 2.24'
|
||||
milestones='2.14 2.17 2.20 2.23 2.24'
|
||||
archive_formats='.tar.xz .tar.bz2 .tar.gz'
|
||||
|
@ -458,8 +458,10 @@ do_gcc_core_backend() {
|
||||
# Pass-2 should be able to get it from the headers, but for some options
|
||||
# (such as --with-long-double-128) we need to get it right even in pass-1.
|
||||
# GCC expects just two numbers separated by a dot.
|
||||
local glibc_version=`CT_GetPkgVersion GLIBC | sed 's/\([1-9][0-9]*\.[1-9][0-9]*\).*/\1/'`
|
||||
local glibc_version
|
||||
|
||||
CT_GetPkgVersion GLIBC glibc_version
|
||||
glibc_version=`echo "${glibc_version}" | sed 's/\([1-9][0-9]*\.[1-9][0-9]*\).*/\1/'`
|
||||
extra_config+=("--with-glibc-version=${glibc_version}")
|
||||
fi
|
||||
|
||||
|
@ -5,7 +5,6 @@
|
||||
do_libc_get() {
|
||||
local date
|
||||
local version
|
||||
local -a addons_list
|
||||
|
||||
CT_Fetch GLIBC
|
||||
if [ "${CT_GLIBC_USE_PORTS_EXTERNAL}" = "y" ]; then
|
||||
@ -15,13 +14,18 @@ do_libc_get() {
|
||||
}
|
||||
|
||||
do_libc_extract() {
|
||||
local addon
|
||||
|
||||
CT_ExtractPatch GLIBC
|
||||
if [ "${CT_GLIBC_USE_PORTS_EXTERNAL}" = "y" ]; then
|
||||
CT_ExtractPatch GLIBC_PORTS
|
||||
|
||||
# This may create a bogus symlink if glibc-ports is using custom
|
||||
# sources or has an overlay (and glibc is shared). However,
|
||||
# we do not support concurrent use of the source directory
|
||||
# and next run, if using different glibc-ports source, will override
|
||||
# this symlink anyway.
|
||||
CT_DoExecLog ALL ln -sf "${CT_GLIBC_PORTS_SRC_DIR}/${CT_GLIBC_PORTS_BASENAME}" \
|
||||
"${CT_GLIBC_SRC_DIR}/${CT_GLIBC_BASENAME}/ports"
|
||||
fi
|
||||
# TBD make patches for addons (ports? anything else?) uniformly using short names
|
||||
# TBD make the configure timestamp fix in all patched packages (e.g. part of CT_ExtractPatch)
|
||||
}
|
||||
|
||||
@ -124,8 +128,9 @@ do_libc_backend_once() {
|
||||
# Also, if those two are missing, iconv build breaks
|
||||
extra_config+=( --disable-debug --disable-sanity-checks )
|
||||
|
||||
# always include rpc, the user can still override it with TI-RPC
|
||||
extra_config+=( --enable-obsolete-rpc )
|
||||
if [ "${CT_GLIBC_ENABLE_OBSOLETE_RPC}" = "y" ]; then
|
||||
extra_config+=( --enable-obsolete-rpc )
|
||||
fi
|
||||
|
||||
# Add some default glibc config options if not given by user.
|
||||
# We don't need to be conditional on whether the user did set different
|
||||
|
@ -173,7 +173,7 @@ CT_PKGVERSION="crosstool-NG ${CT_VERSION}${CT_TOOLCHAIN_PKGVERSION:+ - ${CT_TOOL
|
||||
# Compute the working directories names
|
||||
CT_TARBALLS_DIR="${CT_WORK_DIR}/tarballs"
|
||||
CT_COMMON_SRC_DIR="${CT_WORK_DIR}/src"
|
||||
CT_SRC_DIR="${CT_BUILD_DIR}/src"
|
||||
CT_SRC_DIR="${CT_BUILD_TOP_DIR}/src"
|
||||
CT_BUILDTOOLS_PREFIX_DIR="${CT_BUILD_TOP_DIR}/buildtools"
|
||||
CT_STATE_DIR="${CT_WORK_DIR}/${CT_TARGET}/state"
|
||||
# Note about HOST_COMPLIBS_DIR: it's always gonna be in the buildtools dir, or a
|
||||
|
@ -155,8 +155,28 @@ CT_OnError() {
|
||||
CT_DoLog ERROR ">> For more info on this error, look at the file: '${CT_BUILD_LOG#${CT_TOP_DIR}/}'"
|
||||
fi
|
||||
CT_DoLog ERROR ">> There is a list of known issues, some with workarounds, in:"
|
||||
CT_DoLog ERROR ">> '${CT_DOC_DIR#${CT_TOP_DIR}/}/B - Known issues.txt'"
|
||||
if [ -r "${CT_DOC_DIR}/manual/B_Known_issues.md" ]; then
|
||||
CT_DoLog ERROR ">> '${CT_DOC_DIR#${CT_TOP_DIR}/}/manual/B_Known_issues.md'"
|
||||
else
|
||||
CT_DoLog ERROR ">> https://crosstool-ng.github.io/docs/known-issues/"
|
||||
fi
|
||||
CT_DoLog ERROR ">>"
|
||||
if [ -n "${CT_EXPERIMENTAL}" ]; then
|
||||
CT_DoLog ERROR ">> NOTE: Your configuration includes features marked EXPERIMENTAL."
|
||||
CT_DoLog ERROR ">> Before submitting a bug report, try to reproduce it without enabling"
|
||||
CT_DoLog ERROR ">> any experimental features. Otherwise, you'll need to debug it"
|
||||
CT_DoLog ERROR ">> and present an explanation why it is a bug in crosstool-NG - or"
|
||||
CT_DoLog ERROR ">> preferably, a fix."
|
||||
CT_DoLog ERROR ">>"
|
||||
fi
|
||||
if [ "${CT_PATCH_ORDER}" != "bundled" ]; then
|
||||
CT_DoLog ERROR ">> NOTE: You configuration uses non-default patch sets. Please"
|
||||
CT_DoLog ERROR ">> select 'bundled' as the set of patches applied and attempt"
|
||||
CT_DoLog ERROR ">> to reproduce this issue. Issues reported with other patch"
|
||||
CT_DoLog ERROR ">> set selections (none, local, bundled+local) are going to be"
|
||||
CT_DoLog ERROR ">> closed without explanation."
|
||||
CT_DoLog ERROR ">>"
|
||||
fi
|
||||
CT_DoLog ERROR ">> If you feel this is a bug in crosstool-NG, report it at:"
|
||||
CT_DoLog ERROR ">> https://github.com/crosstool-ng/crosstool-ng/issues/"
|
||||
CT_DoLog ERROR ">>"
|
||||
@ -178,7 +198,7 @@ trap CT_OnError ERR
|
||||
set -E
|
||||
|
||||
# Make pipes fail on the _first_ failed command
|
||||
# Not supported on bash < 3.x, but we need it, so drop the obsoleting bash-2.x
|
||||
# Not supported on bash < 3.x, but we need it, so drop the obsolete bash-2.x
|
||||
set -o pipefail
|
||||
|
||||
# Don't hash commands' locations, and search every time it is requested.
|
||||
@ -1678,6 +1698,7 @@ CT_PackageRun()
|
||||
{
|
||||
local sym="${1}"
|
||||
local run="${2}"
|
||||
local src_dir="/unknown-src-dir"
|
||||
local v
|
||||
|
||||
# Get rid of our arguments
|
||||
@ -1712,7 +1733,7 @@ CT_PackageRun()
|
||||
# Save certain variables that may be modified by the callback.
|
||||
# Fetching the sources is run in the main process, so no need to
|
||||
# use CT_EnvModify.
|
||||
for v in devel_branch devel_revision basename version; do
|
||||
for v in devel_branch devel_revision basename version src_dir; do
|
||||
eval "[ \"\${${v}}\" != \"\${CT_${use}_${v^^}}\" ] || continue"
|
||||
eval "CT_${use}_${v^^}=\${${v}}"
|
||||
eval "CT_DoLog DEBUG \"Override CT_${use}_${v^^}=\${CT_${use}_${v^^}}\""
|
||||
@ -1790,7 +1811,7 @@ CT_DoFetch()
|
||||
elif [ "${src_custom}" = "y" ]; then
|
||||
# Will be handled during extraction/patching
|
||||
version="local"
|
||||
basename="${pkg_name}-${version}"
|
||||
basename="${dir_name}"
|
||||
:;
|
||||
else
|
||||
CT_Abort "No known source for ${pkg_name}"
|
||||
@ -1857,22 +1878,46 @@ CT_DoExtractPatch()
|
||||
local -a patch_dirs
|
||||
local bundled_patch_dir
|
||||
local local_patch_dir
|
||||
local overlay
|
||||
|
||||
# If using overlay, prepare it first - we need to determine where to unpack
|
||||
# this component.
|
||||
if [ "${CT_TARGET_USE_OVERLAY}" = "y" -a ! -d "${CT_BUILD_DIR}/overlay" ]; then
|
||||
CT_DoExecLog ALL mkdir -p "${CT_BUILD_DIR}/overlay"
|
||||
overlay="${CT_OVERLAY_LOCATION}/${CT_ARCH}_${CT_OVERLAY_NAME:-overlay}"
|
||||
ext=`CT_GetFileExtension "${overlay}"`
|
||||
if [ ! -r "${overlay}${ext}" ]; then
|
||||
CT_Abort "Overlay ${overlay} not found"
|
||||
fi
|
||||
CT_Extract "${overlay}${ext}" "${CT_BUILD_DIR}/overlay"
|
||||
fi
|
||||
|
||||
# Can use common location only if using non-custom source, only bundled patches
|
||||
# and no overlays. Otherwise, this source directory is custom-tailored for this
|
||||
# particular configuration and cannot be reused by different configurations.
|
||||
if [ "${src_custom}" != "y" -a \
|
||||
"${CT_PATCH_ORDER}" = "bundled" -a \
|
||||
! -d "${CT_BUILD_DIR}/overlay/${dir_name}" ]; then
|
||||
src_dir="${CT_COMMON_SRC_DIR}"
|
||||
else
|
||||
src_dir="${CT_SRC_DIR}"
|
||||
fi
|
||||
|
||||
if [ "${src_custom}" != "y" ]; then
|
||||
# Non-custom: extract to shared location
|
||||
# If the previous extraction/patching was aborted, clean up.
|
||||
if [ -r "${CT_COMMON_SRC_DIR}/.${basename}.extracting" -o \
|
||||
-r "${CT_COMMON_SRC_DIR}/.${basename}.patching" ]; then
|
||||
if [ -r "${src_dir}/.${basename}.extracting" -o \
|
||||
-r "${src_dir}/.${basename}.patching" ]; then
|
||||
CT_DoLog WARN "Sources for ${basename} were partially extracted/patched, cleaning up"
|
||||
CT_DoExecLog ALL rm -rf "${CT_COMMON_SRC_DIR}/${basename}"
|
||||
CT_DoExecLog ALL rm -f "${CT_COMMON_SRC_DIR}/.${basename}".*
|
||||
CT_DoExecLog ALL rm -rf "${src_dir}/${basename}"
|
||||
CT_DoExecLog ALL rm -f "${src_dir}/.${basename}".*
|
||||
fi
|
||||
|
||||
if [ -f "${CT_COMMON_SRC_DIR}/.${basename}.extracted" ]; then
|
||||
if [ -f "${src_dir}/.${basename}.extracted" ]; then
|
||||
CT_DoLog DEBUG "Already extracted ${basename}"
|
||||
else
|
||||
CT_DoLog EXTRA "Extracting ${basename}"
|
||||
CT_DoExecLog ALL touch "${CT_COMMON_SRC_DIR}/.${basename}.extracting"
|
||||
CT_DoExecLog ALL touch "${src_dir}/.${basename}.extracting"
|
||||
if [ "${src_release}" = "y" ]; then
|
||||
archive="${archive_filename}"
|
||||
else
|
||||
@ -1881,21 +1926,21 @@ CT_DoExtractPatch()
|
||||
# TBD save/discover the extension while fetching
|
||||
ext=`CT_GetFileExtension "${CT_TARBALLS_DIR}/${archive}"`
|
||||
if [ "${archive_dirname}" = "." ]; then
|
||||
CT_mkdir_pushd "${CT_COMMON_SRC_DIR}/${basename}"
|
||||
CT_Extract "${CT_TARBALLS_DIR}/${archive}${ext}" "${CT_COMMON_SRC_DIR}/${basename}"
|
||||
CT_mkdir_pushd "${src_dir}/${basename}"
|
||||
CT_Extract "${CT_TARBALLS_DIR}/${archive}${ext}" "${src_dir}/${basename}"
|
||||
CT_Popd
|
||||
else
|
||||
CT_Extract "${CT_TARBALLS_DIR}/${archive}${ext}" "${CT_COMMON_SRC_DIR}"
|
||||
CT_Extract "${CT_TARBALLS_DIR}/${archive}${ext}" "${src_dir}"
|
||||
fi
|
||||
CT_DoExecLog ALL touch "${CT_COMMON_SRC_DIR}/.${basename}.extracted"
|
||||
CT_DoExecLog ALL rm -f "${CT_COMMON_SRC_DIR}/.${basename}.extracting"
|
||||
CT_DoExecLog ALL touch "${src_dir}/.${basename}.extracted"
|
||||
CT_DoExecLog ALL rm -f "${src_dir}/.${basename}.extracting"
|
||||
fi
|
||||
|
||||
if [ -f "${CT_COMMON_SRC_DIR}/.${basename}.patched" ]; then
|
||||
if [ -f "${src_dir}/.${basename}.patched" ]; then
|
||||
CT_DoLog DEBUG "Already patched ${basename}"
|
||||
else
|
||||
CT_DoLog EXTRA "Patching ${basename}"
|
||||
CT_DoExecLog ALL touch "${CT_COMMON_SRC_DIR}/.${basename}.patching"
|
||||
CT_DoExecLog ALL touch "${src_dir}/.${basename}.patching"
|
||||
|
||||
bundled_patch_dir="${CT_LIB_DIR}/packages/${pkg_name}/${version}"
|
||||
local_patch_dir="${CT_LOCAL_PATCH_DIR}/${pkg_name}/${version}"
|
||||
@ -1908,7 +1953,7 @@ CT_DoExtractPatch()
|
||||
none) patch_dirs=;;
|
||||
esac
|
||||
|
||||
CT_Pushd "${CT_COMMON_SRC_DIR}/${basename}"
|
||||
CT_Pushd "${src_dir}/${basename}"
|
||||
for d in "${patch_dirs[@]}"; do
|
||||
CT_DoLog DEBUG "Looking for patches in '${d}'..."
|
||||
if [ -n "${d}" -a -d "${d}" ]; then
|
||||
@ -1945,8 +1990,8 @@ CT_DoExtractPatch()
|
||||
|
||||
CT_Popd
|
||||
|
||||
CT_DoExecLog ALL touch "${CT_COMMON_SRC_DIR}/.${basename}.patched"
|
||||
CT_DoExecLog ALL rm -f "${CT_COMMON_SRC_DIR}/.${basename}.patching"
|
||||
CT_DoExecLog ALL touch "${src_dir}/.${basename}.patched"
|
||||
CT_DoExecLog ALL rm -f "${src_dir}/.${basename}.patching"
|
||||
fi
|
||||
else
|
||||
CT_DoLog WARN "${pkg_name}: using custom location, no patches applied"
|
||||
@ -1954,50 +1999,33 @@ CT_DoExtractPatch()
|
||||
|
||||
# Symlink/copy/overlay into per-target source directory
|
||||
if [ "${src_custom}" = "y" ]; then
|
||||
# Custom sources: unpack or copy into per-target directory
|
||||
if [ "${CT_TARGET_USE_OVERLAY}" ]; then
|
||||
CT_DoLog WARN "${pkg_name}: using custom location, no overlays applied"
|
||||
fi
|
||||
# Custom sources: unpack or copy into per-target directory. Note that
|
||||
# ${src_dir} is never ${CT_COMMON_SRC_DIR} in this case.
|
||||
if [ -d "${custom_location}" ]; then
|
||||
CT_DoExecLog ALL cp -av "${custom_location}" "${CT_SRC_DIR}/${dir_name}"
|
||||
CT_DoExecLog ALL cp -av "${custom_location}" "${src_dir}/${dir_name}"
|
||||
elif [ -f "${custom_location}" ]; then
|
||||
# Assume "foo.tar.gz" (or likes) contain the "foo" directory
|
||||
local bn
|
||||
|
||||
CT_Extract "${custom_location}" "${CT_SRC_DIR}"
|
||||
CT_Extract "${custom_location}" "${src_dir}"
|
||||
bn=`CT_GetFileBasename "${custom_location##*/}"`
|
||||
CT_TestOrAbort "Unknown file extension: ${custom_location}" -n "${bn}"
|
||||
CT_DoExecLog ALL mv -v "${CT_SRC_DIR}/${bn%${ext}}" "${CT_SRC_DIR}/${dir_name}"
|
||||
CT_DoExecLog ALL mv -v "${src_dir}/${bn%${ext}}" "${src_dir}/${dir_name}"
|
||||
else
|
||||
CT_Abort "Neither file nor directory: ${custom_location}"
|
||||
fi
|
||||
elif [ "${CT_TARGET_USE_OVERLAY}" = "y" ]; then
|
||||
# Possibly has overlays; check and if it has, copy from common source and apply
|
||||
# overlays.
|
||||
local overlay
|
||||
|
||||
if [ ! -d "${CT_BUILD_DIR}/overlay" ]; then
|
||||
CT_DoExecLog ALL mkdir -p "${CT_BUILD_DIR}/overlay"
|
||||
overlay="${CT_OVERLAY_LOCATION}/${CT_ARCH}_${CT_OVERLAY_NAME:-overlay}"
|
||||
ext=`CT_GetFileExtension "${overlay}"`
|
||||
if [ ! -r "${overlay}${ext}" ]; then
|
||||
CT_Abort "Overlay ${overlay} not found"
|
||||
fi
|
||||
CT_Extract "${overlay}${ext}" "${CT_BUILD_DIR}/overlay"
|
||||
fi
|
||||
|
||||
if [ -d "${CT_BUILD_DIR}/overlay/${dir_name}" ]; then
|
||||
CT_DoExecLog ALL cp -a "${CT_COMMON_SRC_DIR}/${basename}" "${CT_SRC_DIR}/${dir_name}"
|
||||
tar cf - -C "${CT_BUILD_DIR}/overlay" "${dir_name}" | \
|
||||
CT_DoExecLog FILE tar xvf - -C "${CT_SRC_DIR}"
|
||||
else
|
||||
# No overlay for this component, just symlink
|
||||
CT_DoExecLog ALL ln -s "${CT_COMMON_SRC_DIR}/${basename}" "${CT_SRC_DIR}/${dir_name}"
|
||||
fi
|
||||
else
|
||||
# Common source, just symlink
|
||||
CT_DoExecLog ALL ln -s "${CT_COMMON_SRC_DIR}/${basename}" "${CT_SRC_DIR}/${dir_name}"
|
||||
CT_DoExecLog ALL ln -s "${src_dir}/${basename}" "${CT_SRC_DIR}/${dir_name}"
|
||||
fi
|
||||
|
||||
# Check if it has overlays and if it has, apply
|
||||
if [ "${CT_TARGET_USE_OVERLAY}" = "y" -a \
|
||||
-d "${CT_BUILD_DIR}/overlay/${dir_name}" ]; then
|
||||
tar cf - -C "${CT_BUILD_DIR}/overlay" "${dir_name}" | \
|
||||
CT_DoExecLog FILE tar xvf - -C "${src_dir}"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# Extract/copy the sources to the shared source directory, then either symlink
|
||||
@ -2011,13 +2039,12 @@ CT_ExtractPatch()
|
||||
CT_PackageRun "${pkg}" CT_DoExtractPatch "$@"
|
||||
}
|
||||
|
||||
CT_DoGetPkgVersion()
|
||||
{
|
||||
echo "${version}"
|
||||
}
|
||||
|
||||
# Get the version of the package (main or fork)
|
||||
# Set the specified variable to the version of the package (main or fork)
|
||||
# Usage: CT_GetPkgVersion PKG VAR
|
||||
CT_GetPkgVersion()
|
||||
{
|
||||
CT_PackageRun "${1}" CT_DoGetPkgVersion
|
||||
local rv
|
||||
__do_GetPkgVersion() { rv="${version}"; }
|
||||
CT_PackageRun "${1}" __do_GetPkgVersion
|
||||
eval "${2}=\"${rv}\""
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user