aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2013-12-30 09:31:17 -0500
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-01-14 21:46:43 -0500
commit8fe9c93e7453e67b8bd09f263ec1bb0783c733fc (patch)
treeed2ad17b085d320d7acd24a32e531fb2a05363b4 /scripts
parentdece8ada993e1764a115bdff0f1effffaa5fc8dc (diff)
powerpc: Add vr save/restore functions
GCC 4.8 now generates out-of-line vr save/restore functions when optimizing for size. They are needed for the raid6 altivec support. Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/mod/modpost.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 17855761e6b7..40610984a1b5 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -584,12 +584,16 @@ static int ignore_undef_symbol(struct elf_info *info, const char *symname)
584 if (strncmp(symname, "_restgpr_", sizeof("_restgpr_") - 1) == 0 || 584 if (strncmp(symname, "_restgpr_", sizeof("_restgpr_") - 1) == 0 ||
585 strncmp(symname, "_savegpr_", sizeof("_savegpr_") - 1) == 0 || 585 strncmp(symname, "_savegpr_", sizeof("_savegpr_") - 1) == 0 ||
586 strncmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 || 586 strncmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 ||
587 strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0) 587 strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0 ||
588 strncmp(symname, "_restvr_", sizeof("_restvr_") - 1) == 0 ||
589 strncmp(symname, "_savevr_", sizeof("_savevr_") - 1) == 0)
588 return 1; 590 return 1;
589 if (info->hdr->e_machine == EM_PPC64) 591 if (info->hdr->e_machine == EM_PPC64)
590 /* Special register function linked on all modules during final link of .ko */ 592 /* Special register function linked on all modules during final link of .ko */
591 if (strncmp(symname, "_restgpr0_", sizeof("_restgpr0_") - 1) == 0 || 593 if (strncmp(symname, "_restgpr0_", sizeof("_restgpr0_") - 1) == 0 ||
592 strncmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0) 594 strncmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0 ||
595 strncmp(symname, "_restvr_", sizeof("_restvr_") - 1) == 0 ||
596 strncmp(symname, "_savevr_", sizeof("_savevr_") - 1) == 0)
593 return 1; 597 return 1;
594 /* Do not ignore this symbol */ 598 /* Do not ignore this symbol */
595 return 0; 599 return 0;