From 712e333d57c7915e88505e20cdd4217818cd5c01 Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Mon, 3 Dec 2012 14:54:28 +0100 Subject: remove obsolete patches Signed-off-by: Michael Olbrich --- patches/binutils-2.17/generic/series | 4 - patches/binutils-2.17/generic/tc-arm.diff | 102 -- .../generic/uclibc/100-uclibc-conf.patch | 188 --- .../generic/uclibc/110-arm-eabi-conf.patch | 47 - patches/gcc-4.0.4/generic/arm-softfloat.diff | 38 - .../gcc-4.0.4/generic/gcc-4.0-arm-bigendian.patch | 83 -- .../gcc-4.0.4/generic/gcc_collect2-fix-open.diff | 38 - patches/gcc-4.0.4/generic/series | 3 - patches/gcc-4.5.2/0001-no-host-includes.diff | 54 - patches/gcc-4.5.2/0002-arm-softfloat.diff | 44 - patches/gcc-4.5.2/0003-pr39429.diff | 38 - patches/gcc-4.5.2/0004-uclibc-conf.patch | 46 - patches/gcc-4.5.2/0005-missing-execinfo_h.patch | 21 - patches/gcc-4.5.2/0006-c99-snprintf.patch | 21 - .../gcc-4.5.2/0007-libmudflap-susv3-legacy.patch | 57 - .../0008-arm_insn-opinit-RTX_CODE-fixup.patch | 45 - patches/gcc-4.5.2/0009-short-enums.diff | 53 - .../gcc-4.5.2/0010-all_gcc-trampolinewarn.patch | 44 - .../gcc-4.5.2/0011-flatten-switch-stmt-00.patch | 81 -- patches/gcc-4.5.2/0012-libiberty-pic.patch | 22 - patches/gcc-4.5.2/0013-libstdc++-pic.patch | 56 - patches/gcc-4.5.2/0014-arm-bswapsi2.patch | 19 - .../0015-Fix-libjava-cross-build-issue.patch | 201 --- patches/gcc-4.5.2/0016-Fix-ICE-on-ARM.patch | 51 - patches/gcc-4.5.2/series | 25 - .../0001-no-host-includes.diff | 54 - .../0002-arm-softfloat.diff | 44 - patches/gcc-linaro-4.5-2011.02-0/0003-pr39429.diff | 38 - .../0004-uclibc-conf.patch | 46 - .../0005-missing-execinfo_h.patch | 21 - .../0006-c99-snprintf.patch | 21 - .../0007-libmudflap-susv3-legacy.patch | 57 - .../0008-arm_insn-opinit-RTX_CODE-fixup.patch | 45 - .../gcc-linaro-4.5-2011.02-0/0009-short-enums.diff | 53 - .../0010-all_gcc-trampolinewarn.patch | 44 - .../0011-flatten-switch-stmt-00.patch | 81 -- .../0012-libiberty-pic.patch | 22 - .../0013-libstdc++-pic.patch | 56 - .../0015-Fix-libjava-cross-build-issue.patch | 201 --- .../0016-debian-patch-revert-issue1259.patch | 40 - patches/gcc-linaro-4.5-2011.02-0/series | 24 - patches/gcc-linaro-4.6-2011.11/series | 20 - patches/glibc-2.13/0001-install-lib-all.patch | 45 - .../0002-fix-build-with-static-nss.patch | 55 - .../glibc-2.13/0003-glibc-configure-old-gcc.patch | 17 - .../0004-configure-in-sane-readelf.patch | 35 - patches/glibc-2.13/0005-stdlib-longlong.patch | 37 - patches/glibc-2.13/0006-respect-env-CPPFLAGS.patch | 36 - patches/glibc-2.13/0007-i586-chk.patch | 32 - .../0008-i386-x86_64-revert-clone-cfi.patch | 55 - patches/glibc-2.13/0009-queue-header-updates.patch | 89 -- patches/glibc-2.13/0010-manual-no-perl.patch | 29 - .../glibc-2.13/0011-localedef-fix-trampoline.patch | 74 -- patches/glibc-2.13/0012-posix-awk.patch | 23 - patches/glibc-2.13/0013-resolv-dynamic.patch | 44 - patches/glibc-2.13/0014-section-comments.patch | 29 - patches/glibc-2.13/0015-no-inline-gmon.patch | 38 - patches/glibc-2.13/0016-china.patch | 35 - patches/glibc-2.13/0017-new-valencian-locale.patch | 122 -- patches/glibc-2.13/0018-strict-aliasing.patch | 91 -- patches/glibc-2.13/0019-undefine-__i686.patch | 49 - .../glibc-2.13/0020-dl_execstack-PaX-support.patch | 73 -- patches/glibc-2.13/0021-pre20040117-pt_pax.patch | 35 - patches/glibc-2.13/0022-fpscr_values.patch | 42 - patches/glibc-2.13/0023-Fix-prelinking.patch | 54 - ...zed-string-functions-for-NEON-from-Linaro.patch | 1295 -------------------- ...dden_builtin_def-for-all-cortex-functions.patch | 79 -- patches/glibc-2.13/series | 25 - ...Handle-future-binutils-versions-correctly.patch | 75 -- .../glibc-2.3.6/generic/csu_Makefile-quotes.diff | 22 - .../gentoo/1090_all_glibc-2.3.6-fix-pr631.patch | 52 - .../glibc-2.3.6/generic/make-install-lib-all.patch | 26 - patches/glibc-2.3.6/generic/series | 8 - .../generic/sysdeps_arm-fp-byteorder.diff | 205 ---- .../sysdeps_arm_dl-machine_h-fix_bad_pc24.diff | 35 - ...sdeps_unix_sysv_linux_arm_ioperm_c-BUS_ISA.diff | 53 - ...sysdeps_unix_sysv_linux_arm_socket_S-alias.diff | 64 - ...ix-unwinding-through-Thumb-2-system-calls.patch | 241 ---- patches/glibc-ports-2.13/series | 1 - ...Select-proper-defconfig-for-crosscompiles.patch | 42 - patches/linux-2.6.18/generic/series | 1 - 81 files changed, 5611 deletions(-) delete mode 100644 patches/binutils-2.17/generic/series delete mode 100644 patches/binutils-2.17/generic/tc-arm.diff delete mode 100644 patches/binutils-2.17/generic/uclibc/100-uclibc-conf.patch delete mode 100644 patches/binutils-2.17/generic/uclibc/110-arm-eabi-conf.patch delete mode 100644 patches/gcc-4.0.4/generic/arm-softfloat.diff delete mode 100644 patches/gcc-4.0.4/generic/gcc-4.0-arm-bigendian.patch delete mode 100644 patches/gcc-4.0.4/generic/gcc_collect2-fix-open.diff delete mode 100644 patches/gcc-4.0.4/generic/series delete mode 100644 patches/gcc-4.5.2/0001-no-host-includes.diff delete mode 100644 patches/gcc-4.5.2/0002-arm-softfloat.diff delete mode 100644 patches/gcc-4.5.2/0003-pr39429.diff delete mode 100644 patches/gcc-4.5.2/0004-uclibc-conf.patch delete mode 100644 patches/gcc-4.5.2/0005-missing-execinfo_h.patch delete mode 100644 patches/gcc-4.5.2/0006-c99-snprintf.patch delete mode 100644 patches/gcc-4.5.2/0007-libmudflap-susv3-legacy.patch delete mode 100644 patches/gcc-4.5.2/0008-arm_insn-opinit-RTX_CODE-fixup.patch delete mode 100644 patches/gcc-4.5.2/0009-short-enums.diff delete mode 100644 patches/gcc-4.5.2/0010-all_gcc-trampolinewarn.patch delete mode 100644 patches/gcc-4.5.2/0011-flatten-switch-stmt-00.patch delete mode 100644 patches/gcc-4.5.2/0012-libiberty-pic.patch delete mode 100644 patches/gcc-4.5.2/0013-libstdc++-pic.patch delete mode 100644 patches/gcc-4.5.2/0014-arm-bswapsi2.patch delete mode 100644 patches/gcc-4.5.2/0015-Fix-libjava-cross-build-issue.patch delete mode 100644 patches/gcc-4.5.2/0016-Fix-ICE-on-ARM.patch delete mode 100644 patches/gcc-4.5.2/series delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0001-no-host-includes.diff delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0002-arm-softfloat.diff delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0003-pr39429.diff delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0004-uclibc-conf.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0005-missing-execinfo_h.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0006-c99-snprintf.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0007-libmudflap-susv3-legacy.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0008-arm_insn-opinit-RTX_CODE-fixup.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0009-short-enums.diff delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0010-all_gcc-trampolinewarn.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0011-flatten-switch-stmt-00.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0012-libiberty-pic.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0013-libstdc++-pic.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0015-Fix-libjava-cross-build-issue.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/0016-debian-patch-revert-issue1259.patch delete mode 100644 patches/gcc-linaro-4.5-2011.02-0/series delete mode 100644 patches/gcc-linaro-4.6-2011.11/series delete mode 100644 patches/glibc-2.13/0001-install-lib-all.patch delete mode 100644 patches/glibc-2.13/0002-fix-build-with-static-nss.patch delete mode 100644 patches/glibc-2.13/0003-glibc-configure-old-gcc.patch delete mode 100644 patches/glibc-2.13/0004-configure-in-sane-readelf.patch delete mode 100644 patches/glibc-2.13/0005-stdlib-longlong.patch delete mode 100644 patches/glibc-2.13/0006-respect-env-CPPFLAGS.patch delete mode 100644 patches/glibc-2.13/0007-i586-chk.patch delete mode 100644 patches/glibc-2.13/0008-i386-x86_64-revert-clone-cfi.patch delete mode 100644 patches/glibc-2.13/0009-queue-header-updates.patch delete mode 100644 patches/glibc-2.13/0010-manual-no-perl.patch delete mode 100644 patches/glibc-2.13/0011-localedef-fix-trampoline.patch delete mode 100644 patches/glibc-2.13/0012-posix-awk.patch delete mode 100644 patches/glibc-2.13/0013-resolv-dynamic.patch delete mode 100644 patches/glibc-2.13/0014-section-comments.patch delete mode 100644 patches/glibc-2.13/0015-no-inline-gmon.patch delete mode 100644 patches/glibc-2.13/0016-china.patch delete mode 100644 patches/glibc-2.13/0017-new-valencian-locale.patch delete mode 100644 patches/glibc-2.13/0018-strict-aliasing.patch delete mode 100644 patches/glibc-2.13/0019-undefine-__i686.patch delete mode 100644 patches/glibc-2.13/0020-dl_execstack-PaX-support.patch delete mode 100644 patches/glibc-2.13/0021-pre20040117-pt_pax.patch delete mode 100644 patches/glibc-2.13/0022-fpscr_values.patch delete mode 100644 patches/glibc-2.13/0023-Fix-prelinking.patch delete mode 100644 patches/glibc-2.13/0024-optimized-string-functions-for-NEON-from-Linaro.patch delete mode 100644 patches/glibc-2.13/0025-add-libc_hidden_builtin_def-for-all-cortex-functions.patch delete mode 100644 patches/glibc-2.13/series delete mode 100644 patches/glibc-2.3.6/generic/0001-Handle-future-binutils-versions-correctly.patch delete mode 100644 patches/glibc-2.3.6/generic/csu_Makefile-quotes.diff delete mode 100644 patches/glibc-2.3.6/generic/gentoo/1090_all_glibc-2.3.6-fix-pr631.patch delete mode 100644 patches/glibc-2.3.6/generic/make-install-lib-all.patch delete mode 100644 patches/glibc-2.3.6/generic/series delete mode 100644 patches/glibc-2.3.6/generic/sysdeps_arm-fp-byteorder.diff delete mode 100644 patches/glibc-2.3.6/generic/sysdeps_arm_dl-machine_h-fix_bad_pc24.diff delete mode 100644 patches/glibc-2.3.6/generic/sysdeps_unix_sysv_linux_arm_ioperm_c-BUS_ISA.diff delete mode 100644 patches/glibc-2.3.6/generic/sysdeps_unix_sysv_linux_arm_socket_S-alias.diff delete mode 100644 patches/glibc-ports-2.13/0001-Revert-fix-unwinding-through-Thumb-2-system-calls.patch delete mode 100644 patches/glibc-ports-2.13/series delete mode 100644 patches/linux-2.6.18/generic/0001--POWERPC-Select-proper-defconfig-for-crosscompiles.patch delete mode 100644 patches/linux-2.6.18/generic/series diff --git a/patches/binutils-2.17/generic/series b/patches/binutils-2.17/generic/series deleted file mode 100644 index a577f60..0000000 --- a/patches/binutils-2.17/generic/series +++ /dev/null @@ -1,4 +0,0 @@ -tc-arm.diff - -uclibc/100-uclibc-conf.patch -uclibc/110-arm-eabi-conf.patch diff --git a/patches/binutils-2.17/generic/tc-arm.diff b/patches/binutils-2.17/generic/tc-arm.diff deleted file mode 100644 index c3d51ef..0000000 --- a/patches/binutils-2.17/generic/tc-arm.diff +++ /dev/null @@ -1,102 +0,0 @@ -# -# Submitted-By: Robert Schwebel, 2006-12-03 -# Committed-By: Robert Schwebel -# -# Error: -# -# rsc@isonoe:/media/rscusb1_plain/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk/build-target/glibc-2.5/elf$ -# PATH=/media/rscusb1_plain/tmp//armeb-xscale-linux-gnueabi/gcc-4.1.1-glibc-2.5-kernel-2.6.18/bin:/media/rscusb1_plain/tmp//armeb-xscale -# -linux-gnueabi/gcc-4.1.1-glibc-2.5-kernel-2.6.18/usr/bin:$PATH armeb-xscale-linux-gnueabi-gcc dl-lookup.c -c -std=gnu99 -O2 -Wall -# -Winline -Wwrite-strings -fmerge-all-constants -g -Wstrict-prototypes -pg -fexceptions -fasynchronous-unwind-tables -I../include -# -I/media/rscusb1_plain/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk/build-target/glibc-2.5-build/elf -# -I/media/rscusb1_plain/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk/build-target/glibc-2.5-build -I../ports/sysdeps/arm/elf -# -I../ports/sysdeps/unix/sysv/linux/arm/eabi/nptl -I../ports/sysdeps/unix/sysv/linux/arm/eabi -# -I../ports/sysdeps/unix/sysv/linux/arm/nptl -I../ports/sysdeps/unix/sysv/linux/arm -I../ports/sysdeps/unix/sysv/linux -# -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -# -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv -# -I../sysdeps/unix/sysv -I../ports/sysdeps/unix/arm -I../ports/sysdeps/unix -I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -# -I../ports/sysdeps/arm/eabi -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../ports -I../nptl -I.. -I../libio -# -I. -nostdinc -isystem -# /media/rscusb1_plain/tmp/armeb-xscale-linux-gnueabi/gcc-4.1.1-glibc-2.5-kernel-2.6.18/bin/../lib/gcc/armeb-xscale-linux-gnueabi/4.1.1/ -# include -isystem -# /media/rscusb1_plain/tmp//armeb-xscale-linux-gnueabi/gcc-4.1.1-glibc-2.5-kernel-2.6.18/sysroot-armeb-xscale-linux-gnueabi/usr/include -# -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPROF -o -# /media/rscusb1_plain/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk/build-target/glibc-2.5-build/elf/dl-lookup.op -MD -MP -MF -# /media/rscusb1_plain/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk/build-target/glibc-2.5-build/elf/dl-lookup.op.dt -MT -# /media/rscusb1_plain/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk/build-target/glibc-2.5-build/elf/dl-lookup.op -# /tmp/ccuNAGqV.s: Assembler messages: -# /tmp/ccuNAGqV.s:169: Error: junk at end of line, first unrecognized character is `,' -# -# Here's where the assember barfs (the second line): -# -# check_match.7984: -# .fnstart -# .LFB69: -# .file 2 "do-lookup.h" -# .loc 2 76 0 -# @ Nested: function declared inside another function. -# @ args = 0, pretend = 0, frame = 0 -# @ frame_needed = 1, uses_anonymous_args = 0 -# .LVL19: -# .pad #4 -# str ip, [sp, #-4]! -# -# .LCFI4: -# .movsp ip, #4 <--------------------------------------- -# add ip, sp, #4 -# -# The ", #4" seems to be bogus. This is built with binutils 2.17. -# -# -# Description: -# -# http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-arm.c.diff?r1=1.292&r2=1.293&cvsroot=src -# -# State: -# -# fixed in upstream cvs -# - ---- - gas/config/tc-arm.c | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -Index: binutils-2.17/gas/config/tc-arm.c -=================================================================== ---- binutils-2.17.orig/gas/config/tc-arm.c -+++ binutils-2.17/gas/config/tc-arm.c -@@ -2710,6 +2710,7 @@ s_arm_unwind_movsp (int ignored ATTRIBUT - { - int reg; - valueT op; -+ int offset; - - reg = arm_reg_parse (&input_line_pointer, REG_TYPE_RN); - if (reg == FAIL) -@@ -2718,6 +2719,16 @@ s_arm_unwind_movsp (int ignored ATTRIBUT - ignore_rest_of_line (); - return; - } -+ -+ /* Optional constant. */ -+ if (skip_past_comma (&input_line_pointer) != FAIL) -+ { -+ if (immediate_for_directive (&offset) == FAIL) -+ return; -+ } -+ else -+ offset = 0; -+ - demand_empty_rest_of_line (); - - if (reg == REG_SP || reg == REG_PC) -@@ -2735,7 +2746,7 @@ s_arm_unwind_movsp (int ignored ATTRIBUT - - /* Record the information for later. */ - unwind.fp_reg = reg; -- unwind.fp_offset = unwind.frame_size; -+ unwind.fp_offset = unwind.frame_size - offset; - unwind.sp_restored = 1; - } - diff --git a/patches/binutils-2.17/generic/uclibc/100-uclibc-conf.patch b/patches/binutils-2.17/generic/uclibc/100-uclibc-conf.patch deleted file mode 100644 index 6dd8a3c..0000000 --- a/patches/binutils-2.17/generic/uclibc/100-uclibc-conf.patch +++ /dev/null @@ -1,188 +0,0 @@ -From: svn://uclibc.org/trunk/buildroot/toolchain/binutils/2.17/100-uclibc-conf.patch - -Path: 100-uclibc-conf.patch -Name: 100-uclibc-conf.patch -URL: svn://uclibc.org/trunk/buildroot/toolchain/binutils/2.17/100-uclibc-conf.patch -Repository Root: svn://uclibc.org -Repository UUID: 69ca8d6d-28ef-0310-b511-8ec308f3f277 -Revision: 21884 -Node Kind: file -Schedule: normal -Last Changed Author: vapier -Last Changed Rev: 14556 -Last Changed Date: 2006-03-18 03:48:49 +0100 (Sat, 18 Mar 2006) -Text Last Updated: 2008-03-27 14:45:04 +0100 (Thu, 27 Mar 2008) -Checksum: 78aedca7c3c0079f361f28104785556d - ---- - bfd/configure | 2 +- - binutils/configure | 2 +- - configure | 4 ++-- - configure.in | 4 ++-- - gas/configure | 2 +- - gprof/configure | 5 +++++ - ld/configure | 2 +- - libtool.m4 | 2 +- - ltconfig | 3 ++- - opcodes/configure | 2 +- - 10 files changed, 17 insertions(+), 11 deletions(-) - -Index: binutils-2.17/bfd/configure -=================================================================== ---- binutils-2.17.orig/bfd/configure -+++ binutils-2.17/bfd/configure -@@ -3576,7 +3576,7 @@ irix5* | irix6*) - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux-gnu*|linux-uclibc*) - lt_cv_deplibs_check_method=pass_all - ;; - -Index: binutils-2.17/binutils/configure -=================================================================== ---- binutils-2.17.orig/binutils/configure -+++ binutils-2.17/binutils/configure -@@ -3411,7 +3411,7 @@ irix5* | irix6*) - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux-gnu*|linux-uclibc*) - lt_cv_deplibs_check_method=pass_all - ;; - -Index: binutils-2.17/configure -=================================================================== ---- binutils-2.17.orig/configure -+++ binutils-2.17/configure -@@ -1276,7 +1276,7 @@ case "${target}" in - am33_2.0-*-linux*) - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" - ;; -- sh-*-linux*) -+ sh*-*-linux*) - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" - ;; - sh*-*-pe|mips*-*-pe|*arm-wince-pe) -@@ -1584,7 +1584,7 @@ case "${target}" in - romp-*-*) - noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}" - ;; -- sh-*-* | sh64-*-*) -+ sh*-*-* | sh64-*-*) - case "${host}" in - i[3456789]86-*-vsta) ;; # don't add gprof back in - i[3456789]86-*-go32*) ;; # don't add gprof back in -Index: binutils-2.17/configure.in -=================================================================== ---- binutils-2.17.orig/configure.in -+++ binutils-2.17/configure.in -@@ -468,7 +468,7 @@ case "${target}" in - am33_2.0-*-linux*) - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" - ;; -- sh-*-linux*) -+ sh*-*-linux*) - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" - ;; - sh*-*-pe|mips*-*-pe|*arm-wince-pe) -@@ -776,7 +776,7 @@ case "${target}" in - romp-*-*) - noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}" - ;; -- sh-*-* | sh64-*-*) -+ sh*-*-* | sh64-*-*) - case "${host}" in - i[[3456789]]86-*-vsta) ;; # don't add gprof back in - i[[3456789]]86-*-go32*) ;; # don't add gprof back in -Index: binutils-2.17/gas/configure -=================================================================== ---- binutils-2.17.orig/gas/configure -+++ binutils-2.17/gas/configure -@@ -3411,7 +3411,7 @@ irix5* | irix6*) - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux-gnu*|linux-uclibc*) - lt_cv_deplibs_check_method=pass_all - ;; - -Index: binutils-2.17/gprof/configure -=================================================================== ---- binutils-2.17.orig/gprof/configure -+++ binutils-2.17/gprof/configure -@@ -3414,6 +3414,11 @@ linux-gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' -Index: binutils-2.17/ld/configure -=================================================================== ---- binutils-2.17.orig/ld/configure -+++ binutils-2.17/ld/configure -@@ -3413,7 +3413,7 @@ irix5* | irix6*) - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux-gnu*|linux-uclibc*) - lt_cv_deplibs_check_method=pass_all - ;; - -Index: binutils-2.17/libtool.m4 -=================================================================== ---- binutils-2.17.orig/libtool.m4 -+++ binutils-2.17/libtool.m4 -@@ -739,7 +739,7 @@ irix5* | irix6*) - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux-gnu*|linux-uclibc*) - lt_cv_deplibs_check_method=pass_all - ;; - -Index: binutils-2.17/ltconfig -=================================================================== ---- binutils-2.17.orig/ltconfig -+++ binutils-2.17/ltconfig -@@ -602,6 +602,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)- - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in -+linux-uclibc*) ;; - linux-gnu*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac -@@ -1247,7 +1248,7 @@ linux-gnuoldld* | linux-gnuaout* | linux - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux-gnu*|linux-uclibc*) - version_type=linux - need_lib_prefix=no - need_version=no -Index: binutils-2.17/opcodes/configure -=================================================================== ---- binutils-2.17.orig/opcodes/configure -+++ binutils-2.17/opcodes/configure -@@ -3579,7 +3579,7 @@ irix5* | irix6*) - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux-gnu*|linux-uclibc*) - lt_cv_deplibs_check_method=pass_all - ;; - diff --git a/patches/binutils-2.17/generic/uclibc/110-arm-eabi-conf.patch b/patches/binutils-2.17/generic/uclibc/110-arm-eabi-conf.patch deleted file mode 100644 index 19e4a96..0000000 --- a/patches/binutils-2.17/generic/uclibc/110-arm-eabi-conf.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: svn://uclibc.org/trunk/buildroot/toolchain/binutils/2.17/110-arm-eabi-conf.patch - -Path: 110-arm-eabi-conf.patch -Name: 110-arm-eabi-conf.patch -URL: svn://uclibc.org/trunk/buildroot/toolchain/binutils/2.17/110-arm-eabi-conf.patch -Repository Root: svn://uclibc.org -Repository UUID: 69ca8d6d-28ef-0310-b511-8ec308f3f277 -Revision: 21884 -Node Kind: file -Schedule: normal -Last Changed Author: lethal -Last Changed Rev: 15290 -Last Changed Date: 2006-06-06 00:11:01 +0200 (Tue, 06 Jun 2006) -Text Last Updated: 2008-03-27 14:45:04 +0100 (Thu, 27 Mar 2008) -Checksum: fa836a9866c753be640f37aa0f06c12c - ---- - configure | 2 +- - configure.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -Index: binutils-2.17/configure -=================================================================== ---- binutils-2.17.orig/configure -+++ binutils-2.17/configure -@@ -1305,7 +1305,7 @@ case "${target}" in - arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* ) - noconfigdirs="$noconfigdirs target-libffi target-qthreads" - ;; -- arm*-*-linux-gnueabi) -+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi) - noconfigdirs="$noconfigdirs target-libffi target-qthreads" - noconfigdirs="$noconfigdirs target-libjava target-libobjc" - ;; -Index: binutils-2.17/configure.in -=================================================================== ---- binutils-2.17.orig/configure.in -+++ binutils-2.17/configure.in -@@ -497,7 +497,7 @@ case "${target}" in - arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* ) - noconfigdirs="$noconfigdirs target-libffi target-qthreads" - ;; -- arm*-*-linux-gnueabi) -+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi) - noconfigdirs="$noconfigdirs target-libffi target-qthreads" - noconfigdirs="$noconfigdirs target-libjava target-libobjc" - ;; diff --git a/patches/gcc-4.0.4/generic/arm-softfloat.diff b/patches/gcc-4.0.4/generic/arm-softfloat.diff deleted file mode 100644 index 21aae77..0000000 --- a/patches/gcc-4.0.4/generic/arm-softfloat.diff +++ /dev/null @@ -1,38 +0,0 @@ -Index: gcc/config/arm/linux-elf.h -=================================================================== ---- a/gcc/config/arm/linux-elf.h.orig -+++ b/gcc/config/arm/linux-elf.h -@@ -57,7 +57,7 @@ - - #undef MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ -- { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" } -+ { "marm", TARGET_ENDIAN_OPTION, "msoft-float" "mhard-float", "mno-thumb-interwork" } - - /* The GNU C++ standard library requires that these macros be defined. */ - #undef CPLUSPLUS_CPP_SPEC -@@ -70,7 +70,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" - - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which -Index: gcc/config/arm/t-linux -=================================================================== ---- a/gcc/config/arm/t-linux.orig -+++ b/gcc/config/arm/t-linux -@@ -4,7 +4,10 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi - LIBGCC2_DEBUG_CFLAGS = -g0 - - LIB1ASMSRC = arm/lib1funcs.asm --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi _floatdidf _floatdisf - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/patches/gcc-4.0.4/generic/gcc-4.0-arm-bigendian.patch b/patches/gcc-4.0.4/generic/gcc-4.0-arm-bigendian.patch deleted file mode 100644 index 266879a..0000000 --- a/patches/gcc-4.0.4/generic/gcc-4.0-arm-bigendian.patch +++ /dev/null @@ -1,83 +0,0 @@ -By Lennert Buytenhek -Adds support for arm*b-linux* big-endian ARM targets - -Fixes following build error for big-endian ARM targets: - -armeb-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/bin/../lib/gcc/armeb-unknown-linux-gnu/4.0.0/../../../../armeb-unknown-linux-gnu/bin/ld: unrecognised emulation mode: armelf_linux -Supported emulations: armelfb_linux armelfb -collect2: ld returned 1 exit status -make[2]: *** [crosstool-0.32/build/armeb-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/csu/crt1.o] Error 1 -make[2]: Leaving directory `crosstool-0.32/build/armeb-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/glibc-2.3.4/csu' -make[1]: *** [csu/subdir_lib] Error 2 -make[1]: Leaving directory `crosstool-0.32/build/armeb-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/glibc-2.3.4' -make: *** [lib] Error 2 - - -See http://gcc.gnu.org/PR16350 - -Index: gcc/config/arm/linux-elf.h -=================================================================== ---- a/gcc/config/arm/linux-elf.h.orig -+++ b/gcc/config/arm/linux-elf.h -@@ -31,19 +31,33 @@ - /* Do not assume anything about header files. */ - #define NO_IMPLICIT_EXTERN_C - -+/* -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for -+ * arm*b-*-linux* (big endian) configurations. -+ */ -+#if TARGET_BIG_ENDIAN_DEFAULT -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END -+#define TARGET_ENDIAN_OPTION "mbig-endian" -+#define TARGET_LINKER_EMULATION "armelfb_linux" -+#else -+#define TARGET_ENDIAN_DEFAULT 0 -+#define TARGET_ENDIAN_OPTION "mlittle-endian" -+#define TARGET_LINKER_EMULATION "armelf_linux" -+#endif -+ - #undef TARGET_DEFAULT_FLOAT_ABI - #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD - - #undef TARGET_DEFAULT --#define TARGET_DEFAULT (0) -+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT) - - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6 - --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p" -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p" - - #undef MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ -- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" } -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" } - - /* The GNU C++ standard library requires that these macros be defined. */ - #undef CPLUSPLUS_CPP_SPEC -@@ -90,7 +104,7 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ - -X \ -- %{mbig-endian:-EB}" \ -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ - SUBTARGET_EXTRA_LINK_SPEC - - #define TARGET_OS_CPP_BUILTINS() \ -Index: gcc/config.gcc -=================================================================== ---- a/gcc/config.gcc.orig -+++ b/gcc/config.gcc -@@ -672,6 +672,11 @@ arm*-*-netbsd*) - ;; - arm*-*-linux*) # ARM GNU/Linux with ELF - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" -+ case $target in -+ arm*b-*-linux*) -+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" -+ ;; -+ esac - tmake_file="${tmake_file} arm/t-arm arm/t-linux" - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - gnu_ld=yes diff --git a/patches/gcc-4.0.4/generic/gcc_collect2-fix-open.diff b/patches/gcc-4.0.4/generic/gcc_collect2-fix-open.diff deleted file mode 100644 index 8b3b246..0000000 --- a/patches/gcc-4.0.4/generic/gcc_collect2-fix-open.diff +++ /dev/null @@ -1,38 +0,0 @@ -From: Marc Kleine-Budde -Subject: Add 3rd argument to open (create) call - -This patch fixes this error: - -gcc -g -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros -Wol -d-style-definition -DHAVE_CONFIG_H -I. -I. -I/home/frogger/pengutronix/toolchain/OSELAS.Toolchain-trunk/platform-arm-v4t_hardfloat-linux-gnu-gcc-4.0.4-gl -ibc-2.3.6-binutils-2.17-kernel-2.6.18/build-cross/gcc-4.0.4/gcc -I/home/frogger/pengutronix/toolchain/OSELAS.Toolchain-trunk/platform-arm-v4t_hardfloat-linu -x-gnu-gcc-4.0.4-glibc-2.3.6-binutils-2.17-kernel-2.6.18/build-cross/gcc-4.0.4/gcc/. -I/home/frogger/pengutronix/toolchain/OSELAS.Toolchain-trunk/platform-ar -m-v4t_hardfloat-linux-gnu-gcc-4.0.4-glibc-2.3.6-binutils-2.17-kernel-2.6.18/build-cross/gcc-4.0.4/gcc/../include -I/home/frogger/pengutronix/toolchain/OSELA -S.Toolchain-trunk/platform-arm-v4t_hardfloat-linux-gnu-gcc-4.0.4-glibc-2.3.6-binutils-2.17-kernel-2.6.18/build-cross/gcc-4.0.4/gcc/../libcpp/include \ - -DTARGET_MACHINE=\"arm-v4t_hardfloat-linux-gnu\" \ - -c /home/frogger/pengutronix/toolchain/OSELAS.Toolchain-trunk/platform-arm-v4t_hardfloat-linux-gnu-gcc-4.0.4-glibc-2.3.6-binutils-2.17-kernel-2.6.18 -/build-cross/gcc-4.0.4/gcc/collect2.c -o collect2.o -In function 'open', - inlined from 'collect_execute' at /home/frogger/pengutronix/toolchain/OSELAS.Toolchain-trunk/platform-arm-v4t_hardfloat-linux-gnu-gcc-4.0.4-glibc-2.3.6- -binutils-2.17-kernel-2.6.18/build-cross/gcc-4.0.4/gcc/collect2.c:1580: -/usr/include/bits/fcntl2.h:51: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT in second argument needs 3 arguments -make[2]: *** [collect2.o] Error 1 - -2008-12-16: mkl: upstream branch is closed since ages, - newer gcc versions don't have that problem. - -Signed-off-by: Marc Kleine-Budde - -Index: gcc-4.0.4/gcc/collect2.c -=================================================================== ---- gcc-4.0.4.orig/gcc/collect2.c 2008-12-16 13:24:10.000000000 +0100 -+++ gcc-4.0.4/gcc/collect2.c 2008-12-16 13:24:50.000000000 +0100 -@@ -1577,7 +1577,7 @@ - if (redir) - { - /* Open response file. */ -- redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT); -+ redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, S_IRWXU | S_IWUSR | S_IRGRP | S_IROTH); - - /* Duplicate the stdout and stderr file handles - so they can be restored later. */ diff --git a/patches/gcc-4.0.4/generic/series b/patches/gcc-4.0.4/generic/series deleted file mode 100644 index 98729f6..0000000 --- a/patches/gcc-4.0.4/generic/series +++ /dev/null @@ -1,3 +0,0 @@ -gcc-4.0-arm-bigendian.patch -arm-softfloat.diff -gcc_collect2-fix-open.diff diff --git a/patches/gcc-4.5.2/0001-no-host-includes.diff b/patches/gcc-4.5.2/0001-no-host-includes.diff deleted file mode 100644 index 39df653..0000000 --- a/patches/gcc-4.5.2/0001-no-host-includes.diff +++ /dev/null @@ -1,54 +0,0 @@ -From: Marc Kleine-Budde - -With this patch gcc bails out if you include a host include path into -the searchlist (-I). This patch is not intended for upstream and was -inspired by - -http://www.openembedded.org/repo/org.openembedded.dev/packages/gcc/gcc-4.1.1/zecke-no-host-includes.patch - -Signed-off-by: Marc Kleine-Budde -Signed-off-by: Robert Schwebel - ---- - gcc/incpath.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -Index: gcc-4.5.1/gcc/incpath.c -=================================================================== ---- gcc-4.5.1.orig/gcc/incpath.c -+++ gcc-4.5.1/gcc/incpath.c -@@ -417,6 +417,34 @@ add_path (char *path, int chain, int cxx - p->construct = 0; - p->user_supplied_p = user_supplied_p; - -+#ifdef CROSS_COMPILE -+ /* A common error when cross compiling is including -+ host headers. This code below will try to fail fast -+ for cross compiling. Currently we consider /usr/include, -+ /opt/include and /sw/include as harmful. */ -+ { -+ unsigned int i; -+ const char *bad_path[] = { -+ "/usr/include", -+ "/usr/local/include", -+ "/sw/include", -+ "/opt/include", -+ }; -+ -+ for (i = 0; i < sizeof(bad_path)/sizeof(bad_path[0]); i++) { -+ if( strstr(p->name, bad_path[i]) == p->name ) { -+ fprintf(stderr,_("\n" -+ "CROSS COMPILE Badness: %s in INCLUDEPATH: %s\n" -+ "\n"), -+ -+ bad_path[i], p->name); -+ -+ exit (FATAL_EXIT_CODE); -+ } -+ } -+ } -+#endif -+ - add_cpp_dir_path (p, chain); - } - diff --git a/patches/gcc-4.5.2/0002-arm-softfloat.diff b/patches/gcc-4.5.2/0002-arm-softfloat.diff deleted file mode 100644 index cb41b3d..0000000 --- a/patches/gcc-4.5.2/0002-arm-softfloat.diff +++ /dev/null @@ -1,44 +0,0 @@ -From: Marc Kleine-Budde - -Link assembler softfloat functions into gcc. As the functions are there -in that case anyway, don't add switches for float lib. - -Upstream will not fix this because oabi is dead. - -Signed-off-by: Marc Kleine-Budde -Signed-off-by: Robert Schwebel - ---- - gcc/config/arm/linux-elf.h | 2 +- - gcc/config/arm/t-linux | 5 ++++- - 2 files changed, 5 insertions(+), 2 deletions(-) - -Index: gcc-4.5.1/gcc/config/arm/linux-elf.h -=================================================================== ---- gcc-4.5.1.orig/gcc/config/arm/linux-elf.h -+++ gcc-4.5.1/gcc/config/arm/linux-elf.h -@@ -60,7 +60,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" - -Index: gcc-4.5.1/gcc/config/arm/t-linux -=================================================================== ---- gcc-4.5.1.orig/gcc/config/arm/t-linux -+++ gcc-4.5.1/gcc/config/arm/t-linux -@@ -23,7 +23,10 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi - - LIB1ASMSRC = arm/lib1funcs.asm - LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ -- _arm_addsubdf3 _arm_addsubsf3 -+ _arm_addsubdf3 _arm_addsubsf3 \ -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi _floatdidf _floatdisf - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/patches/gcc-4.5.2/0003-pr39429.diff b/patches/gcc-4.5.2/0003-pr39429.diff deleted file mode 100644 index bd194f1..0000000 --- a/patches/gcc-4.5.2/0003-pr39429.diff +++ /dev/null @@ -1,38 +0,0 @@ -From: Michael Olbrich - -This is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39429. - -I've removed Michael's original patch and replaced it by the one from -the gcc bugzilla. - -Signed-off-by: Robert Schwebel ---- - gcc/config/arm/arm.md | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -Index: gcc-4.5.1/gcc/config/arm/arm.md -=================================================================== ---- gcc-4.5.1.orig/gcc/config/arm/arm.md -+++ gcc-4.5.1/gcc/config/arm/arm.md -@@ -10390,6 +10390,21 @@ - else - { - /* Offset is out of range for a single add, so use two ldr. */ -+ -+ /* Swap the ldrs if the first ldr would clobber the shared base_reg. */ -+ if (REGNO (ldm[1]) == REGNO (base_reg)) -+ { -+ rtx tmp_reg; -+ HOST_WIDE_INT tmp_val; -+ -+ tmp_reg = ldm[1]; -+ ldm[1] = ldm[2]; -+ ldm[2] = tmp_reg; -+ tmp_val = val1; -+ val1 = val2; -+ val2 = tmp_val; -+ } -+ - ops[0] = ldm[1]; - ops[1] = base_reg; - ops[2] = GEN_INT (val1); diff --git a/patches/gcc-4.5.2/0004-uclibc-conf.patch b/patches/gcc-4.5.2/0004-uclibc-conf.patch deleted file mode 100644 index c8e563b..0000000 --- a/patches/gcc-4.5.2/0004-uclibc-conf.patch +++ /dev/null @@ -1,46 +0,0 @@ -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel - ---- - contrib/regression/objs-gcc.sh | 4 ++++ - libjava/classpath/ltconfig | 4 ++-- - 2 files changed, 6 insertions(+), 2 deletions(-) - -Index: gcc-4.5.1/contrib/regression/objs-gcc.sh -=================================================================== ---- gcc-4.5.1.orig/contrib/regression/objs-gcc.sh -+++ gcc-4.5.1/contrib/regression/objs-gcc.sh -@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H - then - make all-gdb all-dejagnu all-ld || exit 1 - make install-gdb install-dejagnu install-ld || exit 1 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] -+ then -+ make all-gdb all-dejagnu all-ld || exit 1 -+ make install-gdb install-dejagnu install-ld || exit 1 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then - make bootstrap || exit 1 - make install || exit 1 -Index: gcc-4.5.1/libjava/classpath/ltconfig -=================================================================== ---- gcc-4.5.1.orig/libjava/classpath/ltconfig -+++ gcc-4.5.1/libjava/classpath/ltconfig -@@ -603,7 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)- - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in --linux-gnu*) ;; -+linux-gnu*|linux-uclibc*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac - -@@ -1251,7 +1251,7 @@ linux-gnuoldld* | linux-gnuaout* | linux - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux*) - version_type=linux - need_lib_prefix=no - need_version=no diff --git a/patches/gcc-4.5.2/0005-missing-execinfo_h.patch b/patches/gcc-4.5.2/0005-missing-execinfo_h.patch deleted file mode 100644 index 63b6acd..0000000 --- a/patches/gcc-4.5.2/0005-missing-execinfo_h.patch +++ /dev/null @@ -1,21 +0,0 @@ -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel - ---- - boehm-gc/include/gc.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: gcc-4.3.1/boehm-gc/include/gc.h -=================================================================== ---- gcc-4.3.1.orig/boehm-gc/include/gc.h -+++ gcc-4.3.1/boehm-gc/include/gc.h -@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_of - #if defined(__linux__) || defined(__GLIBC__) - # include - # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ -- && !defined(__ia64__) -+ && !defined(__ia64__) && !defined(__UCLIBC__) - # ifndef GC_HAVE_BUILTIN_BACKTRACE - # define GC_HAVE_BUILTIN_BACKTRACE - # endif diff --git a/patches/gcc-4.5.2/0006-c99-snprintf.patch b/patches/gcc-4.5.2/0006-c99-snprintf.patch deleted file mode 100644 index d39e7d3..0000000 --- a/patches/gcc-4.5.2/0006-c99-snprintf.patch +++ /dev/null @@ -1,21 +0,0 @@ -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel - ---- - libstdc++-v3/include/c_global/cstdio | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: gcc-4.5.1/libstdc++-v3/include/c_global/cstdio -=================================================================== ---- gcc-4.5.1.orig/libstdc++-v3/include/c_global/cstdio -+++ gcc-4.5.1/libstdc++-v3/include/c_global/cstdio -@@ -139,7 +139,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) - - _GLIBCXX_END_NAMESPACE - --#if _GLIBCXX_USE_C99 -+#if _GLIBCXX_USE_C99 || defined __UCLIBC__ - - #undef snprintf - #undef vfscanf diff --git a/patches/gcc-4.5.2/0007-libmudflap-susv3-legacy.patch b/patches/gcc-4.5.2/0007-libmudflap-susv3-legacy.patch deleted file mode 100644 index 62f3ffa..0000000 --- a/patches/gcc-4.5.2/0007-libmudflap-susv3-legacy.patch +++ /dev/null @@ -1,57 +0,0 @@ -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel - ---- - libmudflap/mf-hooks2.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -Index: gcc-4.5.1/libmudflap/mf-hooks2.c -=================================================================== ---- gcc-4.5.1.orig/libmudflap/mf-hooks2.c -+++ gcc-4.5.1/libmudflap/mf-hooks2.c -@@ -421,7 +421,7 @@ WRAPPER2(void, bzero, void *s, size_t n) - { - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region"); -- bzero (s, n); -+ memset (s, 0, n); - } - - -@@ -431,7 +431,7 @@ WRAPPER2(void, bcopy, const void *src, v - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src"); - MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest"); -- bcopy (src, dest, n); -+ memmove (dest, src, n); - } - - -@@ -441,7 +441,7 @@ WRAPPER2(int, bcmp, const void *s1, cons - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg"); - MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg"); -- return bcmp (s1, s2, n); -+ return n == 0 ? 0 : memcmp (s1, s2, n); - } - - -@@ -450,7 +450,7 @@ WRAPPER2(char *, index, const char *s, i - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region"); -- return index (s, c); -+ return strchr (s, c); - } - - -@@ -459,7 +459,7 @@ WRAPPER2(char *, rindex, const char *s, - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region"); -- return rindex (s, c); -+ return strrchr (s, c); - } - - /* XXX: stpcpy, memccpy */ diff --git a/patches/gcc-4.5.2/0008-arm_insn-opinit-RTX_CODE-fixup.patch b/patches/gcc-4.5.2/0008-arm_insn-opinit-RTX_CODE-fixup.patch deleted file mode 100644 index 8fb9c38..0000000 --- a/patches/gcc-4.5.2/0008-arm_insn-opinit-RTX_CODE-fixup.patch +++ /dev/null @@ -1,45 +0,0 @@ -This patch was taken from uclibc, with this description: - -gcc/ChangeLog -2007-11-27 Bernhard Fischer <> - - * config/arm/arm-protos.h (arm_vector_mode_supported_p, - arm_hard_regno_mode_ok, const_ok_for_arm): Do not hide non-rtx related - function prototypes in RTX_CODE. - * genopinit.c: Include tm_p.h. - -Signed-off-by: Robert Schwebel - ---- - gcc/config/arm/arm-protos.h | 2 +- - gcc/genopinit.c | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -Index: gcc-4.5.1/gcc/config/arm/arm-protos.h -=================================================================== ---- gcc-4.5.1.orig/gcc/config/arm/arm-protos.h -+++ gcc-4.5.1/gcc/config/arm/arm-protos.h -@@ -43,10 +43,10 @@ extern unsigned int arm_dbx_register_num - extern void arm_output_fn_unwind (FILE *, bool); - - --#ifdef RTX_CODE - extern bool arm_vector_mode_supported_p (enum machine_mode); - extern int arm_hard_regno_mode_ok (unsigned int, enum machine_mode); - extern int const_ok_for_arm (HOST_WIDE_INT); -+#ifdef RTX_CODE - extern int arm_split_constant (RTX_CODE, enum machine_mode, rtx, - HOST_WIDE_INT, rtx, rtx, int); - extern RTX_CODE arm_canonicalize_comparison (RTX_CODE, enum machine_mode, -Index: gcc-4.5.1/gcc/genopinit.c -=================================================================== ---- gcc-4.5.1.orig/gcc/genopinit.c -+++ gcc-4.5.1/gcc/genopinit.c -@@ -490,6 +490,7 @@ from the machine description file `md'. - printf ("#include \"expr.h\"\n"); - printf ("#include \"optabs.h\"\n"); - printf ("#include \"reload.h\"\n\n"); -+ printf ("#include \"tm_p.h\"\n\n"); - - printf ("void\ninit_all_optabs (void)\n{\n"); - diff --git a/patches/gcc-4.5.2/0009-short-enums.diff b/patches/gcc-4.5.2/0009-short-enums.diff deleted file mode 100644 index a2f6aed..0000000 --- a/patches/gcc-4.5.2/0009-short-enums.diff +++ /dev/null @@ -1,53 +0,0 @@ -This patch was taken from uclibc. It has "WONTFIX" status in the gcc -bugzilla and should probably be done differently: - -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34205 - -Signed-off-by: Robert Schwebel ---- - gcc/c-common.h | 1 + - gcc/rtl.h | 4 +++- - gcc/tree.h | 1 + - 3 files changed, 5 insertions(+), 1 deletion(-) - -Index: gcc-4.5.1/gcc/tree.h -=================================================================== ---- gcc-4.5.1.orig/gcc/tree.h -+++ gcc-4.5.1/gcc/tree.h -@@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. - enum tree_code { - #include "all-tree.def" - MAX_TREE_CODES -+,__MAX_TREE_CODES=32767 /* Force 16bit width. */ - }; - - #undef DEFTREECODE -Index: gcc-4.5.1/gcc/rtl.h -=================================================================== ---- gcc-4.5.1.orig/gcc/rtl.h -+++ gcc-4.5.1/gcc/rtl.h -@@ -48,9 +48,11 @@ enum rtx_code { - #include "rtl.def" /* rtl expressions are documented here */ - #undef DEF_RTL_EXPR - -- LAST_AND_UNUSED_RTX_CODE}; /* A convenient way to get a value for -+ LAST_AND_UNUSED_RTX_CODE /* A convenient way to get a value for - NUM_RTX_CODE. - Assumes default enum value assignment. */ -+ ,__LAST_AND_UNUSED_RTX_CODE=32767 /* Force 16bit width. */ -+}; - - #define NUM_RTX_CODE ((int) LAST_AND_UNUSED_RTX_CODE) - /* The cast here, saves many elsewhere. */ -Index: gcc-4.5.1/gcc/c-common.h -=================================================================== ---- gcc-4.5.1.orig/gcc/c-common.h -+++ gcc-4.5.1/gcc/c-common.h -@@ -161,6 +161,7 @@ enum rid - RID_LAST_AT = RID_AT_IMPLEMENTATION, - RID_FIRST_PQ = RID_IN, - RID_LAST_PQ = RID_ONEWAY -+ ,__LAST_AND_UNUSED_RID=32767 /* Force 16bit width. */ - }; - - #define OBJC_IS_AT_KEYWORD(rid) \ diff --git a/patches/gcc-4.5.2/0010-all_gcc-trampolinewarn.patch b/patches/gcc-4.5.2/0010-all_gcc-trampolinewarn.patch deleted file mode 100644 index 35d28a6..0000000 --- a/patches/gcc-4.5.2/0010-all_gcc-trampolinewarn.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Kevin F. Quinn - -Taken from gentoo, original description: - -This trivial patch causes gcc to emit a warning whenever it generates a -trampoline. These are otherwise hard to locate. It is rigged to default -ON - to have it default to OFF remove the text 'Init(1)' from the -common.opt patch, leaving just 'Common Var(warn_trampolines)'. - -Signed-off-by: Robert Schwebel ---- - gcc/builtins.c | 3 +++ - gcc/common.opt | 4 ++++ - 2 files changed, 7 insertions(+) - -Index: gcc-4.5.1/gcc/common.opt -=================================================================== ---- gcc-4.5.1.orig/gcc/common.opt -+++ gcc-4.5.1/gcc/common.opt -@@ -196,6 +196,10 @@ Wtype-limits - Common Var(warn_type_limits) Init(-1) Warning - Warn if a comparison is always true or always false due to the limited range of the data type - -+Wtrampolines -+Common Var(warn_trampolines) Init(1) -+Warn whenever a trampoline is generated -+ - Wuninitialized - Common Var(warn_uninitialized) Init(-1) Warning - Warn about uninitialized automatic variables -Index: gcc-4.5.1/gcc/builtins.c -=================================================================== ---- gcc-4.5.1.orig/gcc/builtins.c -+++ gcc-4.5.1/gcc/builtins.c -@@ -5029,6 +5029,9 @@ expand_builtin_profile_func (bool exitp) - 0), - Pmode); - -+ if (warn_trampolines) -+ warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)"); -+ - return const0_rtx; - } - diff --git a/patches/gcc-4.5.2/0011-flatten-switch-stmt-00.patch b/patches/gcc-4.5.2/0011-flatten-switch-stmt-00.patch deleted file mode 100644 index 0376bb7..0000000 --- a/patches/gcc-4.5.2/0011-flatten-switch-stmt-00.patch +++ /dev/null @@ -1,81 +0,0 @@ -From: Bernhard Reutner-Fischer - -This is http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00927.html - -Hi, - -The attached patch makes sure that we create smaller object code for -simple switch statements. We just make sure to flatten the switch -statement into an if-else chain, basically. - -This fixes a size-regression as compared to gcc-3.4, as can be seen -below. - -2007-04-15 Bernhard Fischer <..> - - * stmt.c (expand_case): Do not create a complex binary tree when - optimizing for size but rather use the simple ordered list. - (emit_case_nodes): do not emit jumps to the default_label when - optimizing for size. - -Not regtested so far. -Comments? - -Attached is the test switch.c mentioned below. - -$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do -gcc-$i -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done -$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do -gcc-$i -UCHAIN -Os -o switch-$i.o -c switch.c ;done - -$ size switch-*.o - text data bss dec hex filename - 169 0 0 169 a9 switch-2.95.o - 115 0 0 115 73 switch-3.3.o - 103 0 0 103 67 switch-3.4.o - 124 0 0 124 7c switch-4.0.o - 124 0 0 124 7c switch-4.1.o - 124 0 0 124 7c switch-4.2.orig-HEAD.o - 95 0 0 95 5f switch-4.3-HEAD.o - 124 0 0 124 7c switch-4.3.orig-HEAD.o - 166 0 0 166 a6 switch-CHAIN-2.95.o - 111 0 0 111 6f switch-CHAIN-3.3.o - 95 0 0 95 5f switch-CHAIN-3.4.o - 95 0 0 95 5f switch-CHAIN-4.0.o - 95 0 0 95 5f switch-CHAIN-4.1.o - 95 0 0 95 5f switch-CHAIN-4.2.orig-HEAD.o - 95 0 0 95 5f switch-CHAIN-4.3-HEAD.o - 95 0 0 95 5f switch-CHAIN-4.3.orig-HEAD.o - -Signed-off-by: Robert Schwebel ---- - gcc/stmt.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -Index: gcc-4.5.1/gcc/stmt.c -=================================================================== ---- gcc-4.5.1.orig/gcc/stmt.c -+++ gcc-4.5.1/gcc/stmt.c -@@ -2440,7 +2440,13 @@ expand_case (gimple stmt) - default code is emitted. */ - - use_cost_table = estimate_case_costs (case_list); -- balance_case_nodes (&case_list, NULL); -+ -+ /* When optimizing for size, we want a straight list to avoid -+ jumps as much as possible. This basically creates an if-else -+ chain. */ -+ -+ if (!optimize_size) -+ balance_case_nodes (&case_list, NULL); - emit_case_nodes (index, case_list, default_label, index_type); - if (default_label) - emit_jump (default_label); -@@ -3008,6 +3014,7 @@ emit_case_nodes (rtx index, case_node_pt - { - if (!node_has_low_bound (node, index_type)) - { -+ if (!optimize_size) /* don't jl to the .default_label. */ - emit_cmp_and_jump_insns (index, - convert_modes - (mode, imode, diff --git a/patches/gcc-4.5.2/0012-libiberty-pic.patch b/patches/gcc-4.5.2/0012-libiberty-pic.patch deleted file mode 100644 index 9858422..0000000 --- a/patches/gcc-4.5.2/0012-libiberty-pic.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Marc Kleine-Budde - -Taken from gentoo. - -Signed-off-by: Marc Kleine-Budde -Signed-off-by: Robert Schwebel ---- - libiberty/Makefile.in | 1 + - 1 file changed, 1 insertion(+) - -Index: gcc-4.5.1/libiberty/Makefile.in -=================================================================== ---- gcc-4.5.1.orig/libiberty/Makefile.in -+++ gcc-4.5.1/libiberty/Makefile.in -@@ -227,6 +227,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA - $(AR) $(AR_FLAGS) $(TARGETLIB) \ - $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ - $(RANLIB) $(TARGETLIB); \ -+ cp $(TARGETLIB) ../ ; \ - cd ..; \ - else true; fi - diff --git a/patches/gcc-4.5.2/0013-libstdc++-pic.patch b/patches/gcc-4.5.2/0013-libstdc++-pic.patch deleted file mode 100644 index 0146282..0000000 --- a/patches/gcc-4.5.2/0013-libstdc++-pic.patch +++ /dev/null @@ -1,56 +0,0 @@ -From: Marc Kleine-Budde - -Install libstdc++_pic.a if we have pic objs. Taken from gentoo. - -Signed-off-by: Marc Kleine-Budde -Signed-off-by: Robert Schwebel ---- - libstdc++-v3/src/Makefile.am | 7 +++++++ - libstdc++-v3/src/Makefile.in | 9 ++++++++- - 2 files changed, 15 insertions(+), 1 deletion(-) - -Index: gcc-4.5.1/libstdc++-v3/src/Makefile.am -=================================================================== ---- gcc-4.5.1.orig/libstdc++-v3/src/Makefile.am -+++ gcc-4.5.1/libstdc++-v3/src/Makefile.am -@@ -377,6 +377,13 @@ CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBT - $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ - - -+install-exec-local: -+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \ -+ if [ x"$$pic_objs" != x ]; then \ -+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \ -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \ -+ fi -+ - # Added bits to build debug library. - if GLIBCXX_BUILD_DEBUG - all-local: build_debug -Index: gcc-4.5.1/libstdc++-v3/src/Makefile.in -=================================================================== ---- gcc-4.5.1.orig/libstdc++-v3/src/Makefile.in -+++ gcc-4.5.1/libstdc++-v3/src/Makefile.in -@@ -739,7 +739,7 @@ install-dvi: install-dvi-am - - install-dvi-am: - --install-exec-am: install-toolexeclibLTLIBRARIES -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local - - install-html: install-html-am - -@@ -993,6 +993,13 @@ install_debug: - (cd ${debugdir} && $(MAKE) \ - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) - -+install-exec-local: -+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \ -+ if [ x"$$pic_objs" != x ]; then \ -+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \ -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \ -+ fi -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/patches/gcc-4.5.2/0014-arm-bswapsi2.patch b/patches/gcc-4.5.2/0014-arm-bswapsi2.patch deleted file mode 100644 index 89942df..0000000 --- a/patches/gcc-4.5.2/0014-arm-bswapsi2.patch +++ /dev/null @@ -1,19 +0,0 @@ -This patch was taken from OpenEmbedded. - -Signed-off-by: Robert Schwebel - ---- - -Index: gcc-4.5/gcc/config/arm/arm.md -=================================================================== ---- gcc-4.5.orig/gcc/config/arm/arm.md 2010-06-17 09:13:07.000000000 -0700 -+++ gcc-4.5/gcc/config/arm/arm.md 2010-06-22 08:08:45.397212002 -0700 -@@ -11267,7 +11267,7 @@ - (define_expand "bswapsi2" - [(set (match_operand:SI 0 "s_register_operand" "=r") - (bswap:SI (match_operand:SI 1 "s_register_operand" "r")))] --"TARGET_EITHER" -+"TARGET_EITHER && (arm_arch6 && !optimize_size)" - " - if (!arm_arch6) - { diff --git a/patches/gcc-4.5.2/0015-Fix-libjava-cross-build-issue.patch b/patches/gcc-4.5.2/0015-Fix-libjava-cross-build-issue.patch deleted file mode 100644 index 194aea4..0000000 --- a/patches/gcc-4.5.2/0015-Fix-libjava-cross-build-issue.patch +++ /dev/null @@ -1,201 +0,0 @@ -From: Michael Olbrich -Date: Fri, 11 Feb 2011 23:29:14 +0100 -Subject: [PATCH] Fix: libjava cross build issue - -Taken from upstream r163580: - -Fix building ecjx in cross compile mode. - -libjava/: - PR libgcj/40868 - * configure.ac: Add GCC_FOR_ECJX variable. Ensure - GCJ_FOR_ECJX is always set. - * Makefile.am [!NATIVE] (ecjx.$(OBJEXT)): New rule. - * Makefile.in: Regenerate. - * configure: Regenerate. - * gcj/Makefile.in: Regenerate. - * include/Makefile.in: Regenerate. - * testsuite/Makefile.in: Regenerate. - -This is a fix for: -Bug 40868 - ecjx.cc should be compiled by host gcc - -Signed-off-by: Michael Olbrich ---- - libjava/Makefile.am | 2 ++ - libjava/Makefile.in | 3 +++ - libjava/configure | 12 ++++++++---- - libjava/configure.ac | 5 ++++- - libjava/gcj/Makefile.in | 1 + - libjava/include/Makefile.in | 1 + - libjava/testsuite/Makefile.in | 1 + - 7 files changed, 20 insertions(+), 5 deletions(-) - -diff --git a/libjava/Makefile.am b/libjava/Makefile.am -index 55ff0d1..85f020f 100644 ---- a/libjava/Makefile.am -+++ b/libjava/Makefile.am -@@ -1127,6 +1127,8 @@ ecjx_LINK = $(GCJ_FOR_ECJX_LINK) $(ecjx_LDFLAGS) - ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) - ecjx_LDADD = - ecjx_DEPENDENCIES = -+ecjx.$(OBJEXT): ecjx.cc -+ $(GCC_FOR_ECJX) -c $< - - endif !NATIVE - -diff --git a/libjava/Makefile.in b/libjava/Makefile.in -index adfcdf5..f4ad73e 100644 ---- a/libjava/Makefile.in -+++ b/libjava/Makefile.in -@@ -672,6 +672,7 @@ EGREP = @EGREP@ - EXCEPTIONSPEC = @EXCEPTIONSPEC@ - EXEEXT = @EXEEXT@ - FGREP = @FGREP@ -+GCC_FOR_ECJX = @GCC_FOR_ECJX@ - GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ - GCDEPS = @GCDEPS@ - GCINCS = @GCINCS@ -@@ -12887,6 +12888,8 @@ write-entries-to-file-check: - @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ | sed -n -e 's|0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\1, 0x\2, \3) /*\4 */|p' \ - @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ >> tmp-0212; \ - @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ mv tmp-0212 $(srcdir)/gnu/gcj/convert/JIS0212.h -+@NATIVE_FALSE@ecjx.$(OBJEXT): ecjx.cc -+@NATIVE_FALSE@ $(GCC_FOR_ECJX) -c $< - - src.zip: - -rm -f src.zip -diff --git a/libjava/configure b/libjava/configure -index 5454110..7b64bab 100755 ---- a/libjava/configure -+++ b/libjava/configure -@@ -769,6 +769,7 @@ LIBLTDL - INCLTDL - host_exeext - GCJH -+GCC_FOR_ECJX - GCJ_FOR_ECJX - X_AWT_FALSE - X_AWT_TRUE -@@ -6693,7 +6694,8 @@ NATIVE=yes - # Which gcj and host gcj (for ecjx) do we use? - which_gcj=default - host_exeext=${ac_exeext} --GCJ_FOR_ECJX= -+GCJ_FOR_ECJX='$(GCJ)' -+GCC_FOR_ECJX='$(CXX)' - built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" - if test -n "${with_cross_host}"; then - # We are being configured with a cross compiler. We can't -@@ -6701,6 +6703,7 @@ if test -n "${with_cross_host}"; then - NATIVE=no - cross_host_exeext= - GCJ_FOR_ECJX="${with_cross_host}-gcj" -+ GCC_FOR_ECJX="${with_cross_host}-gcc" - case "${with_cross_host}" in - *mingw* | *cygwin*) - cross_host_exeext=.exe -@@ -6769,6 +6772,7 @@ export JAVAC - - - -+ - # Create it, so that compile/link tests don't fail - test -f libgcj.spec || touch libgcj.spec - -@@ -13339,7 +13343,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 13342 "configure" -+#line 13356 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -13445,7 +13449,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 13448 "configure" -+#line 13462 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -19424,7 +19428,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then : - enableval=$enable_sjlj_exceptions; : - else - cat > conftest.$ac_ext << EOF --#line 19427 "configure" -+#line 19441 "configure" - struct S { ~S(); }; - void bar(); - void foo() -diff --git a/libjava/configure.ac b/libjava/configure.ac -index 9b551db..eaedc56 100644 ---- a/libjava/configure.ac -+++ b/libjava/configure.ac -@@ -394,7 +394,8 @@ NATIVE=yes - # Which gcj and host gcj (for ecjx) do we use? - which_gcj=default - host_exeext=${ac_exeext} --GCJ_FOR_ECJX= -+GCJ_FOR_ECJX='$(GCJ)' -+GCC_FOR_ECJX='$(CXX)' - built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" - if test -n "${with_cross_host}"; then - # We are being configured with a cross compiler. We can't -@@ -402,6 +403,7 @@ if test -n "${with_cross_host}"; then - NATIVE=no - cross_host_exeext= - GCJ_FOR_ECJX="${with_cross_host}-gcj" -+ GCC_FOR_ECJX="${with_cross_host}-gcc" - case "${with_cross_host}" in - *mingw* | *cygwin*) - cross_host_exeext=.exe -@@ -467,6 +469,7 @@ JAVAC="$GCJ -C" - export JAVAC - - AC_SUBST(GCJ_FOR_ECJX) -+AC_SUBST(GCC_FOR_ECJX) - AC_SUBST(GCJH) - AC_SUBST(host_exeext) - -diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in -index dd17e55..e7e912a 100644 ---- a/libjava/gcj/Makefile.in -+++ b/libjava/gcj/Makefile.in -@@ -136,6 +136,7 @@ EGREP = @EGREP@ - EXCEPTIONSPEC = @EXCEPTIONSPEC@ - EXEEXT = @EXEEXT@ - FGREP = @FGREP@ -+GCC_FOR_ECJX = @GCC_FOR_ECJX@ - GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ - GCDEPS = @GCDEPS@ - GCINCS = @GCINCS@ -diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in -index 2e04d8d..1c6f71a 100644 ---- a/libjava/include/Makefile.in -+++ b/libjava/include/Makefile.in -@@ -136,6 +136,7 @@ EGREP = @EGREP@ - EXCEPTIONSPEC = @EXCEPTIONSPEC@ - EXEEXT = @EXEEXT@ - FGREP = @FGREP@ -+GCC_FOR_ECJX = @GCC_FOR_ECJX@ - GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ - GCDEPS = @GCDEPS@ - GCINCS = @GCINCS@ -diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in -index a582efd..f81f531 100644 ---- a/libjava/testsuite/Makefile.in -+++ b/libjava/testsuite/Makefile.in -@@ -111,6 +111,7 @@ EGREP = @EGREP@ - EXCEPTIONSPEC = @EXCEPTIONSPEC@ - EXEEXT = @EXEEXT@ - FGREP = @FGREP@ -+GCC_FOR_ECJX = @GCC_FOR_ECJX@ - GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ - GCDEPS = @GCDEPS@ - GCINCS = @GCINCS@ --- -1.7.2.3 - diff --git a/patches/gcc-4.5.2/0016-Fix-ICE-on-ARM.patch b/patches/gcc-4.5.2/0016-Fix-ICE-on-ARM.patch deleted file mode 100644 index 191b61a..0000000 --- a/patches/gcc-4.5.2/0016-Fix-ICE-on-ARM.patch +++ /dev/null @@ -1,51 +0,0 @@ -From: Bernhard Walle -Date: Wed, 11 May 2011 16:26:14 +0200 -Subject: [PATCH] Fix ICE on ARM - -Upstream Bug URL: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45447 - -svn log -c 168270 svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch/ - -r168270 | qiyao | 2010-12-27 13:45:02 +0100 (Mo, 27. Dez 2010) | 10 Zeilen - -Backport from mainline: -gcc/ - PR target/45447 - * config/arm/arm.c (arm_build_builtin_va_list): Assign - va_list_name to TYPE_STUB_DECL (va_list_type). - -gcc/testsuite/ - PR target/45447 - * gcc.target/arm/pr45447.c: New test. - -Signed-off-by: Bernhard Walle ---- - gcc/config/arm/arm.c | 1 + - gcc/testsuite/gcc.target/arm/pr45447.c | 3 +++ - 2 files changed, 4 insertions(+), 0 deletions(-) - create mode 100644 gcc/testsuite/gcc.target/arm/pr45447.c - -diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c -index c65f59e..144cf79 100644 ---- a/gcc/config/arm/arm.c -+++ b/gcc/config/arm/arm.c -@@ -1114,6 +1114,7 @@ arm_build_builtin_va_list (void) - va_list_type); - DECL_ARTIFICIAL (va_list_name) = 1; - TYPE_NAME (va_list_type) = va_list_name; -+ TYPE_STUB_DECL (va_list_type) = va_list_name; - /* Create the __ap field. */ - ap_field = build_decl (BUILTINS_LOCATION, - FIELD_DECL, -diff --git a/gcc/testsuite/gcc.target/arm/pr45447.c b/gcc/testsuite/gcc.target/arm/pr45447.c -new file mode 100644 -index 0000000..cb4a442 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/arm/pr45447.c -@@ -0,0 +1,3 @@ -+/* { dg-do compile } */ -+/* { dg-options "-g -femit-struct-debug-baseonly" } */ -+typedef __builtin_va_list x; --- -1.7.5.1 - diff --git a/patches/gcc-4.5.2/series b/patches/gcc-4.5.2/series deleted file mode 100644 index ea6ad6b..0000000 --- a/patches/gcc-4.5.2/series +++ /dev/null @@ -1,25 +0,0 @@ -# from OSELAS.toolchain -0001-no-host-includes.diff -0002-arm-softfloat.diff -0003-pr39429.diff - -# from uclibc -0004-uclibc-conf.patch -0005-missing-execinfo_h.patch -0006-c99-snprintf.patch -0007-libmudflap-susv3-legacy.patch -0008-arm_insn-opinit-RTX_CODE-fixup.patch -0009-short-enums.diff - -# from gentoo -0010-all_gcc-trampolinewarn.patch -0011-flatten-switch-stmt-00.patch -0012-libiberty-pic.patch -0013-libstdc++-pic.patch - -# from oe -0014-arm-bswapsi2.patch - -# from upstream -0015-Fix-libjava-cross-build-issue.patch -0016-Fix-ICE-on-ARM.patch diff --git a/patches/gcc-linaro-4.5-2011.02-0/0001-no-host-includes.diff b/patches/gcc-linaro-4.5-2011.02-0/0001-no-host-includes.diff deleted file mode 100644 index 39df653..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0001-no-host-includes.diff +++ /dev/null @@ -1,54 +0,0 @@ -From: Marc Kleine-Budde - -With this patch gcc bails out if you include a host include path into -the searchlist (-I). This patch is not intended for upstream and was -inspired by - -http://www.openembedded.org/repo/org.openembedded.dev/packages/gcc/gcc-4.1.1/zecke-no-host-includes.patch - -Signed-off-by: Marc Kleine-Budde -Signed-off-by: Robert Schwebel - ---- - gcc/incpath.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -Index: gcc-4.5.1/gcc/incpath.c -=================================================================== ---- gcc-4.5.1.orig/gcc/incpath.c -+++ gcc-4.5.1/gcc/incpath.c -@@ -417,6 +417,34 @@ add_path (char *path, int chain, int cxx - p->construct = 0; - p->user_supplied_p = user_supplied_p; - -+#ifdef CROSS_COMPILE -+ /* A common error when cross compiling is including -+ host headers. This code below will try to fail fast -+ for cross compiling. Currently we consider /usr/include, -+ /opt/include and /sw/include as harmful. */ -+ { -+ unsigned int i; -+ const char *bad_path[] = { -+ "/usr/include", -+ "/usr/local/include", -+ "/sw/include", -+ "/opt/include", -+ }; -+ -+ for (i = 0; i < sizeof(bad_path)/sizeof(bad_path[0]); i++) { -+ if( strstr(p->name, bad_path[i]) == p->name ) { -+ fprintf(stderr,_("\n" -+ "CROSS COMPILE Badness: %s in INCLUDEPATH: %s\n" -+ "\n"), -+ -+ bad_path[i], p->name); -+ -+ exit (FATAL_EXIT_CODE); -+ } -+ } -+ } -+#endif -+ - add_cpp_dir_path (p, chain); - } - diff --git a/patches/gcc-linaro-4.5-2011.02-0/0002-arm-softfloat.diff b/patches/gcc-linaro-4.5-2011.02-0/0002-arm-softfloat.diff deleted file mode 100644 index cb41b3d..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0002-arm-softfloat.diff +++ /dev/null @@ -1,44 +0,0 @@ -From: Marc Kleine-Budde - -Link assembler softfloat functions into gcc. As the functions are there -in that case anyway, don't add switches for float lib. - -Upstream will not fix this because oabi is dead. - -Signed-off-by: Marc Kleine-Budde -Signed-off-by: Robert Schwebel - ---- - gcc/config/arm/linux-elf.h | 2 +- - gcc/config/arm/t-linux | 5 ++++- - 2 files changed, 5 insertions(+), 2 deletions(-) - -Index: gcc-4.5.1/gcc/config/arm/linux-elf.h -=================================================================== ---- gcc-4.5.1.orig/gcc/config/arm/linux-elf.h -+++ gcc-4.5.1/gcc/config/arm/linux-elf.h -@@ -60,7 +60,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" - -Index: gcc-4.5.1/gcc/config/arm/t-linux -=================================================================== ---- gcc-4.5.1.orig/gcc/config/arm/t-linux -+++ gcc-4.5.1/gcc/config/arm/t-linux -@@ -23,7 +23,10 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi - - LIB1ASMSRC = arm/lib1funcs.asm - LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ -- _arm_addsubdf3 _arm_addsubsf3 -+ _arm_addsubdf3 _arm_addsubsf3 \ -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi _floatdidf _floatdisf - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/patches/gcc-linaro-4.5-2011.02-0/0003-pr39429.diff b/patches/gcc-linaro-4.5-2011.02-0/0003-pr39429.diff deleted file mode 100644 index bd194f1..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0003-pr39429.diff +++ /dev/null @@ -1,38 +0,0 @@ -From: Michael Olbrich - -This is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39429. - -I've removed Michael's original patch and replaced it by the one from -the gcc bugzilla. - -Signed-off-by: Robert Schwebel ---- - gcc/config/arm/arm.md | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -Index: gcc-4.5.1/gcc/config/arm/arm.md -=================================================================== ---- gcc-4.5.1.orig/gcc/config/arm/arm.md -+++ gcc-4.5.1/gcc/config/arm/arm.md -@@ -10390,6 +10390,21 @@ - else - { - /* Offset is out of range for a single add, so use two ldr. */ -+ -+ /* Swap the ldrs if the first ldr would clobber the shared base_reg. */ -+ if (REGNO (ldm[1]) == REGNO (base_reg)) -+ { -+ rtx tmp_reg; -+ HOST_WIDE_INT tmp_val; -+ -+ tmp_reg = ldm[1]; -+ ldm[1] = ldm[2]; -+ ldm[2] = tmp_reg; -+ tmp_val = val1; -+ val1 = val2; -+ val2 = tmp_val; -+ } -+ - ops[0] = ldm[1]; - ops[1] = base_reg; - ops[2] = GEN_INT (val1); diff --git a/patches/gcc-linaro-4.5-2011.02-0/0004-uclibc-conf.patch b/patches/gcc-linaro-4.5-2011.02-0/0004-uclibc-conf.patch deleted file mode 100644 index c8e563b..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0004-uclibc-conf.patch +++ /dev/null @@ -1,46 +0,0 @@ -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel - ---- - contrib/regression/objs-gcc.sh | 4 ++++ - libjava/classpath/ltconfig | 4 ++-- - 2 files changed, 6 insertions(+), 2 deletions(-) - -Index: gcc-4.5.1/contrib/regression/objs-gcc.sh -=================================================================== ---- gcc-4.5.1.orig/contrib/regression/objs-gcc.sh -+++ gcc-4.5.1/contrib/regression/objs-gcc.sh -@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H - then - make all-gdb all-dejagnu all-ld || exit 1 - make install-gdb install-dejagnu install-ld || exit 1 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] -+ then -+ make all-gdb all-dejagnu all-ld || exit 1 -+ make install-gdb install-dejagnu install-ld || exit 1 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then - make bootstrap || exit 1 - make install || exit 1 -Index: gcc-4.5.1/libjava/classpath/ltconfig -=================================================================== ---- gcc-4.5.1.orig/libjava/classpath/ltconfig -+++ gcc-4.5.1/libjava/classpath/ltconfig -@@ -603,7 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)- - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in --linux-gnu*) ;; -+linux-gnu*|linux-uclibc*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac - -@@ -1251,7 +1251,7 @@ linux-gnuoldld* | linux-gnuaout* | linux - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux*) - version_type=linux - need_lib_prefix=no - need_version=no diff --git a/patches/gcc-linaro-4.5-2011.02-0/0005-missing-execinfo_h.patch b/patches/gcc-linaro-4.5-2011.02-0/0005-missing-execinfo_h.patch deleted file mode 100644 index 63b6acd..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0005-missing-execinfo_h.patch +++ /dev/null @@ -1,21 +0,0 @@ -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel - ---- - boehm-gc/include/gc.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: gcc-4.3.1/boehm-gc/include/gc.h -=================================================================== ---- gcc-4.3.1.orig/boehm-gc/include/gc.h -+++ gcc-4.3.1/boehm-gc/include/gc.h -@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_of - #if defined(__linux__) || defined(__GLIBC__) - # include - # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ -- && !defined(__ia64__) -+ && !defined(__ia64__) && !defined(__UCLIBC__) - # ifndef GC_HAVE_BUILTIN_BACKTRACE - # define GC_HAVE_BUILTIN_BACKTRACE - # endif diff --git a/patches/gcc-linaro-4.5-2011.02-0/0006-c99-snprintf.patch b/patches/gcc-linaro-4.5-2011.02-0/0006-c99-snprintf.patch deleted file mode 100644 index d39e7d3..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0006-c99-snprintf.patch +++ /dev/null @@ -1,21 +0,0 @@ -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel - ---- - libstdc++-v3/include/c_global/cstdio | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: gcc-4.5.1/libstdc++-v3/include/c_global/cstdio -=================================================================== ---- gcc-4.5.1.orig/libstdc++-v3/include/c_global/cstdio -+++ gcc-4.5.1/libstdc++-v3/include/c_global/cstdio -@@ -139,7 +139,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) - - _GLIBCXX_END_NAMESPACE - --#if _GLIBCXX_USE_C99 -+#if _GLIBCXX_USE_C99 || defined __UCLIBC__ - - #undef snprintf - #undef vfscanf diff --git a/patches/gcc-linaro-4.5-2011.02-0/0007-libmudflap-susv3-legacy.patch b/patches/gcc-linaro-4.5-2011.02-0/0007-libmudflap-susv3-legacy.patch deleted file mode 100644 index 62f3ffa..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0007-libmudflap-susv3-legacy.patch +++ /dev/null @@ -1,57 +0,0 @@ -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel - ---- - libmudflap/mf-hooks2.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -Index: gcc-4.5.1/libmudflap/mf-hooks2.c -=================================================================== ---- gcc-4.5.1.orig/libmudflap/mf-hooks2.c -+++ gcc-4.5.1/libmudflap/mf-hooks2.c -@@ -421,7 +421,7 @@ WRAPPER2(void, bzero, void *s, size_t n) - { - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region"); -- bzero (s, n); -+ memset (s, 0, n); - } - - -@@ -431,7 +431,7 @@ WRAPPER2(void, bcopy, const void *src, v - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src"); - MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest"); -- bcopy (src, dest, n); -+ memmove (dest, src, n); - } - - -@@ -441,7 +441,7 @@ WRAPPER2(int, bcmp, const void *s1, cons - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg"); - MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg"); -- return bcmp (s1, s2, n); -+ return n == 0 ? 0 : memcmp (s1, s2, n); - } - - -@@ -450,7 +450,7 @@ WRAPPER2(char *, index, const char *s, i - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region"); -- return index (s, c); -+ return strchr (s, c); - } - - -@@ -459,7 +459,7 @@ WRAPPER2(char *, rindex, const char *s, - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region"); -- return rindex (s, c); -+ return strrchr (s, c); - } - - /* XXX: stpcpy, memccpy */ diff --git a/patches/gcc-linaro-4.5-2011.02-0/0008-arm_insn-opinit-RTX_CODE-fixup.patch b/patches/gcc-linaro-4.5-2011.02-0/0008-arm_insn-opinit-RTX_CODE-fixup.patch deleted file mode 100644 index 8fb9c38..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0008-arm_insn-opinit-RTX_CODE-fixup.patch +++ /dev/null @@ -1,45 +0,0 @@ -This patch was taken from uclibc, with this description: - -gcc/ChangeLog -2007-11-27 Bernhard Fischer <> - - * config/arm/arm-protos.h (arm_vector_mode_supported_p, - arm_hard_regno_mode_ok, const_ok_for_arm): Do not hide non-rtx related - function prototypes in RTX_CODE. - * genopinit.c: Include tm_p.h. - -Signed-off-by: Robert Schwebel - ---- - gcc/config/arm/arm-protos.h | 2 +- - gcc/genopinit.c | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -Index: gcc-4.5.1/gcc/config/arm/arm-protos.h -=================================================================== ---- gcc-4.5.1.orig/gcc/config/arm/arm-protos.h -+++ gcc-4.5.1/gcc/config/arm/arm-protos.h -@@ -43,10 +43,10 @@ extern unsigned int arm_dbx_register_num - extern void arm_output_fn_unwind (FILE *, bool); - - --#ifdef RTX_CODE - extern bool arm_vector_mode_supported_p (enum machine_mode); - extern int arm_hard_regno_mode_ok (unsigned int, enum machine_mode); - extern int const_ok_for_arm (HOST_WIDE_INT); -+#ifdef RTX_CODE - extern int arm_split_constant (RTX_CODE, enum machine_mode, rtx, - HOST_WIDE_INT, rtx, rtx, int); - extern RTX_CODE arm_canonicalize_comparison (RTX_CODE, enum machine_mode, -Index: gcc-4.5.1/gcc/genopinit.c -=================================================================== ---- gcc-4.5.1.orig/gcc/genopinit.c -+++ gcc-4.5.1/gcc/genopinit.c -@@ -490,6 +490,7 @@ from the machine description file `md'. - printf ("#include \"expr.h\"\n"); - printf ("#include \"optabs.h\"\n"); - printf ("#include \"reload.h\"\n\n"); -+ printf ("#include \"tm_p.h\"\n\n"); - - printf ("void\ninit_all_optabs (void)\n{\n"); - diff --git a/patches/gcc-linaro-4.5-2011.02-0/0009-short-enums.diff b/patches/gcc-linaro-4.5-2011.02-0/0009-short-enums.diff deleted file mode 100644 index a2f6aed..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0009-short-enums.diff +++ /dev/null @@ -1,53 +0,0 @@ -This patch was taken from uclibc. It has "WONTFIX" status in the gcc -bugzilla and should probably be done differently: - -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34205 - -Signed-off-by: Robert Schwebel ---- - gcc/c-common.h | 1 + - gcc/rtl.h | 4 +++- - gcc/tree.h | 1 + - 3 files changed, 5 insertions(+), 1 deletion(-) - -Index: gcc-4.5.1/gcc/tree.h -=================================================================== ---- gcc-4.5.1.orig/gcc/tree.h -+++ gcc-4.5.1/gcc/tree.h -@@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. - enum tree_code { - #include "all-tree.def" - MAX_TREE_CODES -+,__MAX_TREE_CODES=32767 /* Force 16bit width. */ - }; - - #undef DEFTREECODE -Index: gcc-4.5.1/gcc/rtl.h -=================================================================== ---- gcc-4.5.1.orig/gcc/rtl.h -+++ gcc-4.5.1/gcc/rtl.h -@@ -48,9 +48,11 @@ enum rtx_code { - #include "rtl.def" /* rtl expressions are documented here */ - #undef DEF_RTL_EXPR - -- LAST_AND_UNUSED_RTX_CODE}; /* A convenient way to get a value for -+ LAST_AND_UNUSED_RTX_CODE /* A convenient way to get a value for - NUM_RTX_CODE. - Assumes default enum value assignment. */ -+ ,__LAST_AND_UNUSED_RTX_CODE=32767 /* Force 16bit width. */ -+}; - - #define NUM_RTX_CODE ((int) LAST_AND_UNUSED_RTX_CODE) - /* The cast here, saves many elsewhere. */ -Index: gcc-4.5.1/gcc/c-common.h -=================================================================== ---- gcc-4.5.1.orig/gcc/c-common.h -+++ gcc-4.5.1/gcc/c-common.h -@@ -161,6 +161,7 @@ enum rid - RID_LAST_AT = RID_AT_IMPLEMENTATION, - RID_FIRST_PQ = RID_IN, - RID_LAST_PQ = RID_ONEWAY -+ ,__LAST_AND_UNUSED_RID=32767 /* Force 16bit width. */ - }; - - #define OBJC_IS_AT_KEYWORD(rid) \ diff --git a/patches/gcc-linaro-4.5-2011.02-0/0010-all_gcc-trampolinewarn.patch b/patches/gcc-linaro-4.5-2011.02-0/0010-all_gcc-trampolinewarn.patch deleted file mode 100644 index 35d28a6..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0010-all_gcc-trampolinewarn.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Kevin F. Quinn - -Taken from gentoo, original description: - -This trivial patch causes gcc to emit a warning whenever it generates a -trampoline. These are otherwise hard to locate. It is rigged to default -ON - to have it default to OFF remove the text 'Init(1)' from the -common.opt patch, leaving just 'Common Var(warn_trampolines)'. - -Signed-off-by: Robert Schwebel ---- - gcc/builtins.c | 3 +++ - gcc/common.opt | 4 ++++ - 2 files changed, 7 insertions(+) - -Index: gcc-4.5.1/gcc/common.opt -=================================================================== ---- gcc-4.5.1.orig/gcc/common.opt -+++ gcc-4.5.1/gcc/common.opt -@@ -196,6 +196,10 @@ Wtype-limits - Common Var(warn_type_limits) Init(-1) Warning - Warn if a comparison is always true or always false due to the limited range of the data type - -+Wtrampolines -+Common Var(warn_trampolines) Init(1) -+Warn whenever a trampoline is generated -+ - Wuninitialized - Common Var(warn_uninitialized) Init(-1) Warning - Warn about uninitialized automatic variables -Index: gcc-4.5.1/gcc/builtins.c -=================================================================== ---- gcc-4.5.1.orig/gcc/builtins.c -+++ gcc-4.5.1/gcc/builtins.c -@@ -5029,6 +5029,9 @@ expand_builtin_profile_func (bool exitp) - 0), - Pmode); - -+ if (warn_trampolines) -+ warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)"); -+ - return const0_rtx; - } - diff --git a/patches/gcc-linaro-4.5-2011.02-0/0011-flatten-switch-stmt-00.patch b/patches/gcc-linaro-4.5-2011.02-0/0011-flatten-switch-stmt-00.patch deleted file mode 100644 index 0376bb7..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0011-flatten-switch-stmt-00.patch +++ /dev/null @@ -1,81 +0,0 @@ -From: Bernhard Reutner-Fischer - -This is http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00927.html - -Hi, - -The attached patch makes sure that we create smaller object code for -simple switch statements. We just make sure to flatten the switch -statement into an if-else chain, basically. - -This fixes a size-regression as compared to gcc-3.4, as can be seen -below. - -2007-04-15 Bernhard Fischer <..> - - * stmt.c (expand_case): Do not create a complex binary tree when - optimizing for size but rather use the simple ordered list. - (emit_case_nodes): do not emit jumps to the default_label when - optimizing for size. - -Not regtested so far. -Comments? - -Attached is the test switch.c mentioned below. - -$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do -gcc-$i -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done -$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do -gcc-$i -UCHAIN -Os -o switch-$i.o -c switch.c ;done - -$ size switch-*.o - text data bss dec hex filename - 169 0 0 169 a9 switch-2.95.o - 115 0 0 115 73 switch-3.3.o - 103 0 0 103 67 switch-3.4.o - 124 0 0 124 7c switch-4.0.o - 124 0 0 124 7c switch-4.1.o - 124 0 0 124 7c switch-4.2.orig-HEAD.o - 95 0 0 95 5f switch-4.3-HEAD.o - 124 0 0 124 7c switch-4.3.orig-HEAD.o - 166 0 0 166 a6 switch-CHAIN-2.95.o - 111 0 0 111 6f switch-CHAIN-3.3.o - 95 0 0 95 5f switch-CHAIN-3.4.o - 95 0 0 95 5f switch-CHAIN-4.0.o - 95 0 0 95 5f switch-CHAIN-4.1.o - 95 0 0 95 5f switch-CHAIN-4.2.orig-HEAD.o - 95 0 0 95 5f switch-CHAIN-4.3-HEAD.o - 95 0 0 95 5f switch-CHAIN-4.3.orig-HEAD.o - -Signed-off-by: Robert Schwebel ---- - gcc/stmt.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -Index: gcc-4.5.1/gcc/stmt.c -=================================================================== ---- gcc-4.5.1.orig/gcc/stmt.c -+++ gcc-4.5.1/gcc/stmt.c -@@ -2440,7 +2440,13 @@ expand_case (gimple stmt) - default code is emitted. */ - - use_cost_table = estimate_case_costs (case_list); -- balance_case_nodes (&case_list, NULL); -+ -+ /* When optimizing for size, we want a straight list to avoid -+ jumps as much as possible. This basically creates an if-else -+ chain. */ -+ -+ if (!optimize_size) -+ balance_case_nodes (&case_list, NULL); - emit_case_nodes (index, case_list, default_label, index_type); - if (default_label) - emit_jump (default_label); -@@ -3008,6 +3014,7 @@ emit_case_nodes (rtx index, case_node_pt - { - if (!node_has_low_bound (node, index_type)) - { -+ if (!optimize_size) /* don't jl to the .default_label. */ - emit_cmp_and_jump_insns (index, - convert_modes - (mode, imode, diff --git a/patches/gcc-linaro-4.5-2011.02-0/0012-libiberty-pic.patch b/patches/gcc-linaro-4.5-2011.02-0/0012-libiberty-pic.patch deleted file mode 100644 index 9858422..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0012-libiberty-pic.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Marc Kleine-Budde - -Taken from gentoo. - -Signed-off-by: Marc Kleine-Budde -Signed-off-by: Robert Schwebel ---- - libiberty/Makefile.in | 1 + - 1 file changed, 1 insertion(+) - -Index: gcc-4.5.1/libiberty/Makefile.in -=================================================================== ---- gcc-4.5.1.orig/libiberty/Makefile.in -+++ gcc-4.5.1/libiberty/Makefile.in -@@ -227,6 +227,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA - $(AR) $(AR_FLAGS) $(TARGETLIB) \ - $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ - $(RANLIB) $(TARGETLIB); \ -+ cp $(TARGETLIB) ../ ; \ - cd ..; \ - else true; fi - diff --git a/patches/gcc-linaro-4.5-2011.02-0/0013-libstdc++-pic.patch b/patches/gcc-linaro-4.5-2011.02-0/0013-libstdc++-pic.patch deleted file mode 100644 index 0146282..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0013-libstdc++-pic.patch +++ /dev/null @@ -1,56 +0,0 @@ -From: Marc Kleine-Budde - -Install libstdc++_pic.a if we have pic objs. Taken from gentoo. - -Signed-off-by: Marc Kleine-Budde -Signed-off-by: Robert Schwebel ---- - libstdc++-v3/src/Makefile.am | 7 +++++++ - libstdc++-v3/src/Makefile.in | 9 ++++++++- - 2 files changed, 15 insertions(+), 1 deletion(-) - -Index: gcc-4.5.1/libstdc++-v3/src/Makefile.am -=================================================================== ---- gcc-4.5.1.orig/libstdc++-v3/src/Makefile.am -+++ gcc-4.5.1/libstdc++-v3/src/Makefile.am -@@ -377,6 +377,13 @@ CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBT - $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ - - -+install-exec-local: -+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \ -+ if [ x"$$pic_objs" != x ]; then \ -+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \ -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \ -+ fi -+ - # Added bits to build debug library. - if GLIBCXX_BUILD_DEBUG - all-local: build_debug -Index: gcc-4.5.1/libstdc++-v3/src/Makefile.in -=================================================================== ---- gcc-4.5.1.orig/libstdc++-v3/src/Makefile.in -+++ gcc-4.5.1/libstdc++-v3/src/Makefile.in -@@ -739,7 +739,7 @@ install-dvi: install-dvi-am - - install-dvi-am: - --install-exec-am: install-toolexeclibLTLIBRARIES -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local - - install-html: install-html-am - -@@ -993,6 +993,13 @@ install_debug: - (cd ${debugdir} && $(MAKE) \ - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) - -+install-exec-local: -+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \ -+ if [ x"$$pic_objs" != x ]; then \ -+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \ -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \ -+ fi -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/patches/gcc-linaro-4.5-2011.02-0/0015-Fix-libjava-cross-build-issue.patch b/patches/gcc-linaro-4.5-2011.02-0/0015-Fix-libjava-cross-build-issue.patch deleted file mode 100644 index 194aea4..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0015-Fix-libjava-cross-build-issue.patch +++ /dev/null @@ -1,201 +0,0 @@ -From: Michael Olbrich -Date: Fri, 11 Feb 2011 23:29:14 +0100 -Subject: [PATCH] Fix: libjava cross build issue - -Taken from upstream r163580: - -Fix building ecjx in cross compile mode. - -libjava/: - PR libgcj/40868 - * configure.ac: Add GCC_FOR_ECJX variable. Ensure - GCJ_FOR_ECJX is always set. - * Makefile.am [!NATIVE] (ecjx.$(OBJEXT)): New rule. - * Makefile.in: Regenerate. - * configure: Regenerate. - * gcj/Makefile.in: Regenerate. - * include/Makefile.in: Regenerate. - * testsuite/Makefile.in: Regenerate. - -This is a fix for: -Bug 40868 - ecjx.cc should be compiled by host gcc - -Signed-off-by: Michael Olbrich ---- - libjava/Makefile.am | 2 ++ - libjava/Makefile.in | 3 +++ - libjava/configure | 12 ++++++++---- - libjava/configure.ac | 5 ++++- - libjava/gcj/Makefile.in | 1 + - libjava/include/Makefile.in | 1 + - libjava/testsuite/Makefile.in | 1 + - 7 files changed, 20 insertions(+), 5 deletions(-) - -diff --git a/libjava/Makefile.am b/libjava/Makefile.am -index 55ff0d1..85f020f 100644 ---- a/libjava/Makefile.am -+++ b/libjava/Makefile.am -@@ -1127,6 +1127,8 @@ ecjx_LINK = $(GCJ_FOR_ECJX_LINK) $(ecjx_LDFLAGS) - ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) - ecjx_LDADD = - ecjx_DEPENDENCIES = -+ecjx.$(OBJEXT): ecjx.cc -+ $(GCC_FOR_ECJX) -c $< - - endif !NATIVE - -diff --git a/libjava/Makefile.in b/libjava/Makefile.in -index adfcdf5..f4ad73e 100644 ---- a/libjava/Makefile.in -+++ b/libjava/Makefile.in -@@ -672,6 +672,7 @@ EGREP = @EGREP@ - EXCEPTIONSPEC = @EXCEPTIONSPEC@ - EXEEXT = @EXEEXT@ - FGREP = @FGREP@ -+GCC_FOR_ECJX = @GCC_FOR_ECJX@ - GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ - GCDEPS = @GCDEPS@ - GCINCS = @GCINCS@ -@@ -12887,6 +12888,8 @@ write-entries-to-file-check: - @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ | sed -n -e 's|0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\1, 0x\2, \3) /*\4 */|p' \ - @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ >> tmp-0212; \ - @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ mv tmp-0212 $(srcdir)/gnu/gcj/convert/JIS0212.h -+@NATIVE_FALSE@ecjx.$(OBJEXT): ecjx.cc -+@NATIVE_FALSE@ $(GCC_FOR_ECJX) -c $< - - src.zip: - -rm -f src.zip -diff --git a/libjava/configure b/libjava/configure -index 5454110..7b64bab 100755 ---- a/libjava/configure -+++ b/libjava/configure -@@ -769,6 +769,7 @@ LIBLTDL - INCLTDL - host_exeext - GCJH -+GCC_FOR_ECJX - GCJ_FOR_ECJX - X_AWT_FALSE - X_AWT_TRUE -@@ -6693,7 +6694,8 @@ NATIVE=yes - # Which gcj and host gcj (for ecjx) do we use? - which_gcj=default - host_exeext=${ac_exeext} --GCJ_FOR_ECJX= -+GCJ_FOR_ECJX='$(GCJ)' -+GCC_FOR_ECJX='$(CXX)' - built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" - if test -n "${with_cross_host}"; then - # We are being configured with a cross compiler. We can't -@@ -6701,6 +6703,7 @@ if test -n "${with_cross_host}"; then - NATIVE=no - cross_host_exeext= - GCJ_FOR_ECJX="${with_cross_host}-gcj" -+ GCC_FOR_ECJX="${with_cross_host}-gcc" - case "${with_cross_host}" in - *mingw* | *cygwin*) - cross_host_exeext=.exe -@@ -6769,6 +6772,7 @@ export JAVAC - - - -+ - # Create it, so that compile/link tests don't fail - test -f libgcj.spec || touch libgcj.spec - -@@ -13339,7 +13343,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 13342 "configure" -+#line 13356 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -13445,7 +13449,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 13448 "configure" -+#line 13462 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -19424,7 +19428,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then : - enableval=$enable_sjlj_exceptions; : - else - cat > conftest.$ac_ext << EOF --#line 19427 "configure" -+#line 19441 "configure" - struct S { ~S(); }; - void bar(); - void foo() -diff --git a/libjava/configure.ac b/libjava/configure.ac -index 9b551db..eaedc56 100644 ---- a/libjava/configure.ac -+++ b/libjava/configure.ac -@@ -394,7 +394,8 @@ NATIVE=yes - # Which gcj and host gcj (for ecjx) do we use? - which_gcj=default - host_exeext=${ac_exeext} --GCJ_FOR_ECJX= -+GCJ_FOR_ECJX='$(GCJ)' -+GCC_FOR_ECJX='$(CXX)' - built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" - if test -n "${with_cross_host}"; then - # We are being configured with a cross compiler. We can't -@@ -402,6 +403,7 @@ if test -n "${with_cross_host}"; then - NATIVE=no - cross_host_exeext= - GCJ_FOR_ECJX="${with_cross_host}-gcj" -+ GCC_FOR_ECJX="${with_cross_host}-gcc" - case "${with_cross_host}" in - *mingw* | *cygwin*) - cross_host_exeext=.exe -@@ -467,6 +469,7 @@ JAVAC="$GCJ -C" - export JAVAC - - AC_SUBST(GCJ_FOR_ECJX) -+AC_SUBST(GCC_FOR_ECJX) - AC_SUBST(GCJH) - AC_SUBST(host_exeext) - -diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in -index dd17e55..e7e912a 100644 ---- a/libjava/gcj/Makefile.in -+++ b/libjava/gcj/Makefile.in -@@ -136,6 +136,7 @@ EGREP = @EGREP@ - EXCEPTIONSPEC = @EXCEPTIONSPEC@ - EXEEXT = @EXEEXT@ - FGREP = @FGREP@ -+GCC_FOR_ECJX = @GCC_FOR_ECJX@ - GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ - GCDEPS = @GCDEPS@ - GCINCS = @GCINCS@ -diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in -index 2e04d8d..1c6f71a 100644 ---- a/libjava/include/Makefile.in -+++ b/libjava/include/Makefile.in -@@ -136,6 +136,7 @@ EGREP = @EGREP@ - EXCEPTIONSPEC = @EXCEPTIONSPEC@ - EXEEXT = @EXEEXT@ - FGREP = @FGREP@ -+GCC_FOR_ECJX = @GCC_FOR_ECJX@ - GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ - GCDEPS = @GCDEPS@ - GCINCS = @GCINCS@ -diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in -index a582efd..f81f531 100644 ---- a/libjava/testsuite/Makefile.in -+++ b/libjava/testsuite/Makefile.in -@@ -111,6 +111,7 @@ EGREP = @EGREP@ - EXCEPTIONSPEC = @EXCEPTIONSPEC@ - EXEEXT = @EXEEXT@ - FGREP = @FGREP@ -+GCC_FOR_ECJX = @GCC_FOR_ECJX@ - GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ - GCDEPS = @GCDEPS@ - GCINCS = @GCINCS@ --- -1.7.2.3 - diff --git a/patches/gcc-linaro-4.5-2011.02-0/0016-debian-patch-revert-issue1259.patch b/patches/gcc-linaro-4.5-2011.02-0/0016-debian-patch-revert-issue1259.patch deleted file mode 100644 index fbadd34..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/0016-debian-patch-revert-issue1259.patch +++ /dev/null @@ -1,40 +0,0 @@ -# DP: Revert change for Linaro issue #1259, Do not default to -# DP: -fstrict-volatile-bitfields on arm. LP: #675347. - -2010-10-26 Jie Zhang - - Issue #1259 - - Backport from mainline: - - gcc/ - 2010-10-26 Jie Zhang - - * stor-layout.c (layout_decl): Use the field's type to - determine the mode and keep DECL_BIT_FIELD for a volatile - bit-field. - * config/arm/arm.c (arm_override_options): Default to - -fstrict-volatile-bitfields. - - gcc/testsuite/ - 2010-10-26 Jie Zhang - - * gcc.target/arm/volatile-bitfields-1.c: New test. - * gcc.target/arm/volatile-bitfields-2.c: New test. - * gcc.target/arm/volatile-bitfields-3.c: New test. - - ---- a/gcc/config/arm/arm.c -+++ b/gcc/config/arm/arm.c -@@ -1933,11 +1933,6 @@ - calculation, which is 2 instructions. */ - set_param_value ("gcse-unrestricted-cost", 2); - -- /* ARM EABI defaults to strict volatile bitfields. */ -- if (TARGET_AAPCS_BASED && flag_strict_volatile_bitfields < 0 -- && abi_version_at_least(2)) -- flag_strict_volatile_bitfields = 1; -- - /* Register global variables with the garbage collector. */ - arm_add_gc_roots (); - diff --git a/patches/gcc-linaro-4.5-2011.02-0/series b/patches/gcc-linaro-4.5-2011.02-0/series deleted file mode 100644 index e070f10..0000000 --- a/patches/gcc-linaro-4.5-2011.02-0/series +++ /dev/null @@ -1,24 +0,0 @@ -# from OSELAS.toolchain -0001-no-host-includes.diff -0002-arm-softfloat.diff -0003-pr39429.diff - -# from uclibc -0004-uclibc-conf.patch -0005-missing-execinfo_h.patch -0006-c99-snprintf.patch -0007-libmudflap-susv3-legacy.patch -0008-arm_insn-opinit-RTX_CODE-fixup.patch -0009-short-enums.diff - -# from gentoo -0010-all_gcc-trampolinewarn.patch -0011-flatten-switch-stmt-00.patch -0012-libiberty-pic.patch -0013-libstdc++-pic.patch - -# from upstream -0015-Fix-libjava-cross-build-issue.patch - -# reverted linaro patch -0016-debian-patch-revert-issue1259.patch diff --git a/patches/gcc-linaro-4.6-2011.11/series b/patches/gcc-linaro-4.6-2011.11/series deleted file mode 100644 index a1123a9..0000000 --- a/patches/gcc-linaro-4.6-2011.11/series +++ /dev/null @@ -1,20 +0,0 @@ -# generated by git-ptx-patches -#tag:base -#tag:upstream --start-number 1 -../gcc-4.6.2/0002-Fix-compilation-with-host-gcc-4.7.patch -../gcc-4.6.2/0003-PR-tree-optimization-52445.patch -#tag:OSELAS.toolchain --start-number 100 -../gcc-4.6.2/0100-no-host-includes.patch -../gcc-4.6.2/0101-arm-softfloat.patch -../gcc-4.6.2/0102-fix-arith_adjacentmem-LDM-splitting-code.patch -#tag:uclibc --start-number 200 -../gcc-4.6.2/0200-also-match-uclibc-when-checking-host-os.patch -../gcc-4.6.2/0201-missing-execinfo.h.patch -../gcc-4.6.2/0202-c99-snprintf.patch -../gcc-4.6.2/0203-libmudflap-susv3-legacy.patch -#tag:gentoo --start-number 300 -../gcc-4.6.2/0300-gcc-trampolinewarn.patch -../gcc-4.6.2/0301-flatten-switch-stmt-into-if-else-chain-for-Os.patch -../gcc-4.6.2/0302-libiberty-pic.patch -../gcc-4.6.2/0303-libstdc-pic.patch -# c5647f7546073b493385ebc9cc02ad59 - git-ptx-patches magic diff --git a/patches/glibc-2.13/0001-install-lib-all.patch b/patches/glibc-2.13/0001-install-lib-all.patch deleted file mode 100644 index 79be15f..0000000 --- a/patches/glibc-2.13/0001-install-lib-all.patch +++ /dev/null @@ -1,45 +0,0 @@ -# --- T2-COPYRIGHT-NOTE-BEGIN --- -# This copyright note is auto-generated by ./scripts/Create-CopyPatch. -# -# T2 SDE: package/.../glibc32/make-install-lib-all.patch -# Copyright (C) 2004 - 2005 The T2 SDE Project -# -# More information can be found in the files COPYING and README. -# -# This patch file is dual-licensed. It is available under the license the -# patched project is licensed under, as long as it is an OpenSource license -# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms -# of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# --- T2-COPYRIGHT-NOTE-END --- ---- -# Makerules | 8 ++++++++ -# 1 file changed, 8 insertions(+) -# -Index: glibc-2.13/Makerules -=================================================================== ---- glibc-2.13.orig/Makerules -+++ glibc-2.13/Makerules -@@ -868,6 +868,13 @@ endef - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\ - $(inst_libdir)/$(patsubst %,$(libtype$o),\ - $(libprefix)$(libc-name))) -+ -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \ -+ $(inst_slibdir)/libc-$(version).so \ -+ $(inst_libdir)/libc.so \ -+ $(inst_libdir)/libc.a \ -+ install-lib -+ - install: $(installed-libcs) - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force) - $(make-target-directory) -@@ -891,6 +898,7 @@ endef - install-lib.so := $(filter %.so,$(install-lib:%_pic.a=%.so)) - install-lib := $(filter-out %.so %_pic.a,$(install-lib)) - -+ - ifeq (yes,$(build-shared)) - # Find which .so's have versions. - versioned := $(strip $(foreach so,$(install-lib.so),\ diff --git a/patches/glibc-2.13/0002-fix-build-with-static-nss.patch b/patches/glibc-2.13/0002-fix-build-with-static-nss.patch deleted file mode 100644 index a9960e7..0000000 --- a/patches/glibc-2.13/0002-fix-build-with-static-nss.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Dan Kegel -Subject: [patch] fix build error with static-nss -Date: Wed Jun 15 09:12:43 PDT 2005 - -This patch fixes - -build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r' -build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent' -... 53 lines deleted ... -build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r' -collect2: ld returned 1 exit status -make[2]: *** [/build/gcc-3.4.3-glibc-2.3.5-hdrs-2.6.11.2/i686-unknown-linux-gnu/build-glibc/elf/ldconfig] Error 1 - -when building glibc with --enable-static-nss. - -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631 - -Signed-off-by: Robert Schwebel - ---- - Makeconfig | 2 +- - elf/Makefile | 7 +++++++ - 2 files changed, 8 insertions(+), 1 deletion(-) - -Index: glibc-2.13/Makeconfig -=================================================================== ---- glibc-2.13.orig/Makeconfig -+++ glibc-2.13/Makeconfig -@@ -531,7 +531,7 @@ endif - - # The static libraries. - ifeq (yes,$(build-static)) --link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a -+link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a - else - ifeq (yes,$(build-shared)) - # We can try to link the programs with lib*_pic.a... -Index: glibc-2.13/elf/Makefile -=================================================================== ---- glibc-2.13.orig/elf/Makefile -+++ glibc-2.13/elf/Makefile -@@ -146,6 +146,13 @@ install-others = $(inst_slibdir)/$(rtld- - install-bin-script = ldd - endif - -+ifeq (yes,$(build-static-nss)) -+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss) -+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv) -+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ -+ $(resolvobjdir)/libresolv.a -+endif -+ - others = sprof sln - install-bin = sprof - others-static = sln diff --git a/patches/glibc-2.13/0003-glibc-configure-old-gcc.patch b/patches/glibc-2.13/0003-glibc-configure-old-gcc.patch deleted file mode 100644 index a1c74d6..0000000 --- a/patches/glibc-2.13/0003-glibc-configure-old-gcc.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- - configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: glibc-2.13/configure -=================================================================== ---- glibc-2.13.orig/configure -+++ glibc-2.13/configure -@@ -5049,7 +5049,7 @@ $as_echo_n "checking version of $CC... " - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 - $as_echo "$ac_prog_version" >&6; } - fi --if test $ac_verc_fail = yes; then -+if test $ac_verc_fail = yes -a -z "$enable_hacker_mode"; then - critic_missing="$critic_missing gcc" - fi - diff --git a/patches/glibc-2.13/0004-configure-in-sane-readelf.patch b/patches/glibc-2.13/0004-configure-in-sane-readelf.patch deleted file mode 100644 index ff445af..0000000 --- a/patches/glibc-2.13/0004-configure-in-sane-readelf.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- - configure.in | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -Index: glibc-2.13/configure.in -=================================================================== ---- glibc-2.13.orig/configure.in -+++ glibc-2.13/configure.in -@@ -1475,6 +1475,8 @@ EOF - fi - fi - -+ AC_CHECK_TARGET_TOOL([READELF],[readelf],[readelf],[$PATH]) -+ - AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support, - libc_cv_initfini_array, [dnl - cat > conftest.c <&AS_MESSAGE_LOG_FD]) - then -- if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then -+ if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then - libc_cv_initfini_array=yes - else - libc_cv_initfini_array=no -@@ -1673,7 +1675,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\(a\|\)\.dyn' > /dev/null; then - libc_cv_z_combreloc=yes - else - libc_cv_z_combreloc=no diff --git a/patches/glibc-2.13/0005-stdlib-longlong.patch b/patches/glibc-2.13/0005-stdlib-longlong.patch deleted file mode 100644 index ee47efd..0000000 --- a/patches/glibc-2.13/0005-stdlib-longlong.patch +++ /dev/null @@ -1,37 +0,0 @@ ---- - stdlib/longlong.h | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -Index: glibc-2.13/stdlib/longlong.h -=================================================================== ---- glibc-2.13.orig/stdlib/longlong.h -+++ glibc-2.13/stdlib/longlong.h -@@ -205,6 +205,14 @@ UDItype __umulsidi3 (USItype, USItype); - "rI" ((USItype) (bh)), \ - "r" ((USItype) (al)), \ - "rI" ((USItype) (bl)) __CLOBBER_CC) -+/* v3m and all higher arches have long multiply support. */ -+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__) -+#define umul_ppmm(xh, xl, a, b) \ -+ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b)) -+#define UMUL_TIME 5 -+#define smul_ppmm(xh, xl, a, b) \ -+ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b)) -+#else - #define umul_ppmm(xh, xl, a, b) \ - {register USItype __t0, __t1, __t2; \ - __asm__ ("%@ Inlined umul_ppmm\n" \ -@@ -226,7 +234,13 @@ UDItype __umulsidi3 (USItype, USItype); - : "r" ((USItype) (a)), \ - "r" ((USItype) (b)) __CLOBBER_CC );} - #define UMUL_TIME 20 -+#endif - #define UDIV_TIME 100 -+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__) -+#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) -+#define COUNT_LEADING_ZEROS_0 32 -+#endif -+ - #endif /* __arm__ */ - - #if defined(__arm__) diff --git a/patches/glibc-2.13/0006-respect-env-CPPFLAGS.patch b/patches/glibc-2.13/0006-respect-env-CPPFLAGS.patch deleted file mode 100644 index 63731b0..0000000 --- a/patches/glibc-2.13/0006-respect-env-CPPFLAGS.patch +++ /dev/null @@ -1,36 +0,0 @@ -Respect environment CPPFLAGS when we run ./configure so we can inject -random -D things without having to set CFLAGS/ASFLAGS - -This patch was taken from gentoo. - -Signed-off-by: Robert Schwebel - ---- - Makeconfig | 1 + - config.make.in | 1 + - 2 files changed, 2 insertions(+) - -Index: glibc-2.13/Makeconfig -=================================================================== ---- glibc-2.13.orig/Makeconfig -+++ glibc-2.13/Makeconfig -@@ -697,6 +697,7 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+incl - $(foreach lib,$(libof-$(basename $(@F))) \ - $(libof-$( - - * sysdeps/i386/i586/memcpy_chk.S: New file. - * sysdeps/i386/i586/mempcpy_chk.S: Likewise. - * sysdeps/i386/i586/memset_chk.S: Likewise. - ---- - i386/i586/memcpy_chk.S | 1 + - i386/i586/mempcpy_chk.S | 1 + - i386/i586/memset_chk.S | 1 + - 3 files changed, 3 insertions(+) - -Index: glibc-2.13/i386/i586/memcpy_chk.S -=================================================================== ---- /dev/null -+++ glibc-2.13/i386/i586/memcpy_chk.S -@@ -0,0 +1 @@ -+#include -Index: glibc-2.13/i386/i586/mempcpy_chk.S -=================================================================== ---- /dev/null -+++ glibc-2.13/i386/i586/mempcpy_chk.S -@@ -0,0 +1 @@ -+#include -Index: glibc-2.13/i386/i586/memset_chk.S -=================================================================== ---- /dev/null -+++ glibc-2.13/i386/i586/memset_chk.S -@@ -0,0 +1 @@ -+#include diff --git a/patches/glibc-2.13/0008-i386-x86_64-revert-clone-cfi.patch b/patches/glibc-2.13/0008-i386-x86_64-revert-clone-cfi.patch deleted file mode 100644 index 665de83..0000000 --- a/patches/glibc-2.13/0008-i386-x86_64-revert-clone-cfi.patch +++ /dev/null @@ -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 - ---- - sysdeps/unix/sysv/linux/i386/clone.S | 4 ---- - sysdeps/unix/sysv/linux/x86_64/clone.S | 4 ---- - 2 files changed, 8 deletions(-) - -Index: glibc-2.13/sysdeps/unix/sysv/linux/i386/clone.S -=================================================================== ---- glibc-2.13.orig/sysdeps/unix/sysv/linux/i386/clone.S -+++ glibc-2.13/sysdeps/unix/sysv/linux/i386/clone.S -@@ -120,9 +120,6 @@ L(pseudo_end): - 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 @@ L(nomoregetpid): - jmp L(haspid) - .previous - #endif -- cfi_endproc; - - cfi_startproc - PSEUDO_END (BP_SYM (__clone)) -Index: glibc-2.13/sysdeps/unix/sysv/linux/x86_64/clone.S -=================================================================== ---- glibc-2.13.orig/sysdeps/unix/sysv/linux/x86_64/clone.S -+++ glibc-2.13/sysdeps/unix/sysv/linux/x86_64/clone.S -@@ -89,9 +89,6 @@ L(pseudo_end): - 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 @@ L(thread_start): - /* Call exit with return value from function call. */ - movq %rax, %rdi - call HIDDEN_JUMPTARGET (_exit) -- cfi_endproc; - - cfi_startproc; - PSEUDO_END (BP_SYM (__clone)) diff --git a/patches/glibc-2.13/0009-queue-header-updates.patch b/patches/glibc-2.13/0009-queue-header-updates.patch deleted file mode 100644 index 8cd81ab..0000000 --- a/patches/glibc-2.13/0009-queue-header-updates.patch +++ /dev/null @@ -1,89 +0,0 @@ -grab some updates from FreeBSD - -http://bugs.gentoo.org/201979 - ---- - misc/sys/queue.h | 37 +++++++++++++++++++++++++++++++++++++ - 1 file changed, 37 insertions(+) - -Index: glibc-2.13/misc/sys/queue.h -=================================================================== ---- glibc-2.13.orig/misc/sys/queue.h -+++ glibc-2.13/misc/sys/queue.h -@@ -136,6 +136,11 @@ struct { \ - (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 @@ struct { \ - #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 @@ struct { \ - (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; \ -@@ -286,6 +307,11 @@ struct { \ - #define STAILQ_FIRST(head) ((head)->stqh_first) - #define STAILQ_NEXT(elm, field) ((elm)->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)) -+ - - /* - * Simple queue definitions. -@@ -437,11 +463,22 @@ struct { \ - (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; \ diff --git a/patches/glibc-2.13/0010-manual-no-perl.patch b/patches/glibc-2.13/0010-manual-no-perl.patch deleted file mode 100644 index cb56446..0000000 --- a/patches/glibc-2.13/0010-manual-no-perl.patch +++ /dev/null @@ -1,29 +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 - ---- - manual/Makefile | 5 +++++ - 1 file changed, 5 insertions(+) - -Index: glibc-2.13/manual/Makefile -=================================================================== ---- glibc-2.13.orig/manual/Makefile -+++ glibc-2.13/manual/Makefile -@@ -104,9 +104,14 @@ dir-add.texi: xtract-typefun.awk $(texis - 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. diff --git a/patches/glibc-2.13/0011-localedef-fix-trampoline.patch b/patches/glibc-2.13/0011-localedef-fix-trampoline.patch deleted file mode 100644 index d317be6..0000000 --- a/patches/glibc-2.13/0011-localedef-fix-trampoline.patch +++ /dev/null @@ -1,74 +0,0 @@ -#! /bin/sh -e - -# DP: Description: Fix localedef segfault when run under exec-shield, -# PaX or similar. (#231438, #198099) -# DP: Dpatch Author: James Troup -# DP: Patch Author: (probably) Jakub Jelinek -# DP: Upstream status: Unknown -# DP: Status Details: Unknown -# DP: Date: 2004-03-16 - -if [ $# -ne 2 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;; - -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -esac -exit 0 - ---- - locale/programs/3level.h | 36 ++++++++++++++++++++++++++++++++++++ - 1 file changed, 36 insertions(+) - -Index: glibc-2.13/locale/programs/3level.h -=================================================================== ---- glibc-2.13.orig/locale/programs/3level.h -+++ glibc-2.13/locale/programs/3level.h -@@ -203,6 +203,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t, - } - } - } -+ -+/* 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 diff --git a/patches/glibc-2.13/0012-posix-awk.patch b/patches/glibc-2.13/0012-posix-awk.patch deleted file mode 100644 index a20fad5..0000000 --- a/patches/glibc-2.13/0012-posix-awk.patch +++ /dev/null @@ -1,23 +0,0 @@ -http://bugs.gentoo.org/202511 - -2007-12-24 Mike Frysinger - - * elf/Makefile ($(objpfx)ld.so): Use POSIX (EF)? in awk. - ---- - elf/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: glibc-2.13/elf/Makefile -=================================================================== ---- glibc-2.13.orig/elf/Makefile -+++ glibc-2.13/elf/Makefile -@@ -389,7 +389,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld - -Wl,-soname=$(rtld-installed-name) -T $@.lds - rm -f $@.lds - readelf -s $@ \ -- | $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }' -+ | $(AWK) '($$7 ~ /^UND(EF)?$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }' - - # interp.c exists just to get this string into the libraries. - CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \ diff --git a/patches/glibc-2.13/0013-resolv-dynamic.patch b/patches/glibc-2.13/0013-resolv-dynamic.patch deleted file mode 100644 index 73eabc5..0000000 --- a/patches/glibc-2.13/0013-resolv-dynamic.patch +++ /dev/null @@ -1,44 +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 - ---- - resolv/res_libc.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -Index: glibc-2.13/resolv/res_libc.c -=================================================================== ---- glibc-2.13.orig/resolv/res_libc.c -+++ glibc-2.13/resolv/res_libc.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - - /* The following bit is copied from res_data.c (where it is #ifdef'ed -@@ -95,6 +96,20 @@ int - __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); diff --git a/patches/glibc-2.13/0014-section-comments.patch b/patches/glibc-2.13/0014-section-comments.patch deleted file mode 100644 index cb7012f..0000000 --- a/patches/glibc-2.13/0014-section-comments.patch +++ /dev/null @@ -1,29 +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 - ---- - include/libc-symbols.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -Index: glibc-2.13/include/libc-symbols.h -=================================================================== ---- glibc-2.13.orig/include/libc-symbols.h -+++ glibc-2.13/include/libc-symbols.h -@@ -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) \ diff --git a/patches/glibc-2.13/0015-no-inline-gmon.patch b/patches/glibc-2.13/0015-no-inline-gmon.patch deleted file mode 100644 index 444073b..0000000 --- a/patches/glibc-2.13/0015-no-inline-gmon.patch +++ /dev/null @@ -1,38 +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)). - ---- - sysdeps/generic/initfini.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: glibc-2.13/sysdeps/generic/initfini.c -=================================================================== ---- glibc-2.13.orig/sysdeps/generic/initfini.c -+++ glibc-2.13/sysdeps/generic/initfini.c -@@ -70,7 +70,7 @@ asm ("\n/*@TESTS_END*/"); - /* 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__);*/ diff --git a/patches/glibc-2.13/0016-china.patch b/patches/glibc-2.13/0016-china.patch deleted file mode 100644 index de4fd2a..0000000 --- a/patches/glibc-2.13/0016-china.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- - localedata/locales/zh_TW | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -Index: glibc-2.13/localedata/locales/zh_TW -=================================================================== ---- glibc-2.13.orig/localedata/locales/zh_TW -+++ glibc-2.13/localedata/locales/zh_TW -@@ -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 @@ escape_char / - % 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 @@ email "bug-glibc-locales@gnu.org" - tel "" - fax "" - language "Chinese" --territory "Taiwan R.O.C." -+territory "Taiwan" - revision "0.2" - date "2000-08-02" - % diff --git a/patches/glibc-2.13/0017-new-valencian-locale.patch b/patches/glibc-2.13/0017-new-valencian-locale.patch deleted file mode 100644 index 1782dfe..0000000 --- a/patches/glibc-2.13/0017-new-valencian-locale.patch +++ /dev/null @@ -1,122 +0,0 @@ -http://bugs.gentoo.org/show_bug.cgi?id=131815 -http://sourceware.org/bugzilla/show_bug.cgi?id=2522 - ---- - localedata/SUPPORTED | 2 - localedata/locales/ca_ES@valencia | 96 ++++++++++++++++++++++++++++++++++++++ - 2 files changed, 98 insertions(+) - -Index: glibc-2.13/localedata/SUPPORTED -=================================================================== ---- glibc-2.13.orig/localedata/SUPPORTED -+++ glibc-2.13/localedata/SUPPORTED -@@ -72,6 +72,8 @@ ca_AD/ISO-8859-15 \ - 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 \ -Index: glibc-2.13/localedata/locales/ca_ES@valencia -=================================================================== ---- /dev/null -+++ glibc-2.13/localedata/locales/ca_ES@valencia -@@ -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 diff --git a/patches/glibc-2.13/0018-strict-aliasing.patch b/patches/glibc-2.13/0018-strict-aliasing.patch deleted file mode 100644 index 7a3150c..0000000 --- a/patches/glibc-2.13/0018-strict-aliasing.patch +++ /dev/null @@ -1,91 +0,0 @@ -workaround strict aliasing warnings on individual files rather than -forcing the whole build with -fno-strict-aliasing - -http://bugs.gentoo.org/155906 - -note that we leave the logout.c and logwtmp.c warnings alone as the -code path that invokes the warning should not be executed when the -warning is applicable. - ---- - libio/Makefile | 4 ++-- - nis/Makefile | 3 +++ - nptl/Makefile | 1 + - nss/Makefile | 2 ++ - sunrpc/Makefile | 2 +- - 5 files changed, 9 insertions(+), 3 deletions(-) - -Index: glibc-2.13/libio/Makefile -=================================================================== ---- glibc-2.13.orig/libio/Makefile -+++ glibc-2.13/libio/Makefile -@@ -91,7 +91,7 @@ CFLAGS-fseeko.c = $(exceptions) - CFLAGS-ftello64.c = $(exceptions) - CFLAGS-ftello.c = $(exceptions) - CFLAGS-fwide.c = $(exceptions) --CFLAGS-genops.c = $(exceptions) -+CFLAGS-genops.c = $(exceptions) -fno-strict-aliasing - CFLAGS-getc.c = $(exceptions) - CFLAGS-getchar.c = $(exceptions) - CFLAGS-getwc.c = $(exceptions) -@@ -133,7 +133,7 @@ CFLAGS-putwc.c = $(exceptions) - CFLAGS-putwchar.c = $(exceptions) - CFLAGS-rewind.c = $(exceptions) - CFLAGS-wfileops.c = $(exceptions) --CFLAGS-wgenops.c = $(exceptions) -+CFLAGS-wgenops.c = $(exceptions) -fno-strict-aliasing - CFLAGS-oldiofopen.c = $(exceptions) - CFLAGS-iofopen.c = $(exceptions) - CFLAGS-iofopen64.c = $(exceptions) -Index: glibc-2.13/nis/Makefile -=================================================================== ---- glibc-2.13.orig/nis/Makefile -+++ glibc-2.13/nis/Makefile -@@ -67,6 +67,9 @@ libnss_nisplus-routines := $(addprefix n - nss-nisplus nisplus-initgroups - libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes)) - -+CFLAGS-nis_xdr.c += -fno-strict-aliasing -+CFLAGS-yp_xdr.c += -fno-strict-aliasing -+ - include ../Rules - - -Index: glibc-2.13/nptl/Makefile -=================================================================== ---- glibc-2.13.orig/nptl/Makefile -+++ glibc-2.13/nptl/Makefile -@@ -195,6 +195,7 @@ CFLAGS-tcdrain.c = -fexceptions -fasynch - - CFLAGS-pt-system.c = -fexceptions - -+CFLAGS-unwind-dw2.c += -fno-strict-aliasing - - tests = tst-typesizes \ - tst-attr1 tst-attr2 tst-attr3 \ -Index: glibc-2.13/nss/Makefile -=================================================================== ---- glibc-2.13.orig/nss/Makefile -+++ glibc-2.13/nss/Makefile -@@ -73,6 +73,8 @@ ifneq ($(build-static-nss),yes) - libnss_files-inhibit-o = $(filter-out .os,$(object-suffixes)) - endif - -+CFLAGS-nsswitch.c += -fno-strict-aliasing -+ - include ../Rules - - -Index: glibc-2.13/sunrpc/Makefile -=================================================================== ---- glibc-2.13.orig/sunrpc/Makefile -+++ glibc-2.13/sunrpc/Makefile -@@ -127,7 +127,7 @@ CFLAGS-pmap_rmt.c = -fexceptions - CFLAGS-clnt_perr.c = -fexceptions - CFLAGS-openchild.c = -fexceptions - --CPPFLAGS += -D_RPC_THREAD_SAFE_ -+CPPFLAGS += -D_RPC_THREAD_SAFE_ -fno-strict-aliasing - - include ../Rules - diff --git a/patches/glibc-2.13/0019-undefine-__i686.patch b/patches/glibc-2.13/0019-undefine-__i686.patch deleted file mode 100644 index 2928fe6..0000000 --- a/patches/glibc-2.13/0019-undefine-__i686.patch +++ /dev/null @@ -1,49 +0,0 @@ -If gcc is configured to generate i686 code or better by default (like -when using the --with-arch=pentium3 configure option), then the __i686 -macro will always be defined automatically and thus screw up the -compilation of some .S files. -http://bugs.gentoo.org/131108 -http://sourceware.org/ml/libc-alpha/2006-04/msg00090.html - -2006-04-25 Mike Frysinger - - * sysdeps/i386/sysdep.h (__i686): Undefine. - ---- - nptl/sysdeps/pthread/pt-initfini.c | 3 +++ - sysdeps/i386/sysdep.h | 8 ++++++++ - 2 files changed, 11 insertions(+) - -Index: glibc-2.13/nptl/sysdeps/pthread/pt-initfini.c -=================================================================== ---- glibc-2.13.orig/nptl/sysdeps/pthread/pt-initfini.c -+++ glibc-2.13/nptl/sysdeps/pthread/pt-initfini.c -@@ -45,6 +45,9 @@ - /* Embed an #include to pull in the alignment and .end directives. */ - asm ("\n#include \"defs.h\""); - -+/* Embed an #include to pull in asm settings. */ -+asm ("\n#ifdef __i686__\n#include \n#endif"); -+ - /* The initial common code ends here. */ - asm ("\n/*@HEADER_ENDS*/"); - -Index: glibc-2.13/sysdeps/i386/sysdep.h -=================================================================== ---- glibc-2.13.orig/sysdeps/i386/sysdep.h -+++ glibc-2.13/sysdeps/i386/sysdep.h -@@ -18,6 +18,14 @@ - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -+/* -+ * When building for i686 targets or better, gcc automatically defines -+ * '__i686' to '1' for us which causes trouble when using section names -+ * like '__i686.get_pc_thunk.reg'. Since we check for __i686__ in the -+ * code, killing '__i686' shouldn't be a problem. -+ */ -+#undef __i686 -+ - #include - - #ifdef __ASSEMBLER__ diff --git a/patches/glibc-2.13/0020-dl_execstack-PaX-support.patch b/patches/glibc-2.13/0020-dl_execstack-PaX-support.patch deleted file mode 100644 index 1bd7432..0000000 --- a/patches/glibc-2.13/0020-dl_execstack-PaX-support.patch +++ /dev/null @@ -1,73 +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. (12 Nov 2003). - - Patch also NPTL. Bug #116086. (20 Dec 2005). - ---- - nptl/allocatestack.c | 3 ++- - sysdeps/unix/sysv/linux/dl-execstack.c | 19 ++++++++++++++++--- - 2 files changed, 18 insertions(+), 4 deletions(-) - -Index: glibc-2.13/nptl/allocatestack.c -=================================================================== ---- glibc-2.13.orig/nptl/allocatestack.c -+++ glibc-2.13/nptl/allocatestack.c -@@ -329,7 +329,8 @@ change_stack_perm (struct pthread *pd - # 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; - } -Index: glibc-2.13/sysdeps/unix/sysv/linux/dl-execstack.c -=================================================================== ---- glibc-2.13.orig/sysdeps/unix/sysv/linux/dl-execstack.c -+++ glibc-2.13/sysdeps/unix/sysv/linux/dl-execstack.c -@@ -63,7 +63,10 @@ _dl_make_stack_executable (void **stack_ - else - # endif - { -- result = errno; -+ if (errno == EACCES) /* PAX is enabled */ -+ result = 0; -+ else -+ result = errno; - goto out; - } - } -@@ -89,7 +92,12 @@ _dl_make_stack_executable (void **stack_ - 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 @@ _dl_make_stack_executable (void **stack_ - 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; diff --git a/patches/glibc-2.13/0021-pre20040117-pt_pax.patch b/patches/glibc-2.13/0021-pre20040117-pt_pax.patch deleted file mode 100644 index 674571e..0000000 --- a/patches/glibc-2.13/0021-pre20040117-pt_pax.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- - elf/elf.h | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -Index: glibc-2.13/elf/elf.h -=================================================================== ---- glibc-2.13.orig/elf/elf.h -+++ glibc-2.13/elf/elf.h -@@ -580,6 +580,7 @@ typedef struct - #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 @@ typedef struct - #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 */ - diff --git a/patches/glibc-2.13/0022-fpscr_values.patch b/patches/glibc-2.13/0022-fpscr_values.patch deleted file mode 100644 index c1b7cbc..0000000 --- a/patches/glibc-2.13/0022-fpscr_values.patch +++ /dev/null @@ -1,42 +0,0 @@ -http://sources.redhat.com/ml/libc-alpha/2003-06/msg00027.html -http://www.m17n.org/linux-sh/ml/linux-sh/2003-05/msg00010.html - -http://rpm.sh-linux.org/rpm-2004/target/SRPMS/glibc-2.3.3-27.12.src.rpm - -http://bugs.gentoo.org/100696 - ---- - sysdeps/unix/sysv/linux/sh/Versions | 1 + - sysdeps/unix/sysv/linux/sh/sysdep.S | 10 ++++++++++ - 2 files changed, 11 insertions(+) - -Index: glibc-2.13/sysdeps/unix/sysv/linux/sh/Versions -=================================================================== ---- glibc-2.13.orig/sysdeps/unix/sysv/linux/sh/Versions -+++ glibc-2.13/sysdeps/unix/sysv/linux/sh/Versions -@@ -2,6 +2,7 @@ libc { - GLIBC_2.2 { - # functions used in other libraries - __xstat64; __fxstat64; __lxstat64; -+ __fpscr_values; - - # a* - alphasort64; -Index: glibc-2.13/sysdeps/unix/sysv/linux/sh/sysdep.S -=================================================================== ---- glibc-2.13.orig/sysdeps/unix/sysv/linux/sh/sysdep.S -+++ glibc-2.13/sysdeps/unix/sysv/linux/sh/sysdep.S -@@ -32,3 +32,13 @@ ENTRY (__syscall_error) - - #define __syscall_error __syscall_error_1 - #include -+ -+ .data -+ .align 3 -+ .globl ___fpscr_values -+ .type ___fpscr_values, @object -+ .size ___fpscr_values, 8 -+___fpscr_values: -+ .long 0 -+ .long 0x80000 -+weak_alias (___fpscr_values, __fpscr_values) diff --git a/patches/glibc-2.13/0023-Fix-prelinking.patch b/patches/glibc-2.13/0023-Fix-prelinking.patch deleted file mode 100644 index b63d8f5..0000000 --- a/patches/glibc-2.13/0023-Fix-prelinking.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: Andreas Schwab -Date: Tue, 28 Sep 2010 15:11:48 +0200 -Subject: [PATCH] Don't try to write to _rtld_global_ro after performing relro protection - -mol: Without this prelinking results in segfaults. - -Signed-off-by: Michael Olbrich ---- - ChangeLog | 5 +++++ - elf/rtld.c | 8 ++++---- - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index f551860..ea387db 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,8 @@ -+2010-09-28 Andreas Schwab -+ -+ * elf/rtld.c (dl_main): Move setting of GLRO(dl_init_all_dirs) -+ before performing relro protection. -+ - 2011-01-17 Ulrich Drepper - - * version.h (RELEASE): Bump for 2.13 release. -diff --git a/elf/rtld.c b/elf/rtld.c -index 8510380..e442528 100644 ---- a/elf/rtld.c -+++ b/elf/rtld.c -@@ -2179,6 +2179,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", - we need it in the memory handling later. */ - GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist; - -+ /* Remember the last search directory added at startup, now that -+ malloc will no longer be the one from dl-minimal.c. */ -+ GLRO(dl_init_all_dirs) = GL(dl_all_dirs); -+ - if (prelinked) - { - if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL) -@@ -2298,10 +2302,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", - lossage); - } - -- /* Remember the last search directory added at startup, now that -- malloc will no longer be the one from dl-minimal.c. */ -- GLRO(dl_init_all_dirs) = GL(dl_all_dirs); -- - if (! prelinked && rtld_multiple_ref) - { - /* There was an explicit ref to the dynamic linker as a shared lib. --- -1.7.2.3 - diff --git a/patches/glibc-2.13/0024-optimized-string-functions-for-NEON-from-Linaro.patch b/patches/glibc-2.13/0024-optimized-string-functions-for-NEON-from-Linaro.patch deleted file mode 100644 index 3e56ec8..0000000 --- a/patches/glibc-2.13/0024-optimized-string-functions-for-NEON-from-Linaro.patch +++ /dev/null @@ -1,1295 +0,0 @@ -From: Michael Olbrich -Date: Thu, 15 Sep 2011 16:50:56 +0200 -Subject: [PATCH] optimized string functions for NEON from Linaro - -Signed-off-by: Michael Olbrich ---- - .../sysdeps/arm/eabi/arm/cortex-a8/memchr.S | 150 +++++++ - .../sysdeps/arm/eabi/arm/cortex-a8/memcpy.S | 152 +++++++ - .../sysdeps/arm/eabi/arm/cortex-a8/memset.S | 118 +++++ - .../sysdeps/arm/eabi/arm/cortex-a8/strchr.S | 76 ++++ - .../sysdeps/arm/eabi/arm/cortex-a8/strcmp.c | 449 ++++++++++++++++++++ - .../sysdeps/arm/eabi/arm/cortex-a8/strcpy.c | 172 ++++++++ - .../sysdeps/arm/eabi/arm/cortex-a8/strlen.S | 111 +++++ - 7 files changed, 1228 insertions(+), 0 deletions(-) - create mode 100644 cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memchr.S - create mode 100644 cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memcpy.S - create mode 100644 cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memset.S - create mode 100644 cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strchr.S - create mode 100644 cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcmp.c - create mode 100644 cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcpy.c - create mode 100644 cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strlen.S - -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memchr.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memchr.S -new file mode 100644 -index 0000000..8f5aaa9 ---- /dev/null -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memchr.S -@@ -0,0 +1,150 @@ -+/* Copyright (c) 2010-2011, Linaro Limited -+ All rights reserved. -+ -+ Redistribution and use in source and binary forms, with or without -+ modification, are permitted provided that the following conditions -+ are met: -+ -+ * Redistributions of source code must retain the above copyright -+ notice, this list of conditions and the following disclaimer. -+ -+ * Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+ -+ * Neither the name of Linaro Limited nor the names of its -+ contributors may be used to endorse or promote products derived -+ from this software without specific prior written permission. -+ -+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+ Written by Dave Gilbert -+ -+ This memchr routine is optimised on a Cortex-A9 and should work on -+ all ARMv7 processors. It has a fast past for short sizes, and has -+ an optimised path for large data sets; the worst case is finding the -+ match early in a large data set. */ -+ -+@ 2011-02-07 david.gilbert@linaro.org -+@ Extracted from local git a5b438d861 -+@ 2011-07-14 david.gilbert@linaro.org -+@ Import endianness fix from local git ea786f1b -+ -+ .syntax unified -+ .arch armv7-a -+ -+@ this lets us check a flag in a 00/ff byte easily in either endianness -+#ifdef __ARMEB__ -+#define CHARTSTMASK(c) 1<<(31-(c*8)) -+#else -+#define CHARTSTMASK(c) 1<<(c*8) -+#endif -+ .text -+ .thumb -+ -+@ --------------------------------------------------------------------------- -+ .thumb_func -+ .align 2 -+ .p2align 4,,15 -+ .global memchr -+ .type memchr,%function -+memchr: -+ @ r0 = start of memory to scan -+ @ r1 = character to look for -+ @ r2 = length -+ @ returns r0 = pointer to character or NULL if not found -+ and r1,r1,#0xff @ Don't think we can trust the caller to actually pass a char -+ -+ cmp r2,#16 @ If it's short don't bother with anything clever -+ blt 20f -+ -+ tst r0, #7 @ If it's already aligned skip the next bit -+ beq 10f -+ -+ @ Work up to an aligned point -+5: -+ ldrb r3, [r0],#1 -+ subs r2, r2, #1 -+ cmp r3, r1 -+ beq 50f @ If it matches exit found -+ tst r0, #7 -+ cbz r2, 40f @ If we run off the end, exit not found -+ bne 5b @ If not aligned yet then do next byte -+ -+10: -+ @ At this point, we are aligned, we know we have at least 8 bytes to work with -+ push {r4,r5,r6,r7} -+ orr r1, r1, r1, lsl #8 @ expand the match word across to all bytes -+ orr r1, r1, r1, lsl #16 -+ bic r4, r2, #7 @ Number of double words to work with -+ mvns r7, #0 @ all F's -+ movs r3, #0 -+ -+15: -+ ldmia r0!,{r5,r6} -+ subs r4, r4, #8 -+ eor r5,r5, r1 @ Get it so that r5,r6 have 00's where the bytes match the target -+ eor r6,r6, r1 -+ uadd8 r5, r5, r7 @ Parallel add 0xff - sets the GE bits for anything that wasn't 0 -+ sel r5, r3, r7 @ bytes are 00 for none-00 bytes, or ff for 00 bytes - NOTE INVERSION -+ uadd8 r6, r6, r7 @ Parallel add 0xff - sets the GE bits for anything that wasn't 0 -+ sel r6, r5, r7 @ chained....bytes are 00 for none-00 bytes, or ff for 00 bytes - NOTE INVERSION -+ cbnz r6, 60f -+ bne 15b @ (Flags from the subs above) If not run out of bytes then go around again -+ -+ pop {r4,r5,r6,r7} -+ and r1,r1,#0xff @ Get r1 back to a single character from the expansion above -+ and r2,r2,#7 @ Leave the count remaining as the number after the double words have been done -+ -+20: -+ cbz r2, 40f @ 0 length or hit the end already then not found -+ -+21: @ Post aligned section, or just a short call -+ ldrb r3,[r0],#1 -+ subs r2,r2,#1 -+ eor r3,r3,r1 @ r3 = 0 if match - doesn't break flags from sub -+ cbz r3, 50f -+ bne 21b @ on r2 flags -+ -+40: -+ movs r0,#0 @ not found -+ bx lr -+ -+50: -+ subs r0,r0,#1 @ found -+ bx lr -+ -+60: @ We're here because the fast path found a hit - now we have to track down exactly which word it was -+ @ r0 points to the start of the double word after the one that was tested -+ @ r5 has the 00/ff pattern for the first word, r6 has the chained value -+ cmp r5, #0 -+ itte eq -+ moveq r5, r6 @ the end is in the 2nd word -+ subeq r0,r0,#3 @ Points to 2nd byte of 2nd word -+ subne r0,r0,#7 @ or 2nd byte of 1st word -+ -+ @ r0 currently points to the 3rd byte of the word containing the hit -+ tst r5, # CHARTSTMASK(0) @ 1st character -+ bne 61f -+ adds r0,r0,#1 -+ tst r5, # CHARTSTMASK(1) @ 2nd character -+ ittt eq -+ addeq r0,r0,#1 -+ tsteq r5, # (3<<15) @ 2nd & 3rd character -+ @ If not the 3rd must be the last one -+ addeq r0,r0,#1 -+ -+61: -+ pop {r4,r5,r6,r7} -+ subs r0,r0,#1 -+ bx lr -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memcpy.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memcpy.S -new file mode 100644 -index 0000000..3be24ca ---- /dev/null -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memcpy.S -@@ -0,0 +1,152 @@ -+/* Copyright (c) 2010-2011, Linaro Limited -+ All rights reserved. -+ -+ Redistribution and use in source and binary forms, with or without -+ modification, are permitted provided that the following conditions -+ are met: -+ -+ * Redistributions of source code must retain the above copyright -+ notice, this list of conditions and the following disclaimer. -+ -+ * Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+ -+ * Neither the name of Linaro Limited nor the names of its -+ contributors may be used to endorse or promote products derived -+ from this software without specific prior written permission. -+ -+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+ Written by Dave Gilbert -+ -+ This memcpy routine is optimised on a Cortex-A9 and should work on -+ all ARMv7 processors with NEON. */ -+ -+@ 2011-09-01 david.gilbert@linaro.org -+@ Extracted from local git 2f11b436 -+ -+ .syntax unified -+ .arch armv7-a -+ -+@ this lets us check a flag in a 00/ff byte easily in either endianness -+#ifdef __ARMEB__ -+#define CHARTSTMASK(c) 1<<(31-(c*8)) -+#else -+#define CHARTSTMASK(c) 1<<(c*8) -+#endif -+ .text -+ .thumb -+ -+@ --------------------------------------------------------------------------- -+ .thumb_func -+ .align 2 -+ .p2align 4,,15 -+ .global memcpy -+ .type memcpy,%function -+memcpy: -+ @ r0 = dest -+ @ r1 = source -+ @ r2 = count -+ @ returns dest in r0 -+ @ Overlaps of source/dest not allowed according to spec -+ @ Note this routine relies on v7 misaligned loads/stores -+ pld [r1] -+ mov r12, r0 @ stash original r0 -+ cmp r2,#32 -+ blt 10f @ take the small copy case separately -+ -+ @ test for either source or destination being misaligned -+ @ (We only rely on word align) -+ tst r0,#3 -+ it eq -+ tsteq r1,#3 -+ bne 30f @ misaligned case -+ -+4: -+ @ at this point we are word (or better) aligned and have at least -+ @ 32 bytes to play with -+ -+ @ If it's a huge copy, try Neon -+ cmp r2, #128*1024 -+ bge 35f @ Sharing general non-aligned case here, aligned could be faster -+ -+ push {r3,r4,r5,r6,r7,r8,r10,r11} -+5: -+ ldmia r1!,{r3,r4,r5,r6,r7,r8,r10,r11} -+ sub r2,r2,#32 -+ pld [r1,#96] -+ cmp r2,#32 -+ stmia r0!,{r3,r4,r5,r6,r7,r8,r10,r11} -+ bge 5b -+ -+ pop {r3,r4,r5,r6,r7,r8,r10,r11} -+ @ We are now down to less than 32 bytes -+ cbz r2,15f @ quick exit for the case where we copied a multiple of 32 -+ -+10: @ small copies (not necessarily aligned - note might be slightly more than 32bytes) -+ cmp r2,#4 -+ blt 12f -+11: -+ sub r2,r2,#4 -+ cmp r2,#4 -+ ldr r3, [r1],#4 -+ str r3, [r0],#4 -+ bge 11b -+12: -+ tst r2,#2 -+ itt ne -+ ldrhne r3, [r1],#2 -+ strhne r3, [r0],#2 -+ -+ tst r2,#1 -+ itt ne -+ ldrbne r3, [r1],#1 -+ strbne r3, [r0],#1 -+ -+15: @ exit -+ mov r0,r12 @ restore r0 -+ bx lr -+ -+ .align 2 -+ .p2align 4,,15 -+30: @ non-aligned - at least 32 bytes to play with -+ @ Test for co-misalignment -+ eor r3, r0, r1 -+ tst r3,#3 -+ beq 50f -+ -+ @ Use Neon for misaligned -+35: -+ vld1.8 {d0,d1,d2,d3}, [r1]! -+ sub r2,r2,#32 -+ cmp r2,#32 -+ pld [r1,#96] -+ vst1.8 {d0,d1,d2,d3}, [r0]! -+ bge 35b -+ b 10b @ TODO: Probably a bad idea to switch to ARM at this point -+ -+ .align 2 -+ .p2align 4,,15 -+50: @ Co-misaligned -+ @ At this point we've got at least 32 bytes -+51: -+ ldrb r3,[r1],#1 -+ sub r2,r2,#1 -+ strb r3,[r0],#1 -+ tst r0,#7 -+ bne 51b -+ -+ cmp r2,#32 -+ blt 10b -+ b 4b -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memset.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memset.S -new file mode 100644 -index 0000000..921cb75 ---- /dev/null -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memset.S -@@ -0,0 +1,118 @@ -+/* Copyright (c) 2010-2011, Linaro Limited -+ All rights reserved. -+ -+ Redistribution and use in source and binary forms, with or without -+ modification, are permitted provided that the following conditions -+ are met: -+ -+ * Redistributions of source code must retain the above copyright -+ notice, this list of conditions and the following disclaimer. -+ -+ * Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+ -+ * Neither the name of Linaro Limited nor the names of its -+ contributors may be used to endorse or promote products derived -+ from this software without specific prior written permission. -+ -+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+ Written by Dave Gilbert -+ -+ This memset routine is optimised on a Cortex-A9 and should work on -+ all ARMv7 processors. */ -+ -+ .syntax unified -+ .arch armv7-a -+ -+@ 2011-08-30 david.gilbert@linaro.org -+@ Extracted from local git 2f11b436 -+ -+@ this lets us check a flag in a 00/ff byte easily in either endianness -+#ifdef __ARMEB__ -+#define CHARTSTMASK(c) 1<<(31-(c*8)) -+#else -+#define CHARTSTMASK(c) 1<<(c*8) -+#endif -+ .text -+ .thumb -+ -+@ --------------------------------------------------------------------------- -+ .thumb_func -+ .align 2 -+ .p2align 4,,15 -+ .global memset -+ .type memset,%function -+memset: -+ @ r0 = address -+ @ r1 = character -+ @ r2 = count -+ @ returns original address in r0 -+ -+ mov r3, r0 @ Leave r0 alone -+ cbz r2, 10f @ Exit if 0 length -+ -+ tst r0, #7 -+ beq 2f @ Already aligned -+ -+ @ Ok, so we're misaligned here -+1: -+ strb r1, [r3], #1 -+ subs r2,r2,#1 -+ tst r3, #7 -+ cbz r2, 10f @ Exit if we hit the end -+ bne 1b @ go round again if still misaligned -+ -+2: -+ @ OK, so we're aligned -+ push {r4,r5,r6,r7} -+ bics r4, r2, #15 @ if less than 16 bytes then need to finish it off -+ beq 5f -+ -+3: -+ @ POSIX says that ch is cast to an unsigned char. A uxtb is one -+ @ byte and takes two cycles, where an AND is four bytes but one -+ @ cycle. -+ and r1, #0xFF -+ orr r1, r1, r1, lsl#8 @ Same character into all bytes -+ orr r1, r1, r1, lsl#16 -+ mov r5,r1 -+ mov r6,r1 -+ mov r7,r1 -+ -+4: -+ subs r4,r4,#16 -+ stmia r3!,{r1,r5,r6,r7} -+ bne 4b -+ and r2,r2,#15 -+ -+ @ At this point we're still aligned and we have upto align-1 bytes left to right -+ @ we can avoid some of the byte-at-a time now by testing for some big chunks -+ tst r2,#8 -+ itt ne -+ subne r2,r2,#8 -+ stmiane r3!,{r1,r5} -+ -+5: -+ pop {r4,r5,r6,r7} -+ cbz r2, 10f -+ -+ @ Got to do any last < alignment bytes -+6: -+ subs r2,r2,#1 -+ strb r1,[r3],#1 -+ bne 6b -+ -+10: -+ bx lr @ goodbye -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strchr.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strchr.S -new file mode 100644 -index 0000000..8875dbf ---- /dev/null -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strchr.S -@@ -0,0 +1,76 @@ -+/* Copyright (c) 2010-2011, Linaro Limited -+ All rights reserved. -+ -+ Redistribution and use in source and binary forms, with or without -+ modification, are permitted provided that the following conditions -+ are met: -+ -+ * Redistributions of source code must retain the above copyright -+ notice, this list of conditions and the following disclaimer. -+ -+ * Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+ -+ * Neither the name of Linaro Limited nor the names of its -+ contributors may be used to endorse or promote products derived -+ from this software without specific prior written permission. -+ -+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+ Written by Dave Gilbert -+ -+ A very simple strchr routine, from benchmarks on A9 it's a bit faster than -+ the current version in eglibc (2.12.1-0ubuntu14 package) -+ I don't think doing a word at a time version is worth it since a lot -+ of strchr cases are very short anyway */ -+ -+@ 2011-02-07 david.gilbert@linaro.org -+@ Extracted from local git a5b438d861 -+ -+ .syntax unified -+ .arch armv7-a -+ -+ .text -+ .thumb -+ -+@ --------------------------------------------------------------------------- -+ -+ .thumb_func -+ .align 2 -+ .p2align 4,,15 -+ .global strchr -+ .type strchr,%function -+strchr: -+ @ r0 = start of string -+ @ r1 = character to match -+ @ returns NULL for no match, or a pointer to the match -+ and r1,r1, #255 -+ -+1: -+ ldrb r2,[r0],#1 -+ cmp r2,r1 -+ cbz r2,10f -+ bne 1b -+ -+ @ We're here if it matched -+5: -+ subs r0,r0,#1 -+ bx lr -+ -+10: -+ @ We're here if we ran off the end -+ cmp r1, #0 @ Corner case - you're allowed to search for the nil and get a pointer to it -+ beq 5b @ A bit messy, if it's common we should branch at the start to a special loop -+ mov r0,#0 -+ bx lr -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcmp.c b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcmp.c -new file mode 100644 -index 0000000..fb2280d ---- /dev/null -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcmp.c -@@ -0,0 +1,449 @@ -+/* -+ * Copyright (c) 2008 ARM Ltd -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 3. The name of the company may not be used to endorse or promote -+ * products derived from this software without specific prior written -+ * permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED -+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -+ * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#include -+#include -+ -+#undef strcmp -+ -+ -+#ifdef __ARMEB__ -+#define SHFT2LSB "lsl" -+#define SHFT2MSB "lsr" -+#define MSB "0x000000ff" -+#define LSB "0xff000000" -+#else -+#define SHFT2LSB "lsr" -+#define SHFT2MSB "lsl" -+#define MSB "0xff000000" -+#define LSB "0x000000ff" -+#endif -+ -+#ifdef __thumb2__ -+#define magic1(REG) "#0x01010101" -+#define magic2(REG) "#0x80808080" -+#else -+#define magic1(REG) #REG -+#define magic2(REG) #REG ", lsl #7" -+#endif -+ -+int -+__attribute__((naked)) strcmp (const char* s1, const char* s2) -+{ -+ asm( -+#if !(defined(__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ -+ (defined (__thumb__) && !defined (__thumb2__))) -+ "pld [r0, #0]\n\t" -+ "pld [r1, #0]\n\t" -+ "eor r2, r0, r1\n\t" -+ "tst r2, #3\n\t" -+ /* Strings not at same byte offset from a word boundary. */ -+ "bne strcmp_unaligned\n\t" -+ "ands r2, r0, #3\n\t" -+ "bic r0, r0, #3\n\t" -+ "bic r1, r1, #3\n\t" -+ "ldr ip, [r0], #4\n\t" -+ "it eq\n\t" -+ "ldreq r3, [r1], #4\n\t" -+ "beq 1f\n\t" -+ /* Although s1 and s2 have identical initial alignment, they are -+ not currently word aligned. Rather than comparing bytes, -+ make sure that any bytes fetched from before the addressed -+ bytes are forced to 0xff. Then they will always compare -+ equal. */ -+ "eor r2, r2, #3\n\t" -+ "lsl r2, r2, #3\n\t" -+ "mvn r3, #"MSB"\n\t" -+ SHFT2LSB" r2, r3, r2\n\t" -+ "ldr r3, [r1], #4\n\t" -+ "orr ip, ip, r2\n\t" -+ "orr r3, r3, r2\n" -+ "1:\n\t" -+#ifndef __thumb2__ -+ /* Load the 'magic' constant 0x01010101. */ -+ "str r4, [sp, #-4]!\n\t" -+ "mov r4, #1\n\t" -+ "orr r4, r4, r4, lsl #8\n\t" -+ "orr r4, r4, r4, lsl #16\n" -+#endif -+ ".p2align 2\n" -+ "4:\n\t" -+ "pld [r0, #8]\n\t" -+ "pld [r1, #8]\n\t" -+ "sub r2, ip, "magic1(r4)"\n\t" -+ "cmp ip, r3\n\t" -+ "itttt eq\n\t" -+ /* check for any zero bytes in first word */ -+ "biceq r2, r2, ip\n\t" -+ "tsteq r2, "magic2(r4)"\n\t" -+ "ldreq ip, [r0], #4\n\t" -+ "ldreq r3, [r1], #4\n\t" -+ "beq 4b\n" -+ "2:\n\t" -+ /* There's a zero or a different byte in the word */ -+ SHFT2MSB" r0, ip, #24\n\t" -+ SHFT2LSB" ip, ip, #8\n\t" -+ "cmp r0, #1\n\t" -+ "it cs\n\t" -+ "cmpcs r0, r3, "SHFT2MSB" #24\n\t" -+ "it eq\n\t" -+ SHFT2LSB"eq r3, r3, #8\n\t" -+ "beq 2b\n\t" -+ /* On a big-endian machine, r0 contains the desired byte in bits -+ 0-7; on a little-endian machine they are in bits 24-31. In -+ both cases the other bits in r0 are all zero. For r3 the -+ interesting byte is at the other end of the word, but the -+ other bits are not necessarily zero. We need a signed result -+ representing the differnece in the unsigned bytes, so for the -+ little-endian case we can't just shift the interesting bits -+ up. */ -+#ifdef __ARMEB__ -+ "sub r0, r0, r3, lsr #24\n\t" -+#else -+ "and r3, r3, #255\n\t" -+#ifdef __thumb2__ -+ /* No RSB instruction in Thumb2 */ -+ "lsr r0, r0, #24\n\t" -+ "sub r0, r0, r3\n\t" -+#else -+ "rsb r0, r3, r0, lsr #24\n\t" -+#endif -+#endif -+#ifndef __thumb2__ -+ "ldr r4, [sp], #4\n\t" -+#endif -+ "BX LR" -+#elif (defined (__thumb__) && !defined (__thumb2__)) -+ "1:\n\t" -+ "ldrb r2, [r0]\n\t" -+ "ldrb r3, [r1]\n\t" -+ "add r0, r0, #1\n\t" -+ "add r1, r1, #1\n\t" -+ "cmp r2, #0\n\t" -+ "beq 2f\n\t" -+ "cmp r2, r3\n\t" -+ "beq 1b\n\t" -+ "2:\n\t" -+ "sub r0, r2, r3\n\t" -+ "bx lr" -+#else -+ "3:\n\t" -+ "ldrb r2, [r0], #1\n\t" -+ "ldrb r3, [r1], #1\n\t" -+ "cmp r2, #1\n\t" -+ "it cs\n\t" -+ "cmpcs r2, r3\n\t" -+ "beq 3b\n\t" -+ "sub r0, r2, r3\n\t" -+ "BX LR" -+#endif -+ ); -+} -+ -+#if !(defined(__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ -+ (defined (__thumb__) && !defined (__thumb2__))) -+static int __attribute__((naked, used)) -+strcmp_unaligned(const char* s1, const char* s2) -+{ -+#if 0 -+ /* The assembly code below is based on the following alogrithm. */ -+#ifdef __ARMEB__ -+#define RSHIFT << -+#define LSHIFT >> -+#else -+#define RSHIFT >> -+#define LSHIFT << -+#endif -+ -+#define body(shift) \ -+ mask = 0xffffffffU RSHIFT shift; \ -+ w1 = *wp1++; \ -+ w2 = *wp2++; \ -+ do \ -+ { \ -+ t1 = w1 & mask; \ -+ if (__builtin_expect(t1 != w2 RSHIFT shift, 0)) \ -+ { \ -+ w2 RSHIFT= shift; \ -+ break; \ -+ } \ -+ if (__builtin_expect(((w1 - b1) & ~w1) & (b1 << 7), 0)) \ -+ { \ -+ /* See comment in assembler below re syndrome on big-endian */\ -+ if ((((w1 - b1) & ~w1) & (b1 << 7)) & mask) \ -+ w2 RSHIFT= shift; \ -+ else \ -+ { \ -+ w2 = *wp2; \ -+ t1 = w1 RSHIFT (32 - shift); \ -+ w2 = (w2 LSHIFT (32 - shift)) RSHIFT (32 - shift); \ -+ } \ -+ break; \ -+ } \ -+ w2 = *wp2++; \ -+ t1 ^= w1; \ -+ if (__builtin_expect(t1 != w2 LSHIFT (32 - shift), 0)) \ -+ { \ -+ t1 = w1 >> (32 - shift); \ -+ w2 = (w2 << (32 - shift)) RSHIFT (32 - shift); \ -+ break; \ -+ } \ -+ w1 = *wp1++; \ -+ } while (1) -+ -+ const unsigned* wp1; -+ const unsigned* wp2; -+ unsigned w1, w2; -+ unsigned mask; -+ unsigned shift; -+ unsigned b1 = 0x01010101; -+ char c1, c2; -+ unsigned t1; -+ -+ while (((unsigned) s1) & 3) -+ { -+ c1 = *s1++; -+ c2 = *s2++; -+ if (c1 == 0 || c1 != c2) -+ return c1 - (int)c2; -+ } -+ wp1 = (unsigned*) (((unsigned)s1) & ~3); -+ wp2 = (unsigned*) (((unsigned)s2) & ~3); -+ t1 = ((unsigned) s2) & 3; -+ if (t1 == 1) -+ { -+ body(8); -+ } -+ else if (t1 == 2) -+ { -+ body(16); -+ } -+ else -+ { -+ body (24); -+ } -+ -+ do -+ { -+#ifdef __ARMEB__ -+ c1 = (char) t1 >> 24; -+ c2 = (char) w2 >> 24; -+#else -+ c1 = (char) t1; -+ c2 = (char) w2; -+#endif -+ t1 RSHIFT= 8; -+ w2 RSHIFT= 8; -+ } while (c1 != 0 && c1 == c2); -+ return c1 - c2; -+#endif -+ -+ asm("wp1 .req r0\n\t" -+ "wp2 .req r1\n\t" -+ "b1 .req r2\n\t" -+ "w1 .req r4\n\t" -+ "w2 .req r5\n\t" -+ "t1 .req ip\n\t" -+ "@ r3 is scratch\n" -+ -+ /* First of all, compare bytes until wp1(sp1) is word-aligned. */ -+ "1:\n\t" -+ "tst wp1, #3\n\t" -+ "beq 2f\n\t" -+ "ldrb r2, [wp1], #1\n\t" -+ "ldrb r3, [wp2], #1\n\t" -+ "cmp r2, #1\n\t" -+ "it cs\n\t" -+ "cmpcs r2, r3\n\t" -+ "beq 1b\n\t" -+ "sub r0, r2, r3\n\t" -+ "BX LR\n" -+ -+ "2:\n\t" -+ "str r5, [sp, #-4]!\n\t" -+ "str r4, [sp, #-4]!\n\t" -+ // "stmfd sp!, {r4, r5}\n\t" -+ "mov b1, #1\n\t" -+ "orr b1, b1, b1, lsl #8\n\t" -+ "orr b1, b1, b1, lsl #16\n\t" -+ -+ "and t1, wp2, #3\n\t" -+ "bic wp2, wp2, #3\n\t" -+ "ldr w1, [wp1], #4\n\t" -+ "ldr w2, [wp2], #4\n\t" -+ "cmp t1, #2\n\t" -+ "beq 2f\n\t" -+ "bhi 3f\n" -+ -+ /* Critical inner Loop: Block with 3 bytes initial overlap */ -+ ".p2align 2\n" -+ "1:\n\t" -+ "bic t1, w1, #"MSB"\n\t" -+ "cmp t1, w2, "SHFT2LSB" #8\n\t" -+ "sub r3, w1, b1\n\t" -+ "bic r3, r3, w1\n\t" -+ "bne 4f\n\t" -+ "ands r3, r3, b1, lsl #7\n\t" -+ "it eq\n\t" -+ "ldreq w2, [wp2], #4\n\t" -+ "bne 5f\n\t" -+ "eor t1, t1, w1\n\t" -+ "cmp t1, w2, "SHFT2MSB" #24\n\t" -+ "bne 6f\n\t" -+ "ldr w1, [wp1], #4\n\t" -+ "b 1b\n" -+ "4:\n\t" -+ SHFT2LSB" w2, w2, #8\n\t" -+ "b 8f\n" -+ -+ "5:\n\t" -+#ifdef __ARMEB__ -+ /* The syndrome value may contain false ones if the string ends -+ with the bytes 0x01 0x00 */ -+ "tst w1, #0xff000000\n\t" -+ "itt ne\n\t" -+ "tstne w1, #0x00ff0000\n\t" -+ "tstne w1, #0x0000ff00\n\t" -+ "beq 7f\n\t" -+#else -+ "bics r3, r3, #0xff000000\n\t" -+ "bne 7f\n\t" -+#endif -+ "ldrb w2, [wp2]\n\t" -+ SHFT2LSB" t1, w1, #24\n\t" -+#ifdef __ARMEB__ -+ "lsl w2, w2, #24\n\t" -+#endif -+ "b 8f\n" -+ -+ "6:\n\t" -+ SHFT2LSB" t1, w1, #24\n\t" -+ "and w2, w2, #"LSB"\n\t" -+ "b 8f\n" -+ -+ /* Critical inner Loop: Block with 2 bytes initial overlap */ -+ ".p2align 2\n" -+ "2:\n\t" -+ SHFT2MSB" t1, w1, #16\n\t" -+ "sub r3, w1, b1\n\t" -+ SHFT2LSB" t1, t1, #16\n\t" -+ "bic r3, r3, w1\n\t" -+ "cmp t1, w2, "SHFT2LSB" #16\n\t" -+ "bne 4f\n\t" -+ "ands r3, r3, b1, lsl #7\n\t" -+ "it eq\n\t" -+ "ldreq w2, [wp2], #4\n\t" -+ "bne 5f\n\t" -+ "eor t1, t1, w1\n\t" -+ "cmp t1, w2, "SHFT2MSB" #16\n\t" -+ "bne 6f\n\t" -+ "ldr w1, [wp1], #4\n\t" -+ "b 2b\n" -+ -+ "5:\n\t" -+#ifdef __ARMEB__ -+ /* The syndrome value may contain false ones if the string ends -+ with the bytes 0x01 0x00 */ -+ "tst w1, #0xff000000\n\t" -+ "it ne\n\t" -+ "tstne w1, #0x00ff0000\n\t" -+ "beq 7f\n\t" -+#else -+ "lsls r3, r3, #16\n\t" -+ "bne 7f\n\t" -+#endif -+ "ldrh w2, [wp2]\n\t" -+ SHFT2LSB" t1, w1, #16\n\t" -+#ifdef __ARMEB__ -+ "lsl w2, w2, #16\n\t" -+#endif -+ "b 8f\n" -+ -+ "6:\n\t" -+ SHFT2MSB" w2, w2, #16\n\t" -+ SHFT2LSB" t1, w1, #16\n\t" -+ "4:\n\t" -+ SHFT2LSB" w2, w2, #16\n\t" -+ "b 8f\n\t" -+ -+ /* Critical inner Loop: Block with 1 byte initial overlap */ -+ ".p2align 2\n" -+ "3:\n\t" -+ "and t1, w1, #"LSB"\n\t" -+ "cmp t1, w2, "SHFT2LSB" #24\n\t" -+ "sub r3, w1, b1\n\t" -+ "bic r3, r3, w1\n\t" -+ "bne 4f\n\t" -+ "ands r3, r3, b1, lsl #7\n\t" -+ "it eq\n\t" -+ "ldreq w2, [wp2], #4\n\t" -+ "bne 5f\n\t" -+ "eor t1, t1, w1\n\t" -+ "cmp t1, w2, "SHFT2MSB" #8\n\t" -+ "bne 6f\n\t" -+ "ldr w1, [wp1], #4\n\t" -+ "b 3b\n" -+ "4:\n\t" -+ SHFT2LSB" w2, w2, #24\n\t" -+ "b 8f\n" -+ "5:\n\t" -+ /* The syndrome value may contain false ones if the string ends -+ with the bytes 0x01 0x00 */ -+ "tst w1, #"LSB"\n\t" -+ "beq 7f\n\t" -+ "ldr w2, [wp2], #4\n" -+ "6:\n\t" -+ SHFT2LSB" t1, w1, #8\n\t" -+ "bic w2, w2, #"MSB"\n\t" -+ "b 8f\n" -+ "7:\n\t" -+ "mov r0, #0\n\t" -+ // "ldmfd sp!, {r4, r5}\n\t" -+ "ldr r4, [sp], #4\n\t" -+ "ldr r5, [sp], #4\n\t" -+ "BX LR\n" -+ "8:\n\t" -+ "and r2, t1, #"LSB"\n\t" -+ "and r0, w2, #"LSB"\n\t" -+ "cmp r0, #1\n\t" -+ "it cs\n\t" -+ "cmpcs r0, r2\n\t" -+ "itt eq\n\t" -+ SHFT2LSB"eq t1, t1, #8\n\t" -+ SHFT2LSB"eq w2, w2, #8\n\t" -+ "beq 8b\n\t" -+ "sub r0, r2, r0\n\t" -+ // "ldmfd sp!, {r4, r5}\n\t" -+ "ldr r4, [sp], #4\n\t" -+ "ldr r5, [sp], #4\n\t" -+ "BX LR"); -+} -+ -+#endif -+ -+libc_hidden_builtin_def (strcmp) -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcpy.c b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcpy.c -new file mode 100644 -index 0000000..aa8cb06 ---- /dev/null -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcpy.c -@@ -0,0 +1,172 @@ -+/* -+ * Copyright (c) 2008 ARM Ltd -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 3. The name of the company may not be used to endorse or promote -+ * products derived from this software without specific prior written -+ * permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED -+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -+ * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#include -+#include -+ -+#undef strcmp -+ -+ -+#ifdef __thumb2__ -+#define magic1(REG) "#0x01010101" -+#define magic2(REG) "#0x80808080" -+#else -+#define magic1(REG) #REG -+#define magic2(REG) #REG ", lsl #7" -+#endif -+ -+char* __attribute__((naked)) -+strcpy (char* dst, const char* src) -+{ -+ asm ( -+#if !(defined(__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ -+ (defined (__thumb__) && !defined (__thumb2__))) -+ "pld [r1, #0]\n\t" -+ "eor r2, r0, r1\n\t" -+ "mov ip, r0\n\t" -+ "tst r2, #3\n\t" -+ "bne 4f\n\t" -+ "tst r1, #3\n\t" -+ "bne 3f\n" -+ "5:\n\t" -+#ifndef __thumb2__ -+ "str r5, [sp, #-4]!\n\t" -+ "mov r5, #0x01\n\t" -+ "orr r5, r5, r5, lsl #8\n\t" -+ "orr r5, r5, r5, lsl #16\n\t" -+#endif -+ -+ "str r4, [sp, #-4]!\n\t" -+ "tst r1, #4\n\t" -+ "ldr r3, [r1], #4\n\t" -+ "beq 2f\n\t" -+ "sub r2, r3, "magic1(r5)"\n\t" -+ "bics r2, r2, r3\n\t" -+ "tst r2, "magic2(r5)"\n\t" -+ "itt eq\n\t" -+ "streq r3, [ip], #4\n\t" -+ "ldreq r3, [r1], #4\n" -+ "bne 1f\n\t" -+ /* Inner loop. We now know that r1 is 64-bit aligned, so we -+ can safely fetch up to two words. This allows us to avoid -+ load stalls. */ -+ ".p2align 2\n" -+ "2:\n\t" -+ "pld [r1, #8]\n\t" -+ "ldr r4, [r1], #4\n\t" -+ "sub r2, r3, "magic1(r5)"\n\t" -+ "bics r2, r2, r3\n\t" -+ "tst r2, "magic2(r5)"\n\t" -+ "sub r2, r4, "magic1(r5)"\n\t" -+ "bne 1f\n\t" -+ "str r3, [ip], #4\n\t" -+ "bics r2, r2, r4\n\t" -+ "tst r2, "magic2(r5)"\n\t" -+ "itt eq\n\t" -+ "ldreq r3, [r1], #4\n\t" -+ "streq r4, [ip], #4\n\t" -+ "beq 2b\n\t" -+ "mov r3, r4\n" -+ "1:\n\t" -+#ifdef __ARMEB__ -+ "rors r3, r3, #24\n\t" -+#endif -+ "strb r3, [ip], #1\n\t" -+ "tst r3, #0xff\n\t" -+#ifdef __ARMEL__ -+ "ror r3, r3, #8\n\t" -+#endif -+ "bne 1b\n\t" -+ "ldr r4, [sp], #4\n\t" -+#ifndef __thumb2__ -+ "ldr r5, [sp], #4\n\t" -+#endif -+ "BX LR\n" -+ -+ /* Strings have the same offset from word alignment, but it's -+ not zero. */ -+ "3:\n\t" -+ "tst r1, #1\n\t" -+ "beq 1f\n\t" -+ "ldrb r2, [r1], #1\n\t" -+ "strb r2, [ip], #1\n\t" -+ "cmp r2, #0\n\t" -+ "it eq\n" -+ "BXEQ LR\n" -+ "1:\n\t" -+ "tst r1, #2\n\t" -+ "beq 5b\n\t" -+ "ldrh r2, [r1], #2\n\t" -+#ifdef __ARMEB__ -+ "tst r2, #0xff00\n\t" -+ "iteet ne\n\t" -+ "strneh r2, [ip], #2\n\t" -+ "lsreq r2, r2, #8\n\t" -+ "streqb r2, [ip]\n\t" -+ "tstne r2, #0xff\n\t" -+#else -+ "tst r2, #0xff\n\t" -+ "itet ne\n\t" -+ "strneh r2, [ip], #2\n\t" -+ "streqb r2, [ip]\n\t" -+ "tstne r2, #0xff00\n\t" -+#endif -+ "bne 5b\n\t" -+ "BX LR\n" -+ -+ /* src and dst do not have a common word-alignement. Fall back to -+ byte copying. */ -+ "4:\n\t" -+ "ldrb r2, [r1], #1\n\t" -+ "strb r2, [ip], #1\n\t" -+ "cmp r2, #0\n\t" -+ "bne 4b\n\t" -+ "BX LR" -+ -+#elif !defined (__thumb__) || defined (__thumb2__) -+ "mov r3, r0\n\t" -+ "1:\n\t" -+ "ldrb r2, [r1], #1\n\t" -+ "strb r2, [r3], #1\n\t" -+ "cmp r2, #0\n\t" -+ "bne 1b\n\t" -+ "BX LR" -+#else -+ "mov r3, r0\n\t" -+ "1:\n\t" -+ "ldrb r2, [r1]\n\t" -+ "add r1, r1, #1\n\t" -+ "strb r2, [r3]\n\t" -+ "add r3, r3, #1\n\t" -+ "cmp r2, #0\n\t" -+ "bne 1b\n\t" -+ "BX LR" -+#endif -+ ); -+} -+libc_hidden_builtin_def (strcpy) -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strlen.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strlen.S -new file mode 100644 -index 0000000..125e92f ---- /dev/null -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strlen.S -@@ -0,0 +1,111 @@ -+/* Copyright (c) 2010-2011, Linaro Limited -+ All rights reserved. -+ -+ Redistribution and use in source and binary forms, with or without -+ modification, are permitted provided that the following conditions -+ are met: -+ -+ * Redistributions of source code must retain the above copyright -+ notice, this list of conditions and the following disclaimer. -+ -+ * Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+ -+ * Neither the name of Linaro Limited nor the names of its -+ contributors may be used to endorse or promote products derived -+ from this software without specific prior written permission. -+ -+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+ Written by Dave Gilbert -+ -+ This strlen routine is optimised on a Cortex-A9 and should work on -+ all ARMv7 processors. This routine is reasonably fast for short -+ strings, but is probably slower than a simple implementation if all -+ your strings are very short */ -+ -+@ 2011-02-08 david.gilbert@linaro.org -+@ Extracted from local git 6848613a -+ -+ -+@ this lets us check a flag in a 00/ff byte easily in either endianness -+#ifdef __ARMEB__ -+#define CHARTSTMASK(c) 1<<(31-(c*8)) -+#else -+#define CHARTSTMASK(c) 1<<(c*8) -+#endif -+ -+@----------------------------------------------------------------------------------------------------------------------------- -+ .syntax unified -+ .arch armv7-a -+ -+ .thumb_func -+ .align 2 -+ .p2align 4,,15 -+ .global strlen -+ .type strlen,%function -+strlen: -+ @ r0 = string -+ @ returns count of bytes in string not including terminator -+ mov r1, r0 -+ push { r4,r6 } -+ mvns r6, #0 @ all F -+ movs r4, #0 -+ tst r0, #7 -+ beq 2f -+ -+1: -+ ldrb r2, [r1], #1 -+ tst r1, #7 @ Hit alignment yet? -+ cbz r2, 10f @ Exit if we found the 0 -+ bne 1b -+ -+ @ So we're now aligned -+2: -+ ldmia r1!,{r2,r3} -+ uadd8 r2, r2, r6 @ Parallel add 0xff - sets the GE bits for anything that wasn't 0 -+ sel r2, r4, r6 @ bytes are 00 for none-00 bytes, or ff for 00 bytes - NOTE INVERSION -+ uadd8 r3, r3, r6 @ Parallel add 0xff - sets the GE bits for anything that wasn't 0 -+ sel r3, r2, r6 @ bytes are 00 for none-00 bytes, or ff for 00 bytes - NOTE INVERSION -+ cmp r3, #0 -+ beq 2b -+ -+strlenendtmp: -+ @ One (or more) of the bytes we loaded was 0 - but which one? -+ @ r2 has the mask corresponding to the first loaded word -+ @ r3 has a combined mask of the two words - but if r2 was all-non 0 -+ @ then it's just the 2nd words -+ cmp r2, #0 -+ itte eq -+ moveq r2, r3 @ the end is in the 2nd word -+ subeq r1,r1,#3 -+ subne r1,r1,#7 -+ -+ @ r1 currently points to the 2nd byte of the word containing the 0 -+ tst r2, # CHARTSTMASK(0) @ 1st character -+ bne 10f -+ adds r1,r1,#1 -+ tst r2, # CHARTSTMASK(1) @ 2nd character -+ ittt eq -+ addeq r1,r1,#1 -+ tsteq r2, # (3<<15) @ 2nd & 3rd character -+ @ If not the 3rd must be the last one -+ addeq r1,r1,#1 -+ -+10: -+ @ r0 is still at the beginning, r1 is pointing 1 byte after the terminator -+ sub r0, r1, r0 -+ subs r0, r0, #1 -+ pop { r4, r6 } -+ bx lr --- -1.7.7 - diff --git a/patches/glibc-2.13/0025-add-libc_hidden_builtin_def-for-all-cortex-functions.patch b/patches/glibc-2.13/0025-add-libc_hidden_builtin_def-for-all-cortex-functions.patch deleted file mode 100644 index c5e0d23..0000000 --- a/patches/glibc-2.13/0025-add-libc_hidden_builtin_def-for-all-cortex-functions.patch +++ /dev/null @@ -1,79 +0,0 @@ -From: Michael Olbrich -Date: Thu, 15 Sep 2011 23:30:25 +0200 -Subject: [PATCH] add libc_hidden_builtin_def for all cortex functions - -Signed-off-by: Michael Olbrich ---- - .../sysdeps/arm/eabi/arm/cortex-a8/memchr.S | 3 +++ - .../sysdeps/arm/eabi/arm/cortex-a8/memcpy.S | 2 ++ - .../sysdeps/arm/eabi/arm/cortex-a8/memset.S | 2 ++ - .../sysdeps/arm/eabi/arm/cortex-a8/strchr.S | 3 +++ - .../sysdeps/arm/eabi/arm/cortex-a8/strcpy.c | 1 + - .../sysdeps/arm/eabi/arm/cortex-a8/strlen.S | 2 ++ - 6 files changed, 13 insertions(+), 0 deletions(-) - -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memchr.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memchr.S -index 8f5aaa9..6d497cb 100644 ---- a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memchr.S -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memchr.S -@@ -148,3 +148,6 @@ memchr: - pop {r4,r5,r6,r7} - subs r0,r0,#1 - bx lr -+ -+strong_alias (memchr, __memchr) -+libc_hidden_builtin_def (memchr) -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memcpy.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memcpy.S -index 3be24ca..c274207 100644 ---- a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memcpy.S -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memcpy.S -@@ -150,3 +150,5 @@ memcpy: - cmp r2,#32 - blt 10b - b 4b -+ -+libc_hidden_builtin_def (memcpy) -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memset.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memset.S -index 921cb75..d4c12a4 100644 ---- a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memset.S -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/memset.S -@@ -116,3 +116,5 @@ memset: - - 10: - bx lr @ goodbye -+ -+libc_hidden_builtin_def (memset) -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strchr.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strchr.S -index 8875dbf..05c832f 100644 ---- a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strchr.S -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strchr.S -@@ -74,3 +74,6 @@ strchr: - beq 5b @ A bit messy, if it's common we should branch at the start to a special loop - mov r0,#0 - bx lr -+ -+weak_alias (strchr, index) -+libc_hidden_builtin_def (strchr) -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcpy.c b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcpy.c -index aa8cb06..3bbaa86 100644 ---- a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcpy.c -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strcpy.c -@@ -169,4 +169,5 @@ strcpy (char* dst, const char* src) - #endif - ); - } -+ - libc_hidden_builtin_def (strcpy) -diff --git a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strlen.S b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strlen.S -index 125e92f..a1e02ad 100644 ---- a/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strlen.S -+++ b/cortex-strings/sysdeps/arm/eabi/arm/cortex-a8/strlen.S -@@ -109,3 +109,5 @@ strlenendtmp: - subs r0, r0, #1 - pop { r4, r6 } - bx lr -+ -+libc_hidden_builtin_def (strlen) --- -1.7.7 - diff --git a/patches/glibc-2.13/series b/patches/glibc-2.13/series deleted file mode 100644 index 313e852..0000000 --- a/patches/glibc-2.13/series +++ /dev/null @@ -1,25 +0,0 @@ -0001-install-lib-all.patch -0002-fix-build-with-static-nss.patch -0003-glibc-configure-old-gcc.patch -0004-configure-in-sane-readelf.patch -0005-stdlib-longlong.patch -0006-respect-env-CPPFLAGS.patch -0007-i586-chk.patch -0008-i386-x86_64-revert-clone-cfi.patch -0009-queue-header-updates.patch -0010-manual-no-perl.patch -0011-localedef-fix-trampoline.patch -0012-posix-awk.patch -0013-resolv-dynamic.patch -0014-section-comments.patch -0015-no-inline-gmon.patch -0016-china.patch -0017-new-valencian-locale.patch -0018-strict-aliasing.patch -0019-undefine-__i686.patch -0020-dl_execstack-PaX-support.patch -0021-pre20040117-pt_pax.patch -0022-fpscr_values.patch -0023-Fix-prelinking.patch -0024-optimized-string-functions-for-NEON-from-Linaro.patch -0025-add-libc_hidden_builtin_def-for-all-cortex-functions.patch diff --git a/patches/glibc-2.3.6/generic/0001-Handle-future-binutils-versions-correctly.patch b/patches/glibc-2.3.6/generic/0001-Handle-future-binutils-versions-correctly.patch deleted file mode 100644 index 6705245..0000000 --- a/patches/glibc-2.3.6/generic/0001-Handle-future-binutils-versions-correctly.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 02841776426c7cf82afd345b04433bbac0747628 Mon Sep 17 00:00:00 2001 -From: H.J. Lu -Date: Sat, 5 Sep 2009 07:06:19 -0700 -Subject: [PATCH] Handle future binutils versions correctly. - -cherry picked and squashed from upstream git. - -Signed-off-by: Marc Kleine-Budde - ---- - ChangeLog | 13 +++++++++++++ - configure | 4 ++-- - configure.in | 4 ++-- - 3 files changed, 17 insertions(+), 4 deletions(-) - -Index: glibc-2.3.6/ChangeLog -=================================================================== ---- glibc-2.3.6.orig/ChangeLog 2010-06-14 16:14:07.198229159 +0200 -+++ glibc-2.3.6/ChangeLog 2010-06-14 16:14:31.465731765 +0200 -@@ -1,3 +1,16 @@ -+2009-09-10 H.J. Lu -+ -+ * configure.in: Exclude binutils 2.X. Support binutils 2.100 -+ and XX. -+ -+2009-09-05 H.J. Lu -+ -+ * configure.in: Support binutils 2.100 and 3.0. -+ -+2009-09-04 H.J. Lu -+ -+ * configure.in: Support binutils 2.20. -+ - 2005-11-03 Roland McGrath - - * NEWS, version.h (VERSION): 2.3.6. -Index: glibc-2.3.6/configure -=================================================================== ---- glibc-2.3.6.orig/configure 2010-06-14 16:14:07.208230159 +0200 -+++ glibc-2.3.6/configure 2010-06-14 16:14:31.475734685 +0200 -@@ -3917,7 +3917,7 @@ - ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; -- 2.1[3-9]*) -+ 2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-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;; - -@@ -3978,7 +3978,7 @@ - ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; -- 2.1[3-9]*) -+ 2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-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;; - -Index: glibc-2.3.6/configure.in -=================================================================== ---- glibc-2.3.6.orig/configure.in 2010-06-14 16:14:07.208230159 +0200 -+++ glibc-2.3.6/configure.in 2010-06-14 16:14:31.618009326 +0200 -@@ -734,10 +734,10 @@ - # Accept binutils 2.13 or newer. - AC_CHECK_PROG_VER(AS, $AS, --version, - [GNU assembler.* \([0-9]*\.[0-9.]*\)], -- [2.1[3-9]*], AS=: critic_missing="$critic_missing as") -+ [2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], AS=: critic_missing="$critic_missing as") - AC_CHECK_PROG_VER(LD, $LD, --version, - [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)], -- [2.1[3-9]*], LD=: critic_missing="$critic_missing ld") -+ [2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], LD=: critic_missing="$critic_missing ld") - - # We need the physical current working directory. We cannot use the - # "pwd -P" shell builtin since that's not portable. Instead we try to diff --git a/patches/glibc-2.3.6/generic/csu_Makefile-quotes.diff b/patches/glibc-2.3.6/generic/csu_Makefile-quotes.diff deleted file mode 100644 index 5ff7d39..0000000 --- a/patches/glibc-2.3.6/generic/csu_Makefile-quotes.diff +++ /dev/null @@ -1,22 +0,0 @@ -From: Marc Kleine-Budde -Subject: works now on ubuntu, where bin dash in /bin/sh - -Signed-off-by: Marc Kleine-Budde - ---- - csu/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: glibc-2.3.6/csu/Makefile -=================================================================== ---- glibc-2.3.6.orig/csu/Makefile -+++ glibc-2.3.6/csu/Makefile -@@ -241,7 +241,7 @@ $(objpfx)version-info.h: $(common-objpfx - esac; \ - files="$(all-Banner-files)"; \ - if test -n "$$files"; then \ -- echo "\"Available extensions:\\n\""; \ -+ echo '"Available extensions:\\n"'; \ - sed -e '/^#/d' -e 's/^[[:space:]]*/ /' \ - -e 's/^\(.*\)$$/\"\1\\n\"/' $$files; \ - fi) > $@T diff --git a/patches/glibc-2.3.6/generic/gentoo/1090_all_glibc-2.3.6-fix-pr631.patch b/patches/glibc-2.3.6/generic/gentoo/1090_all_glibc-2.3.6-fix-pr631.patch deleted file mode 100644 index c004764..0000000 --- a/patches/glibc-2.3.6/generic/gentoo/1090_all_glibc-2.3.6-fix-pr631.patch +++ /dev/null @@ -1,52 +0,0 @@ -From dank@kegel.com -Wed Jun 15 09:12:43 PDT 2005 - -Fixes - -build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r' -build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent' -... 53 lines deleted ... -build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r' -collect2: ld returned 1 exit status -make[2]: *** [/build/gcc-3.4.3-glibc-2.3.5-hdrs-2.6.11.2/i686-unknown-linux-gnu/build-glibc/elf/ldconfig] Error 1 - -when building glibc with --enable-static-nss. - -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631 - ---- - Makeconfig | 2 +- - elf/Makefile | 7 +++++++ - 2 files changed, 8 insertions(+), 1 deletion(-) - -Index: glibc-2.3.6/Makeconfig -=================================================================== ---- glibc-2.3.6.orig/Makeconfig 2010-06-14 16:14:07.198229159 +0200 -+++ glibc-2.3.6/Makeconfig 2010-06-14 16:14:25.468230244 +0200 -@@ -487,7 +487,7 @@ - - # The static libraries. - ifeq (yes,$(build-static)) --link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a -+link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a - else - ifeq (yes,$(build-shared)) - # We can try to link the programs with lib*_pic.a... -Index: glibc-2.3.6/elf/Makefile -=================================================================== ---- glibc-2.3.6.orig/elf/Makefile 2010-06-14 16:14:07.208230159 +0200 -+++ glibc-2.3.6/elf/Makefile 2010-06-14 16:14:25.673340602 +0200 -@@ -115,6 +115,13 @@ - install-bin-script = ldd - endif - -+ifeq (yes,$(build-static-nss)) -+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss) -+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv) -+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ -+ $(resolvobjdir)/libresolv.a -+endif -+ - others = sprof sln - install-bin = sprof - others-static = sln diff --git a/patches/glibc-2.3.6/generic/make-install-lib-all.patch b/patches/glibc-2.3.6/generic/make-install-lib-all.patch deleted file mode 100644 index 1e69bb2..0000000 --- a/patches/glibc-2.3.6/generic/make-install-lib-all.patch +++ /dev/null @@ -1,26 +0,0 @@ -From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch -Rule to install all needed libraries, not just the ones installed by install-lib, -yet not install programs. -Needed because we can't use the main install target, as we can't build programs before -we have the final gcc installed; linking fails because libeh.a is not present, -and glibc insists on linking programs with that library. - -diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules ---- glibc-2.3.4.orig/Makerules 2004-12-15 20:52:39.000000000 +0200 -+++ glibc-2.3.4/Makerules 2005-02-19 15:16:31.415125176 +0200 -@@ -844,6 +844,13 @@ - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\ - $(inst_libdir)/$(patsubst %,$(libtype$o),\ - $(libprefix)$(libc-name))) -+ -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \ -+ $(inst_slibdir)/libc-$(version).so \ -+ $(inst_libdir)/libc.so \ -+ $(inst_libdir)/libc.a \ -+ install-lib -+ - install: $(installed-libcs) - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force) - $(make-target-directory) - -Signed-off-by: Robert P. J. Day diff --git a/patches/glibc-2.3.6/generic/series b/patches/glibc-2.3.6/generic/series deleted file mode 100644 index 9a5b8e9..0000000 --- a/patches/glibc-2.3.6/generic/series +++ /dev/null @@ -1,8 +0,0 @@ -make-install-lib-all.patch -sysdeps_arm_dl-machine_h-fix_bad_pc24.diff -sysdeps_unix_sysv_linux_arm_ioperm_c-BUS_ISA.diff -sysdeps_unix_sysv_linux_arm_socket_S-alias.diff -sysdeps_arm-fp-byteorder.diff -csu_Makefile-quotes.diff -gentoo/1090_all_glibc-2.3.6-fix-pr631.patch -0001-Handle-future-binutils-versions-correctly.patch diff --git a/patches/glibc-2.3.6/generic/sysdeps_arm-fp-byteorder.diff b/patches/glibc-2.3.6/generic/sysdeps_arm-fp-byteorder.diff deleted file mode 100644 index d45cdbc..0000000 --- a/patches/glibc-2.3.6/generic/sysdeps_arm-fp-byteorder.diff +++ /dev/null @@ -1,205 +0,0 @@ -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html -Author: addsub@eyou.com -Target: ARM - -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c -and makes printf("%f", 1.0) work. - -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html : - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point - is broken' on my big-endian hardfloat FPA ARM platform. ... - It's definitely needed for hardfloat. So I'd think it's needed for - big-endian systems in any case, and for VFP on little-endian systems - too. Someone would have to verify that though. - -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html - I just had a look at glibc-20040830, and [this patch] is still needed and useful - for this version. glibc-20040830 out-of-the-box still contains the - following wrong assumptions: - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is - not on vfp systems) - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they - are not on big endian systems, neither on vfp systems) - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order - (which they are not on big endian systems) - [This patch] seems the right solution for all of these issues. - -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html : - It's even needed for glibc CVS, AFAICS. - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h - (currently at version 1.4) is only needed for proper VFP operation. - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed - for proper operation of *any* FP model on big endian ARM. - -See also discussion in followups to -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html) - -Message-ID: <276985760.37584@eyou.com> -Received: from unknown (HELO eyou.com) (172.16.2.2) - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800 -Date: 17 Feb 2004 10:42:38 +0800 -Message-ID: <20040217104238.8237.qmail@eyou.com> -From: "add" -To: dank@kegel.com -Reply-To: "add" -Subject: Re:   problem while building arm vfp softfloat gcc ` - -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat -toolchain can printf("%f\n",1.0). So you may have a try of this - - -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h ---- glibc.old/sysdeps/arm/bits/endian.h 1999-04-12 11:59:13.000000000 -0400 -+++ glibc.new/sysdeps/arm/bits/endian.h 2004-02-12 09:15:13.000000000 -0500 -@@ -9,4 +9,9 @@ - #else - #define __BYTE_ORDER __LITTLE_ENDIAN - #endif -+ -+#ifdef __VFP_FP__ -+#define __FLOAT_WORD_ORDER __BYTE_ORDER -+#else - #define __FLOAT_WORD_ORDER __BIG_ENDIAN -+#endif -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h ---- glibc.old/sysdeps/arm/gmp-mparam.h 2001-07-07 15:21:19.000000000 -0400 -+++ glibc.new/sysdeps/arm/gmp-mparam.h 2004-02-12 09:15:13.000000000 -0500 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */ - #define BITS_PER_SHORTINT 16 - #define BITS_PER_CHAR 8 - --#define IEEE_DOUBLE_BIG_ENDIAN 0 --#define IEEE_DOUBLE_MIXED_ENDIAN 1 -+#if defined(__ARMEB__) -+# define IEEE_DOUBLE_MIXED_ENDIAN 0 -+# define IEEE_DOUBLE_BIG_ENDIAN 1 -+#elif defined(__VFP_FP__) -+# define IEEE_DOUBLE_MIXED_ENDIAN 0 -+# define IEEE_DOUBLE_BIG_ENDIAN 0 -+#else -+# define IEEE_DOUBLE_BIG_ENDIAN 0 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1 -+#endif -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h ---- glibc.old/sysdeps/arm/ieee754.h 2001-07-07 15:21:19.000000000 -0400 -+++ glibc.new/sysdeps/arm/ieee754.h 1969-12-31 19:00:00.000000000 -0500 -@@ -1,115 +0,0 @@ --/* Copyright (C) 1992, 1995, 1996, 1998 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. */ -- --#ifndef _IEEE754_H -- --#define _IEEE754_H 1 --#include -- --#include -- --__BEGIN_DECLS -- --union ieee754_float -- { -- float f; -- -- /* This is the IEEE 754 single-precision format. */ -- struct -- { -- unsigned int mantissa:23; -- unsigned int exponent:8; -- unsigned int negative:1; -- } ieee; -- -- /* This format makes it easier to see if a NaN is a signalling NaN. */ -- struct -- { -- unsigned int mantissa:22; -- unsigned int quiet_nan:1; -- unsigned int exponent:8; -- unsigned int negative:1; -- } ieee_nan; -- }; -- --#define IEEE754_FLOAT_BIAS 0x7f /* Added to exponent. */ -- -- --union ieee754_double -- { -- double d; -- -- /* This is the IEEE 754 double-precision format. */ -- struct -- { -- unsigned int mantissa0:20; -- unsigned int exponent:11; -- unsigned int negative:1; -- unsigned int mantissa1:32; -- } ieee; -- -- /* This format makes it easier to see if a NaN is a signalling NaN. */ -- struct -- { -- unsigned int mantissa0:19; -- unsigned int quiet_nan:1; -- unsigned int exponent:11; -- unsigned int negative:1; -- unsigned int mantissa1:32; -- } ieee_nan; -- }; -- --#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */ -- -- --/* The following two structures are correct for `new' floating point systems but -- wrong for the old FPPC. The only solution seems to be to avoid their use on -- old hardware. */ -- --union ieee854_long_double -- { -- long double d; -- -- /* This is the IEEE 854 double-extended-precision format. */ -- struct -- { -- unsigned int exponent:15; -- unsigned int empty:16; -- unsigned int negative:1; -- unsigned int mantissa1:32; -- unsigned int mantissa0:32; -- } ieee; -- -- /* This is for NaNs in the IEEE 854 double-extended-precision format. */ -- struct -- { -- unsigned int exponent:15; -- unsigned int empty:16; -- unsigned int negative:1; -- unsigned int mantissa1:32; -- unsigned int mantissa0:30; -- unsigned int quiet_nan:1; -- unsigned int one:1; -- } ieee_nan; -- }; -- --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff -- --__END_DECLS -- --#endif /* ieee754.h */ - -Signed-off-by: Robert P. J. Day diff --git a/patches/glibc-2.3.6/generic/sysdeps_arm_dl-machine_h-fix_bad_pc24.diff b/patches/glibc-2.3.6/generic/sysdeps_arm_dl-machine_h-fix_bad_pc24.diff deleted file mode 100644 index 9506e45..0000000 --- a/patches/glibc-2.3.6/generic/sysdeps_arm_dl-machine_h-fix_bad_pc24.diff +++ /dev/null @@ -1,35 +0,0 @@ -Fixes -In file included from dynamic-link.h:22, - from dl-reloc.c:265: -../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object': -../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24' -make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.6/glibc-2.3.6/elf' - -when building glibc-2.3.6 with gcc-4.0 - -Like -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc -but fixes fix_bad_pc24. - - ---- a/sysdeps/arm/dl-machine.h Sun Mar 20 17:54:37 2005 -+++ b/sysdeps/arm/dl-machine.h Sun Mar 20 17:57:32 2005 -@@ -357,7 +357,14 @@ - #ifdef RESOLVE - - /* Deal with an out-of-range PC24 reloc. */ --static Elf32_Addr -+#if __GNUC__ >= 4 -+ auto inline Elf32_Addr -+#else -+ static inline Elf32_Addr -+#endif -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -+ __attribute ((always_inline)) -+#endif - fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value) - { - static void *fix_page; - -Signed-off-by: Robert P. J. Day -with a little editing by dank@kegel.com diff --git a/patches/glibc-2.3.6/generic/sysdeps_unix_sysv_linux_arm_ioperm_c-BUS_ISA.diff b/patches/glibc-2.3.6/generic/sysdeps_unix_sysv_linux_arm_ioperm_c-BUS_ISA.diff deleted file mode 100644 index 413c685..0000000 --- a/patches/glibc-2.3.6/generic/sysdeps_unix_sysv_linux_arm_ioperm_c-BUS_ISA.diff +++ /dev/null @@ -1,53 +0,0 @@ -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004. -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, -Fixes following error: - -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys': -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function) -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.) -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]') -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]') -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1 - -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html - ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800 -@@ -47,6 +47,12 @@ - #include - #include - -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */ -+#include -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23)) -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */ -+#endif -+ - #define PATH_ARM_SYSTYPE "/etc/arm_systype" - #define PATH_CPUINFO "/proc/cpuinfo" - -@@ -80,7 +86,7 @@ - * Initialize I/O system. There are several ways to get the information - * we need. Each is tried in turn until one succeeds. - * -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method - * but not all kernels support it. - * - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE. -@@ -100,8 +106,8 @@ - { - char systype[256]; - int i, n; -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE }; -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; - size_t len = sizeof(io.base); - - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) - -Signed-off-by: Robert P. J. Day diff --git a/patches/glibc-2.3.6/generic/sysdeps_unix_sysv_linux_arm_socket_S-alias.diff b/patches/glibc-2.3.6/generic/sysdeps_unix_sysv_linux_arm_socket_S-alias.diff deleted file mode 100644 index 1819990..0000000 --- a/patches/glibc-2.3.6/generic/sysdeps_unix_sysv_linux_arm_socket_S-alias.diff +++ /dev/null @@ -1,64 +0,0 @@ -# -# Submitted-By: Marc Kleine-Budde, 2006-08-13 -# Committed-By: Marc Kleine-Budde -# -# Error: -# -# armeb-xscale-linux-gnu-gcc ../sysdeps/unix/sysv/linux/bind.S -c -#-I../include -#-I. -I/home/frogger/pengutronix/ptxdist/build/toolchain-armv5b-softfloat-linux-gnu/build-target/glibc-2.3.6-build/socket -#-I.. -I../libio -#-I/home/frogger/pengutronix/ptxdist/build/toolchain-armv5b-softfloat-linux-gnu/build-target/glibc-2.3.6-build -#-I../sysdeps/arm/elf -I../linuxthreads/sysdeps/unix/sysv/linux/arm -#-I../linuxthreads/sysdeps/unix/sysv/linux -#-I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -#-I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -#-I../linuxthreads/sysdeps/arm -I../sysdeps/unix/sysv/linux/arm -#-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -#-I../sysdeps/unix/common -I../sysdeps/unix/mman -#-I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/arm -#-I../sysdeps/unix -I../sysdeps/posix -I../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 -nostdinc -isystem -#/usr/opt/ptxdist-0.10.svn/armeb-xscale-linux-gnu/gcc-4.1.1-glibc-2.3.6/bin/../lib/gcc/armeb-xscale-linux-gnu/4.1.1/include -#-isystem -#/opt/ptxdist-0.10.svn/armeb-xscale-linux-gnu/gcc-4.1.1-glibc-2.3.6/sysroot-armeb-xscale-linux-gnu/usr/include -#-D_LIBC_REENTRANT -include ../include/libc-symbols.h -DASSEMBLER -g -#-o -#/home/frogger/pengutronix/ptxdist/build/toolchain-armv5b-softfloat-linux-gnu/build-target/glibc-2.3.6-build/socket/bind.o -#-MD -MP -MF -#/home/frogger/pengutronix/ptxdist/build/toolchain-armv5b-softfloat-linux-gnu/build-target/glibc-2.3.6-build/socket/bind.o.dt -#-MT -#/home/frogger/pengutronix/ptxdist/build/toolchain-armv5b-softfloat-linux-gnu/build-target/glibc-2.3.6-build/socket/bind.o -#../sysdeps/unix/sysv/linux/bind.S: Assembler messages: -#../sysdeps/unix/sysv/linux/bind.S:5: Error: symbol `__bind' is already defined -# -# State: -# -# fixed in glibc-ports-2.4 -# -Index: sysdeps/unix/sysv/linux/arm/socket.S -=================================================================== ---- a/sysdeps/unix/sysv/linux/arm/socket.S.orig -+++ b/sysdeps/unix/sysv/linux/arm/socket.S -@@ -32,7 +32,11 @@ - The .S files for the other calls just #define socket and #include this. */ - - #ifndef __socket --#define __socket P(__,socket) -+# ifndef NO_WEAK_ALIAS -+# define __socket P(__,socket) -+# else -+# define __socket socket -+# endif - #endif - - #define PUSHARGS_1 str a1, [sp, $-4]! -@@ -120,4 +124,6 @@ ENTRY (__socket) - - PSEUDO_END (__socket) - -+#ifndef NO_WEAK_ALIAS - weak_alias (__socket, socket) -+#endif diff --git a/patches/glibc-ports-2.13/0001-Revert-fix-unwinding-through-Thumb-2-system-calls.patch b/patches/glibc-ports-2.13/0001-Revert-fix-unwinding-through-Thumb-2-system-calls.patch deleted file mode 100644 index 5a399e3..0000000 --- a/patches/glibc-ports-2.13/0001-Revert-fix-unwinding-through-Thumb-2-system-calls.patch +++ /dev/null @@ -1,241 +0,0 @@ -Revert the patch below. - -Signed-off-by: Robert Schwebel - ---- - -From 2dcd7ed8fd149a5aefc8c7a7ff041ff389348b4f Mon Sep 17 00:00:00 2001 -From: Daniel Jacobowitz -Date: Thu, 8 Apr 2010 12:43:55 -0400 -Subject: [PATCH] Fix unwinding through Thumb-2 system calls. - ---- - ChangeLog.arm | 9 --- - sysdeps/unix/sysv/linux/arm/eabi/Makefile | 31 ------------ - sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S | 43 ----------------- - sysdeps/unix/sysv/linux/arm/eabi/nptl/aio_misc.h | 52 +++++++++++++++++++++ - sysdeps/unix/sysv/linux/arm/eabi/sysdep.h | 38 ++++++--------- - 5 files changed, 69 insertions(+), 104 deletions(-) - create mode 100644 sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S - delete mode 100644 sysdeps/unix/sysv/linux/arm/eabi/nptl/aio_misc.h - -Index: glibc-ports-2.13/ChangeLog.arm -=================================================================== ---- glibc-ports-2.13.orig/ChangeLog.arm -+++ glibc-ports-2.13/ChangeLog.arm -@@ -68,15 +68,6 @@ - - * sysdeps/unix/sysv/linux/arm/eabi/internal_recvmmsg.S: New. - --2010-04-08 Daniel Jacobowitz -- -- * sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S: New file. -- * sysdeps/unix/sysv/linux/arm/eabi/sysdep.h [__thumb__] -- (INTERNAL_SYSCALL_RAW): Rewrite to use __libc_do_syscall. -- * sysdeps/unix/sysv/linux/arm/eabi/Makefile: Add libc-do-syscall -- to libraries and tests that require it. -- * sysdeps/unix/sysv/linux/arm/eabi/nptl/aio_misc.h: Delete. -- - 2010-03-30 Joseph Myers - - * sysdeps/arm/dl-machine.h (VALID_ELF_ABIVERSION, VALID_ELF_OSABI, -Index: glibc-ports-2.13/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S -=================================================================== ---- glibc-ports-2.13.orig/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S -+++ /dev/null -@@ -1,43 +0,0 @@ --/* Copyright (C) 2010 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 -- --/* Out-of-line syscall stub. We expect the system call number in ip -- and return the raw result in r0. No registers are clobbered. -- We could avoid using the stack for this, but the goal is accurate -- unwind information - and while there is a reserved prefix in the -- ARM unwind tables for register to register moves, the actual opcodes -- are not defined. */ -- -- .thumb -- .syntax unified -- .hidden __libc_do_syscall -- --ENTRY (__libc_do_syscall) -- .fnstart -- push {r7, lr} -- .save {r7, lr} -- cfi_adjust_cfa_offset (8) -- cfi_rel_offset (r7, 0) -- cfi_rel_offset (lr, 4) -- mov r7, ip -- swi 0x0 -- pop {r7, pc} -- .fnend --END (__libc_do_syscall) -Index: glibc-ports-2.13/sysdeps/unix/sysv/linux/arm/eabi/Makefile -=================================================================== ---- glibc-ports-2.13.orig/sysdeps/unix/sysv/linux/arm/eabi/Makefile -+++ glibc-ports-2.13/sysdeps/unix/sysv/linux/arm/eabi/Makefile -@@ -7,34 +7,3 @@ ifeq ($(subdir),csu) - # unwind tables for __libc_start_main. - CFLAGS-libc-start.c += -fexceptions - endif -- --# Add a syscall function to each library that needs one. -- --ifeq ($(subdir),rt) --librt-sysdep_routines += libc-do-syscall --librt-shared-only-routines += libc-do-syscall --endif -- --ifeq ($(subdir),nptl) --libpthread-sysdep_routines += libc-do-syscall --libpthread-shared-only-routines += libc-do-syscall --endif -- --ifeq ($(subdir),resolv) --libanl-sysdep_routines += libc-do-syscall --libanl-shared-only-routines += libc-do-syscall --endif -- --ifeq ($(subdir),csu) --sysdep_routines += libc-do-syscall --endif -- --ifeq ($(subdir),nscd) --nscd-modules += libc-do-syscall --endif -- --ifeq ($(subdir),posix) --LDFLAGS-tst-rfc3484 += $(common-objpfx)csu/libc-do-syscall.o --LDFLAGS-tst-rfc3484-2 += $(common-objpfx)csu/libc-do-syscall.o --LDFLAGS-tst-rfc3484-3 += $(common-objpfx)csu/libc-do-syscall.o --endif -Index: glibc-ports-2.13/sysdeps/unix/sysv/linux/arm/eabi/nptl/aio_misc.h -=================================================================== ---- /dev/null -+++ glibc-ports-2.13/sysdeps/unix/sysv/linux/arm/eabi/nptl/aio_misc.h -@@ -0,0 +1,52 @@ -+/* Copyright (C) 2008 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_next -+ -+#ifdef __thumb2__ -+ -+#include -+ -+/* The Thumb-2 definition of INTERNAL_SYSCALL_RAW has to hide the use -+ of r7 from the compiler because it cannot handle asm clobbering the -+ hard frame pointer. In aio_suspend, GCC does not eliminate the -+ hard frame pointer because the function uses variable-length -+ arrays, so it generates unwind information using r7 as virtual -+ stack pointer. During system calls, when r7 has been saved on the -+ stack, this means the unwind information is invalid. Without extra -+ unwind directives, which would need to cause unwind information for -+ the asm to be generated separately from that for the parts of the -+ function before and after the asm (with three index table entries), -+ it is not possible to represent any temporary change to the virtual -+ stack pointer. Instead, we move the problematic system calls out -+ of line into a function that does not require a frame pointer. */ -+ -+static __attribute_noinline__ void -+aio_misc_wait (int *resultp, -+ volatile int *futexp, -+ const struct timespec *timeout, -+ int cancel) -+{ -+ AIO_MISC_WAIT (*resultp, *futexp, timeout, cancel); -+} -+ -+#undef AIO_MISC_WAIT -+#define AIO_MISC_WAIT(result, futex, timeout, cancel) \ -+ aio_misc_wait (&result, &futex, timeout, cancel) -+ -+#endif -Index: glibc-ports-2.13/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h -=================================================================== ---- glibc-ports-2.13.orig/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h -+++ glibc-ports-2.13/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h -@@ -44,34 +44,30 @@ - argument; otherwise the (optional) compatibility code for APCS binaries - may be invoked. */ - --#if defined(__thumb__) --/* We can not expose the use of r7 to the compiler. GCC (as -- of 4.5) uses r7 as the hard frame pointer for Thumb - although -- for Thumb-2 it isn't obviously a better choice than r11. -- And GCC does not support asms that conflict with the frame -- pointer. -- -- This would be easier if syscall numbers never exceeded 255, -- but they do. For the moment the LOAD_ARGS_7 is sacrificed. -+#ifdef __thumb__ -+/* Hide the use of r7 from the compiler, this would be a lot -+ easier but for the fact that the syscalls can exceed 255. -+ For the moment the LOAD_ARGS_7 is sacrificed. - We can't use push/pop inside the asm because that breaks -- unwinding (i.e. thread cancellation) for this frame. We can't -- locally save and restore r7, because we do not know if this -- function uses r7 or if it is our caller's r7; if it is our caller's, -- then unwinding will fail higher up the stack. So we move the -- syscall out of line and provide its own unwind information. */ -+ unwinding (ie. thread cancellation). */ -+/* FIXME: the str / ldr of r7 are not covered by CFI information. */ - #undef LOAD_ARGS_7 - #undef INTERNAL_SYSCALL_RAW - #define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \ - ({ \ -+ int _sys_buf[2]; \ - register int _a1 asm ("a1"); \ -- int _nametmp = name; \ -+ register int *_r6 asm ("r6") = _sys_buf; \ -+ *_r6 = name; \ - LOAD_ARGS_##nr (args) \ -- register int _name asm ("ip") = _nametmp; \ -- asm volatile ("bl __libc_do_syscall" \ -- : "=r" (_a1) \ -- : "r" (_name) ASM_ARGS_##nr \ -- : "memory", "lr"); \ -- _a1; }) -+ asm volatile ("str r7, [r6, #4]\n\t" \ -+ "ldr r7, [r6]\n\t" \ -+ "swi 0 @ syscall " #name "\n\t" \ -+ "ldr r7, [r6, #4]" \ -+ : "=r" (_a1) \ -+ : "r" (_r6) ASM_ARGS_##nr \ -+ : "memory"); \ -+ _a1; }) - #else /* ARM */ - #undef INTERNAL_SYSCALL_RAW - #define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \ diff --git a/patches/glibc-ports-2.13/series b/patches/glibc-ports-2.13/series deleted file mode 100644 index 8261dcf..0000000 --- a/patches/glibc-ports-2.13/series +++ /dev/null @@ -1 +0,0 @@ -0001-Revert-fix-unwinding-through-Thumb-2-system-calls.patch diff --git a/patches/linux-2.6.18/generic/0001--POWERPC-Select-proper-defconfig-for-crosscompiles.patch b/patches/linux-2.6.18/generic/0001--POWERPC-Select-proper-defconfig-for-crosscompiles.patch deleted file mode 100644 index b6ce1dc..0000000 --- a/patches/linux-2.6.18/generic/0001--POWERPC-Select-proper-defconfig-for-crosscompiles.patch +++ /dev/null @@ -1,42 +0,0 @@ -From ca786f83a97d7897b013b1e9b290c9010b69af9b Mon Sep 17 00:00:00 2001 -From: Adrian Bunk -Date: Tue, 2 Oct 2007 13:30:09 -0700 -Subject: [PATCH] [POWERPC] Select proper defconfig for crosscompiles - -The trick for finding the right defconfig is neat, but you forgot to -provide an i686_defconfig. ;-) - -More seriously, cross compiling the defconfig is often useful, e.g. for -testing the compilation of patches that touch multiple architectures, -and this patch therefore chooses g5_defconfig if $(CROSS_COMPILE) is -non-empty. - -Signed-off-by: Adrian Bunk -Acked-by: Sam Ravnborg -Cc: Benjamin Herrenschmidt -Cc: Olof Johansson -Signed-off-by: Andrew Morton -Signed-off-by: Paul Mackerras ---- - arch/powerpc/Makefile | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile -index dc2d18e..643839a 100644 ---- a/arch/powerpc/Makefile -+++ b/arch/powerpc/Makefile -@@ -35,7 +35,11 @@ endif - - export CROSS32CC CROSS32AS CROSS32LD CROSS32AR CROSS32OBJCOPY - -+ifeq ($(CROSS_COMPILE),) - KBUILD_DEFCONFIG := $(shell uname -m)_defconfig -+else -+KBUILD_DEFCONFIG := ppc64_defconfig -+endif - - ifeq ($(CONFIG_PPC64),y) - OLDARCH := ppc64 --- -1.5.6.5 - diff --git a/patches/linux-2.6.18/generic/series b/patches/linux-2.6.18/generic/series deleted file mode 100644 index 458ce5e..0000000 --- a/patches/linux-2.6.18/generic/series +++ /dev/null @@ -1 +0,0 @@ -0001--POWERPC-Select-proper-defconfig-for-crosscompiles.patch -- cgit v1.2.3