summaryrefslogtreecommitdiffstats
path: root/patches/kexec-tools-2.0.2/0001-revert-toolchain-problem.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/kexec-tools-2.0.2/0001-revert-toolchain-problem.patch')
-rw-r--r--patches/kexec-tools-2.0.2/0001-revert-toolchain-problem.patch313
1 files changed, 313 insertions, 0 deletions
diff --git a/patches/kexec-tools-2.0.2/0001-revert-toolchain-problem.patch b/patches/kexec-tools-2.0.2/0001-revert-toolchain-problem.patch
new file mode 100644
index 000000000..fa0702cf5
--- /dev/null
+++ b/patches/kexec-tools-2.0.2/0001-revert-toolchain-problem.patch
@@ -0,0 +1,313 @@
+commit dbe1163152ef6fca2a1bd22e11e219f58fd40c08
+Author: Maxim Uvarov <muvarov@gmail.com>
+Date: Mon Sep 6 19:03:22 2010 +0400
+
+ Revert "powerpc new toolchains fix (crt.S)"
+
+ This reverts commit 45e8f29639d9f97b74389e5bd28c7a5cccbf3e2a.
+ purgatory/arch/ppc/crt.S and purgatory/arch/ppc/misc.S are the same
+ files.
+ Signed-off-by: Maxim Uvarov <muvarov@gmail.com>
+ Signed-off-by: Simon Horman <horms@verge.net.au>
+
+diff --git a/configure.ac b/configure.ac
+index 7f6acc6..2960c25 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -159,15 +159,6 @@ if test "$with_xen" = yes ; then
+ AC_MSG_NOTICE([Xen support disabled])))
+ fi
+
+-dnl new toolchains
+-if test "$ARCH" = ppc; then
+-AC_ARG_WITH([oldtoolchain],
+- AC_HELP_STRING([--with-oldtoolchain],[compile without crt.S
+- required for new toolchains]),
+- AC_DEFINE(PPC_OLDTOOLCHAIN, 1,
+- [Define to compile with old toolchains]))
+-fi
+-
+ dnl ---Sanity checks
+ if test "$CC" = "no"; then AC_MSG_ERROR([cc not found]); fi
+ if test "$CPP" = "no"; then AC_MSG_ERROR([cpp not found]); fi
+diff --git a/purgatory/arch/ppc/Makefile b/purgatory/arch/ppc/Makefile
+index 4020778..72289a0 100644
+--- a/purgatory/arch/ppc/Makefile
++++ b/purgatory/arch/ppc/Makefile
+@@ -6,7 +6,6 @@ ppc_PURGATORY_SRCS += purgatory/arch/ppc/v2wrap_32.S
+ ppc_PURGATORY_SRCS += purgatory/arch/ppc/misc.S
+ ppc_PURGATORY_SRCS += purgatory/arch/ppc/purgatory-ppc.c
+ ppc_PURGATORY_SRCS += purgatory/arch/ppc/console-ppc.c
+-ppc_PURGATORY_SRCS += purgatory/arch/ppc/crt.S
+
+ dist += purgatory/arch/ppc/Makefile $(ppc_PURGATORY_SRCS) \
+ purgatory/arch/ppc/purgatory-ppc.h purgatory/arch/ppc/ppc_asm.h
+diff --git a/purgatory/arch/ppc/crt.S b/purgatory/arch/ppc/crt.S
+deleted file mode 100644
+index 70f4d61..0000000
+--- a/purgatory/arch/ppc/crt.S
++++ /dev/null
+@@ -1,263 +0,0 @@
+-/* This is from linux-2.6/arch/powerpc/lib/crtsavres.S:
+- *
+- * Special support for eabi and SVR4
+- *
+- * Copyright (C) 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc.
+- * Copyright 2008 Freescale Semiconductor, Inc.
+- * Written By Michael Meissner
+- *
+- * Based on gcc/config/rs6000/crtsavres.asm from gcc
+- *
+- * This file is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License as published by the
+- * Free Software Foundation; either version 2, or (at your option) any
+- * later version.
+- *
+- * In addition to the permissions in the GNU General Public License, the
+- * Free Software Foundation gives you unlimited permission to link the
+- * compiled version of this file with other programs, and to distribute
+- * those programs without any restriction coming from the use of this
+- * file. (The General Public License restrictions do apply in other
+- * respects; for example, they cover modification of the file, and
+- * distribution when not linked into another program.)
+- *
+- * This file 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
+- * General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; see the file COPYING. If not, write to
+- * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+- * Boston, MA 02110-1301, USA.
+- *
+- * As a special exception, if you link this library with files
+- * compiled with GCC to produce an executable, this does not cause
+- * the resulting executable to be covered by the GNU General Public License.
+- * This exception does not however invalidate any other reasons why
+- * the executable file might be covered by the GNU General Public License.
+- */
+-#include "config.h"
+-
+-/* On PowerPC64 Linux, these functions are provided by the linker. */
+-#ifndef PPC_OLDTOOLCHAIN
+-#ifndef __powerpc64__
+-#define _GLOBAL(name) \
+- .type name,@function; \
+- .globl name; \
+-name:
+-
+-/* Routines for saving integer registers, called by the compiler. */
+-/* Called with r11 pointing to the stack header word of the caller of the */
+-/* function, just beyond the end of the integer save area. */
+-
+-_GLOBAL(_savegpr_14)
+-_GLOBAL(_save32gpr_14)
+- stw 14,-72(11) /* save gp registers */
+-_GLOBAL(_savegpr_15)
+-_GLOBAL(_save32gpr_15)
+- stw 15,-68(11)
+-_GLOBAL(_savegpr_16)
+-_GLOBAL(_save32gpr_16)
+- stw 16,-64(11)
+-_GLOBAL(_savegpr_17)
+-_GLOBAL(_save32gpr_17)
+- stw 17,-60(11)
+-_GLOBAL(_savegpr_18)
+-_GLOBAL(_save32gpr_18)
+- stw 18,-56(11)
+-_GLOBAL(_savegpr_19)
+-_GLOBAL(_save32gpr_19)
+- stw 19,-52(11)
+-_GLOBAL(_savegpr_20)
+-_GLOBAL(_save32gpr_20)
+- stw 20,-48(11)
+-_GLOBAL(_savegpr_21)
+-_GLOBAL(_save32gpr_21)
+- stw 21,-44(11)
+-_GLOBAL(_savegpr_22)
+-_GLOBAL(_save32gpr_22)
+- stw 22,-40(11)
+-_GLOBAL(_savegpr_23)
+-_GLOBAL(_save32gpr_23)
+- stw 23,-36(11)
+-_GLOBAL(_savegpr_24)
+-_GLOBAL(_save32gpr_24)
+- stw 24,-32(11)
+-_GLOBAL(_savegpr_25)
+-_GLOBAL(_save32gpr_25)
+- stw 25,-28(11)
+-_GLOBAL(_savegpr_26)
+-_GLOBAL(_save32gpr_26)
+- stw 26,-24(11)
+-_GLOBAL(_savegpr_27)
+-_GLOBAL(_save32gpr_27)
+- stw 27,-20(11)
+-_GLOBAL(_savegpr_28)
+-_GLOBAL(_save32gpr_28)
+- stw 28,-16(11)
+-_GLOBAL(_savegpr_29)
+-_GLOBAL(_save32gpr_29)
+- stw 29,-12(11)
+-_GLOBAL(_savegpr_30)
+-_GLOBAL(_save32gpr_30)
+- stw 30,-8(11)
+-_GLOBAL(_savegpr_31)
+-_GLOBAL(_save32gpr_31)
+- stw 31,-4(11)
+- blr
+-
+-/* Routines for restoring integer registers, called by the compiler. */
+-/* Called with r11 pointing to the stack header word of the caller of the */
+-/* function, just beyond the end of the integer restore area. */
+-
+-_GLOBAL(_restgpr_14)
+-_GLOBAL(_rest32gpr_14)
+- lwz 14,-72(11) /* restore gp registers */
+-_GLOBAL(_restgpr_15)
+-_GLOBAL(_rest32gpr_15)
+- lwz 15,-68(11)
+-_GLOBAL(_restgpr_16)
+-_GLOBAL(_rest32gpr_16)
+- lwz 16,-64(11)
+-_GLOBAL(_restgpr_17)
+-_GLOBAL(_rest32gpr_17)
+- lwz 17,-60(11)
+-_GLOBAL(_restgpr_18)
+-_GLOBAL(_rest32gpr_18)
+- lwz 18,-56(11)
+-_GLOBAL(_restgpr_19)
+-_GLOBAL(_rest32gpr_19)
+- lwz 19,-52(11)
+-_GLOBAL(_restgpr_20)
+-_GLOBAL(_rest32gpr_20)
+- lwz 20,-48(11)
+-_GLOBAL(_restgpr_21)
+-_GLOBAL(_rest32gpr_21)
+- lwz 21,-44(11)
+-_GLOBAL(_restgpr_22)
+-_GLOBAL(_rest32gpr_22)
+- lwz 22,-40(11)
+-_GLOBAL(_restgpr_23)
+-_GLOBAL(_rest32gpr_23)
+- lwz 23,-36(11)
+-_GLOBAL(_restgpr_24)
+-_GLOBAL(_rest32gpr_24)
+- lwz 24,-32(11)
+-_GLOBAL(_restgpr_25)
+-_GLOBAL(_rest32gpr_25)
+- lwz 25,-28(11)
+-_GLOBAL(_restgpr_26)
+-_GLOBAL(_rest32gpr_26)
+- lwz 26,-24(11)
+-_GLOBAL(_restgpr_27)
+-_GLOBAL(_rest32gpr_27)
+- lwz 27,-20(11)
+-_GLOBAL(_restgpr_28)
+-_GLOBAL(_rest32gpr_28)
+- lwz 28,-16(11)
+-_GLOBAL(_restgpr_29)
+-_GLOBAL(_rest32gpr_29)
+- lwz 29,-12(11)
+-_GLOBAL(_restgpr_30)
+-_GLOBAL(_rest32gpr_30)
+- lwz 30,-8(11)
+-_GLOBAL(_restgpr_31)
+-_GLOBAL(_rest32gpr_31)
+- lwz 31,-4(11)
+- blr
+-
+-/* Routines for restoring integer registers, called by the compiler. */
+-/* Called with r11 pointing to the stack header word of the caller of the */
+-/* function, just beyond the end of the integer restore area. */
+-
+-_GLOBAL(_restgpr_14_x)
+-_GLOBAL(_rest32gpr_14_x)
+- lwz 14,-72(11) /* restore gp registers */
+-_GLOBAL(_restgpr_15_x)
+-_GLOBAL(_rest32gpr_15_x)
+- lwz 15,-68(11)
+-_GLOBAL(_restgpr_16_x)
+-_GLOBAL(_rest32gpr_16_x)
+- lwz 16,-64(11)
+-_GLOBAL(_restgpr_17_x)
+-_GLOBAL(_rest32gpr_17_x)
+- lwz 17,-60(11)
+-_GLOBAL(_restgpr_18_x)
+-_GLOBAL(_rest32gpr_18_x)
+- lwz 18,-56(11)
+-_GLOBAL(_restgpr_19_x)
+-_GLOBAL(_rest32gpr_19_x)
+- lwz 19,-52(11)
+-_GLOBAL(_restgpr_20_x)
+-_GLOBAL(_rest32gpr_20_x)
+- lwz 20,-48(11)
+-_GLOBAL(_restgpr_21_x)
+-_GLOBAL(_rest32gpr_21_x)
+- lwz 21,-44(11)
+-_GLOBAL(_restgpr_22_x)
+-_GLOBAL(_rest32gpr_22_x)
+- lwz 22,-40(11)
+-_GLOBAL(_restgpr_23_x)
+-_GLOBAL(_rest32gpr_23_x)
+- lwz 23,-36(11)
+-_GLOBAL(_restgpr_24_x)
+-_GLOBAL(_rest32gpr_24_x)
+- lwz 24,-32(11)
+-_GLOBAL(_restgpr_25_x)
+-_GLOBAL(_rest32gpr_25_x)
+- lwz 25,-28(11)
+-_GLOBAL(_restgpr_26_x)
+-_GLOBAL(_rest32gpr_26_x)
+- lwz 26,-24(11)
+-_GLOBAL(_restgpr_27_x)
+-_GLOBAL(_rest32gpr_27_x)
+- lwz 27,-20(11)
+-_GLOBAL(_restgpr_28_x)
+-_GLOBAL(_rest32gpr_28_x)
+- lwz 28,-16(11)
+-_GLOBAL(_restgpr_29_x)
+-_GLOBAL(_rest32gpr_29_x)
+- lwz 29,-12(11)
+-_GLOBAL(_restgpr_30_x)
+-_GLOBAL(_rest32gpr_30_x)
+- lwz 30,-8(11)
+-_GLOBAL(_restgpr_31_x)
+-_GLOBAL(_rest32gpr_31_x)
+- lwz 0,4(11)
+- lwz 31,-4(11)
+- mtlr 0
+- mr 1,11
+- blr
+-
+-/* This is from linux-2.6/arch/powerpc/kernel/misc_32.S
+- *
+- * This file contains miscellaneous low-level functions.
+- * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
+- *
+- * Largely rewritten by Cort Dougan (cort@cs.nmt.edu)
+- * and Paul Mackerras.
+- *
+- * kexec bits:
+- * Copyright (C) 2002-2003 Eric Biederman <ebiederm@xmission.com>
+- * GameCube/ppc32 port Copyright (C) 2004 Albert Herranz
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it 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.
+- *
+- */
+-
+-_GLOBAL(__lshrdi3)
+- subfic 6,5,32
+- srw 4,4,5 # LSW = count > 31 ? 0 : LSW >> count
+- addi 7,5,32 # could be xori, or addi with -32
+- slw 6,3,6 # t1 = count > 31 ? 0 : MSW << (32-count)
+- srw 7,3,7 # t2 = count < 32 ? 0 : MSW >> (count-32)
+- or 4,4,6 # LSW |= t1
+- srw 3,3,5 # MSW = MSW >> count
+- or 4,4,7 # LSW |= t2
+- blr
+-#endif
+-#endif