]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
module-verifier: allow limited-range relocations on sparc64.
authorVladimir Serbinenko <phcoder@gmail.com>
Thu, 31 Dec 2015 17:30:39 +0000 (18:30 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Thu, 31 Dec 2015 17:30:39 +0000 (18:30 +0100)
clang as incomplete mcmodel=large support. As we don't currently need full
mcmodel=large support for sparc64, relax those checks.

util/grub-module-verifier.c

index c027f0a0fb1815e98fb79c36ec48d315b95bff61..e217dcddc0799cbe56ed0ae6fa4b548997a4995c 100644 (file)
@@ -38,7 +38,12 @@ struct grub_module_verifier_arch archs[] = {
       R_SPARC_LO10,
       R_SPARC_64,
       R_SPARC_OLO10,
-      /* R_SPARC_32, R_SPARC_HI22  are supported but shouldn't be used because of their limited range.  */
+      /* Following 2 relocations have limited range but unfortunately
+        clang generates them, as it doesn't implement mcmodel=large properly.
+        At least our heap and core are under 4G, so it's not a problem
+        usually. */
+      R_SPARC_HI22,
+      R_SPARC_32,
       -1
     } },
   { "ia64", 8, 0, EM_IA_64, GRUB_MODULE_VERIFY_SUPPORTS_RELA, (int[]){