Browse Source

grub: add needed stuff for static build and busybox grep

Waldemar Brodkorb 14 years ago
parent
commit
5b1852a021
24 changed files with 479 additions and 0 deletions
  1. 11 0
      package/grub/patches/patch-conf_common_mk
  2. 17 0
      package/grub/patches/patch-include_grub_misc_h
  3. 54 0
      package/grub/patches/patch-kern_misc_c
  4. 26 0
      package/grub/patches/patch-kern_misc_c.orig
  5. 29 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_camellia_c
  6. 21 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_camellia_c.orig
  7. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_des_c
  8. 29 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_dsa_c
  9. 20 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_elgamal_c
  10. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_md4_c
  11. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_md5_c
  12. 38 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_primegen_c
  13. 53 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_rijndael_c
  14. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_rmd160_c
  15. 20 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_serpent_c
  16. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_sha1_c
  17. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_sha256_c
  18. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_sha512_c
  19. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_tiger_c
  20. 20 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_twofish_c
  21. 11 0
      package/grub/patches/patch-lib_libgcrypt-grub_cipher_whirlpool_c
  22. 11 0
      package/grub/patches/patch-util_grub-install_in
  23. 11 0
      package/grub/patches/patch-util_grub-mkconfig_lib_in
  24. 20 0
      package/grub/patches/patch-util_grub_d_10_linux_in

+ 11 - 0
package/grub/patches/patch-conf_common_mk

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/conf/common.mk	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/conf/common.mk	2010-06-26 18:20:29.307157138 +0200
+@@ -11159,7 +11159,7 @@ trigtables.c: gentrigtables
+ 	./gentrigtables > $@
+ DISTCLEANFILES += trigtables.c
+ gentrigtables: gentrigtables.c
+-	$(CC) -o $@ $^ $(CPPFLAGS) -lm
++	$(HOSTCC) -o $@ $^ $(CPPFLAGS) -lm
+ DISTCLEANFILES += gentrigtables
+ 
+ pkglib_MODULES += setjmp.mod

+ 17 - 0
package/grub/patches/patch-include_grub_misc_h

@@ -0,0 +1,17 @@
+--- grub-1.98.orig/include/grub/misc.h	2010-03-06 21:51:37.000000000 +0100
++++ grub-1.98/include/grub/misc.h	2010-06-26 18:54:44.075171713 +0200
+@@ -91,14 +91,6 @@ grub_strncat (char *dest, const char *sr
+   return dest;
+ }
+ 
+-/* Prototypes for aliases.  */
+-#ifndef GRUB_UTIL
+-int EXPORT_FUNC(memcmp) (const void *s1, const void *s2, grub_size_t n);
+-void *EXPORT_FUNC(memmove) (void *dest, const void *src, grub_size_t n);
+-void *EXPORT_FUNC(memcpy) (void *dest, const void *src, grub_size_t n);
+-void *EXPORT_FUNC(memset) (void *s, int c, grub_size_t n);
+-#endif
+-
+ int EXPORT_FUNC(grub_memcmp) (const void *s1, const void *s2, grub_size_t n);
+ int EXPORT_FUNC(grub_strcmp) (const char *s1, const char *s2);
+ int EXPORT_FUNC(grub_strncmp) (const char *s1, const char *s2, grub_size_t n);

+ 54 - 0
package/grub/patches/patch-kern_misc_c

@@ -0,0 +1,54 @@
+--- grub-1.98.orig/kern/misc.c	2010-03-06 21:51:37.000000000 +0100
++++ grub-1.98/kern/misc.c	2010-06-26 20:12:26.711214130 +0200
+@@ -64,23 +64,6 @@ grub_memmove (void *dest, const void *sr
+   return dest;
+ }
+ 
+-#ifndef APPLE_CC
+-void *memmove (void *dest, const void *src, grub_size_t n)
+-  __attribute__ ((alias ("grub_memmove")));
+-/* GCC emits references to memcpy() for struct copies etc.  */
+-void *memcpy (void *dest, const void *src, grub_size_t n)
+-  __attribute__ ((alias ("grub_memmove")));
+-#else
+-void *memcpy (void *dest, const void *src, grub_size_t n)
+-{
+-	return grub_memmove (dest, src, n);
+-}
+-void *memmove (void *dest, const void *src, grub_size_t n)
+-{
+-	return grub_memmove (dest, src, n);
+-}
+-#endif
+-
+ char *
+ grub_strcpy (char *dest, const char *src)
+ {
+@@ -516,15 +499,6 @@ grub_memset (void *s, int c, grub_size_t
+ 
+   return s;
+ }
+-#ifndef APPLE_CC
+-void *memset (void *s, int c, grub_size_t n)
+-  __attribute__ ((alias ("grub_memset")));
+-#else
+-void *memset (void *s, int c, grub_size_t n)
+-{
+-  return grub_memset (s, c, n);
+-}
+-#endif
+ 
+ grub_size_t
+ grub_strlen (const char *s)
+@@ -1053,11 +1027,6 @@ grub_abort (void)
+   grub_exit ();
+ }
+ 
+-#ifndef APPLE_CC
+-/* GCC emits references to abort().  */
+-void abort (void) __attribute__ ((alias ("grub_abort")));
+-#endif
+-
+ #ifdef NEED_ENABLE_EXECUTE_STACK
+ /* Some gcc versions generate a call to this function
+    in trampolines for nested functions.  */

+ 26 - 0
package/grub/patches/patch-kern_misc_c.orig

@@ -0,0 +1,26 @@
+--- grub-1.98.orig/kern/misc.c	2010-03-06 21:51:37.000000000 +0100
++++ grub-1.98/kern/misc.c	2010-06-26 19:44:00.999168677 +0200
+@@ -64,23 +64,6 @@ grub_memmove (void *dest, const void *sr
+   return dest;
+ }
+ 
+-#ifndef APPLE_CC
+-void *memmove (void *dest, const void *src, grub_size_t n)
+-  __attribute__ ((alias ("grub_memmove")));
+-/* GCC emits references to memcpy() for struct copies etc.  */
+-void *memcpy (void *dest, const void *src, grub_size_t n)
+-  __attribute__ ((alias ("grub_memmove")));
+-#else
+-void *memcpy (void *dest, const void *src, grub_size_t n)
+-{
+-	return grub_memmove (dest, src, n);
+-}
+-void *memmove (void *dest, const void *src, grub_size_t n)
+-{
+-	return grub_memmove (dest, src, n);
+-}
+-#endif
+-
+ char *
+ grub_strcpy (char *dest, const char *src)
+ {

+ 29 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_camellia_c

@@ -0,0 +1,29 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/camellia.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/camellia.c	2010-06-26 20:49:20.915278106 +0200
+@@ -26,6 +26,7 @@
+  */
+ 
+ 
++#include <grub/misc.h>
+ #include "camellia.h"
+ 
+ /* u32 must be 32bit word */
+@@ -946,13 +947,13 @@ void camellia_setup192(const unsigned ch
+     unsigned char kk[32];
+     u32 krll, krlr, krrl,krrr;
+ 
+-    memcpy(kk, key, 24);
+-    memcpy((unsigned char *)&krll, key+16,4);
+-    memcpy((unsigned char *)&krlr, key+20,4);
++    grub_memcpy(kk, key, 24);
++    grub_memcpy((unsigned char *)&krll, key+16,4);
++    grub_memcpy((unsigned char *)&krlr, key+20,4);
+     krrl = ~krll;
+     krrr = ~krlr;
+-    memcpy(kk+24, (unsigned char *)&krrl, 4);
+-    memcpy(kk+28, (unsigned char *)&krrr, 4);
++    grub_memcpy(kk+24, (unsigned char *)&krrl, 4);
++    grub_memcpy(kk+28, (unsigned char *)&krrr, 4);
+     camellia_setup256(kk, subkey);
+     return;
+ }

+ 21 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_camellia_c.orig

@@ -0,0 +1,21 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/camellia.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/camellia.c	2010-06-26 20:41:39.651169327 +0200
+@@ -946,13 +946,13 @@ void camellia_setup192(const unsigned ch
+     unsigned char kk[32];
+     u32 krll, krlr, krrl,krrr;
+ 
+-    memcpy(kk, key, 24);
+-    memcpy((unsigned char *)&krll, key+16,4);
+-    memcpy((unsigned char *)&krlr, key+20,4);
++    grub_memcpy(kk, key, 24);
++    grub_memcpy((unsigned char *)&krll, key+16,4);
++    grub_memcpy((unsigned char *)&krlr, key+20,4);
+     krrl = ~krll;
+     krrr = ~krlr;
+-    memcpy(kk+24, (unsigned char *)&krrl, 4);
+-    memcpy(kk+28, (unsigned char *)&krrr, 4);
++    grub_memcpy(kk+24, (unsigned char *)&krrl, 4);
++    grub_memcpy(kk+28, (unsigned char *)&krrr, 4);
+     camellia_setup256(kk, subkey);
+     return;
+ }

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_des_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/des.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/des.c	2010-06-26 20:35:49.335279651 +0200
+@@ -119,7 +119,7 @@
+ #include "cipher.h"
+ 
+ #if defined(__GNUC__) && defined(__GNU_LIBRARY__)
+-#define working_memcmp memcmp
++#define working_memcmp grub_memcmp
+ #else
+ /*
+  * According to the SunOS man page, memcmp returns indeterminate sign

+ 29 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_dsa_c

@@ -0,0 +1,29 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/dsa.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/dsa.c	2010-06-26 20:41:13.511279436 +0200
+@@ -157,7 +157,7 @@ gen_k( gcry_mpi_t q )
+ 	     to get_random_bytes() and use this the here maybe it is
+ 	     easier to do this directly in random.c. */
+           char *pp = gcry_random_bytes_secure( 4, GCRY_STRONG_RANDOM );
+-          memcpy( rndbuf,pp, 4 );
++          grub_memcpy( rndbuf,pp, 4 );
+           gcry_free(pp);
+ 	}
+       _gcry_mpi_set_buffer( k, rndbuf, nbytes, 0 );
+@@ -337,7 +337,7 @@ generate (DSA_secret_key *sk, unsigned i
+       else 
+         { /* Change only some of the higher bits (= 2 bytes)*/
+           char *r = gcry_random_bytes_secure (2, random_level);
+-          memcpy(rndbuf, r, 2 );
++          grub_memcpy(rndbuf, r, 2 );
+           gcry_free(r);
+         }
+ 
+@@ -713,7 +713,7 @@ dsa_generate_ext (int algo, unsigned int
+               gcry_sexp_release (l1);
+               return GPG_ERR_INV_OBJ; /* No value or value too large.  */
+             }
+-          memcpy (buf, s, n);
++          grub_memcpy (buf, s, n);
+           buf[n] = 0;
+           qbits = (unsigned int)strtoul (buf, NULL, 0);
+           gcry_sexp_release (l1);

+ 20 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_elgamal_c

@@ -0,0 +1,20 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/elgamal.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/elgamal.c	2010-06-26 20:40:56.115156639 +0200
+@@ -212,7 +212,7 @@ gen_k( gcry_mpi_t p, int small_k )
+              easier to do this directly in random.c Anyway, it is
+              highly inlikely that we will ever reach this code. */
+           char *pp = gcry_random_bytes_secure( 4, GCRY_STRONG_RANDOM );
+-          memcpy( rndbuf, pp, 4 );
++          grub_memcpy( rndbuf, pp, 4 );
+           gcry_free(pp);
+ 	}
+       _gcry_mpi_set_buffer( k, rndbuf, nbytes, 0 );
+@@ -308,7 +308,7 @@ generate ( ELG_secret_key *sk, unsigned 
+             {
+               char *r = gcry_random_bytes_secure( 2,
+                                                   GCRY_VERY_STRONG_RANDOM );
+-              memcpy(rndbuf, r, 2 );
++              grub_memcpy(rndbuf, r, 2 );
+               gcry_free(r);
+             }
+ 	}

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_md4_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/md4.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/md4.c	2010-06-26 20:24:28.691278909 +0200
+@@ -109,7 +109,7 @@ transform ( MD4_CONTEXT *ctx, const unsi
+       }
+   }
+ #else
+-  memcpy (in, data, 64);
++  grub_memcpy (in, data, 64);
+ #endif
+ 
+   /* Round 1.  */

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_md5_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/md5.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/md5.c	2010-06-26 20:24:19.631157281 +0200
+@@ -100,7 +100,7 @@ transform ( MD5_CONTEXT *ctx, const unsi
+       }
+   }
+ #else
+-  memcpy( correct_words, data, 64 );
++  grub_memcpy( correct_words, data, 64 );
+ #endif
+ 
+ 

+ 38 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_primegen_c

@@ -0,0 +1,38 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/primegen.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/primegen.c	2010-06-26 20:42:06.831276628 +0200
+@@ -1478,7 +1478,7 @@ _gcry_generate_fips186_2_prime (unsigned
+         }
+       
+       /* Step 2: U = sha1(seed) ^ sha1((seed+1) mod 2^{qbits})  */
+-      memcpy (seed_plus, seed, seedlen);
++      grub_memcpy (seed_plus, seed, seedlen);
+       for (i=seedlen-1; i >= 0; i--)
+         {
+           seed_plus[i]++;
+@@ -1596,7 +1596,7 @@ _gcry_generate_fips186_2_prime (unsigned
+     *r_counter = counter;
+   if (r_seed && r_seedlen)
+     {
+-      memcpy (seed_plus, seed, seedlen);
++      grub_memcpy (seed_plus, seed, seedlen);
+       *r_seed = seed_plus;
+       seed_plus = NULL;
+       *r_seedlen = seedlen;
+@@ -1751,7 +1751,7 @@ _gcry_generate_fips186_3_prime (unsigned
+   
+   /* Step 11.  Note that we do no use an explicit offset but increment
+      SEED_PLUS accordingly.  */
+-  memcpy (seed_plus, seed, seedlen);
++  grub_memcpy (seed_plus, seed, seedlen);
+   counter = 0;
+ 
+   /* Generate P. */
+@@ -1838,7 +1838,7 @@ _gcry_generate_fips186_3_prime (unsigned
+     *r_counter = counter;
+   if (r_seed && r_seedlen)
+     {
+-      memcpy (seed_plus, seed, seedlen);
++      grub_memcpy (seed_plus, seed, seedlen);
+       *r_seed = seed_plus;
+       seed_plus = NULL;
+       *r_seedlen = seedlen;

+ 53 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_rijndael_c

@@ -0,0 +1,53 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/rijndael.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/rijndael.c	2010-06-26 20:23:29.463277513 +0200
+@@ -139,7 +139,7 @@ do_setkey (RIJNDAEL_context *ctx, const 
+       if ((_gcry_get_hw_features () & HWF_PADLOCK_AES))
+         {
+           ctx->use_padlock = 1;
+-          memcpy (ctx->padlock_key, key, keylen);
++          grub_memcpy (ctx->padlock_key, key, keylen);
+         }
+ #endif
+     }
+@@ -411,9 +411,9 @@ do_encrypt (const RIJNDAEL_context *ctx,
+     byte b[16];
+   } b;
+ 
+-  memcpy (a.a, ax, 16);
++  grub_memcpy (a.a, ax, 16);
+   do_encrypt_aligned (ctx, b.b, a.a);
+-  memcpy (bx, b.b, 16);
++  grub_memcpy (bx, b.b, 16);
+ }
+ 
+ 
+@@ -440,7 +440,7 @@ do_padlock (const RIJNDAEL_context *ctx,
+   if (decrypt_flag)
+     cword[0] |= 0x00000200;
+ 
+-  memcpy (a, ax, 16);
++  grub_memcpy (a, ax, 16);
+    
+   asm volatile 
+     ("pushfl\n\t"          /* Force key reload.  */            
+@@ -454,7 +454,7 @@ do_padlock (const RIJNDAEL_context *ctx,
+      : "%ecx", "cc", "memory"
+      );
+ 
+-  memcpy (bx, b, 16);
++  grub_memcpy (bx, b, 16);
+ 
+ }
+ #endif /*USE_PADLOCK*/
+@@ -609,9 +609,9 @@ do_decrypt (RIJNDAEL_context *ctx, byte 
+       ctx->decryption_prepared = 1;
+     }
+ 
+-  memcpy (a.a, ax, 16);
++  grub_memcpy (a.a, ax, 16);
+   do_decrypt_aligned (ctx, b.b, a.a);
+-  memcpy (bx, b.b, 16);
++  grub_memcpy (bx, b.b, 16);
+ #undef rk
+ }
+     

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_rmd160_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/rmd160.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/rmd160.c	2010-06-26 20:23:39.319276778 +0200
+@@ -185,7 +185,7 @@ transform ( RMD160_CONTEXT *hd, const un
+    * executes on a 586-100 (39.73 bogomips) at about 1900kb/sec;
+    * [measured with a 4MB data and "gpgm --print-md rmd160"] */
+   u32 x[16];
+-  memcpy( x, data, 64 );
++  grub_memcpy( x, data, 64 );
+ #endif
+ 
+ 

+ 20 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_serpent_c

@@ -0,0 +1,20 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/serpent.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/serpent.c	2010-06-26 20:29:51.523275940 +0200
+@@ -917,7 +917,7 @@ serpent_test (void)
+ 				(const u32 *) test_data[i].text_plain,
+ 				(u32 *) scratch);
+ 
+-      if (memcmp (scratch, test_data[i].text_cipher, sizeof (serpent_block_t)))
++      if (grub_memcmp (scratch, test_data[i].text_cipher, sizeof (serpent_block_t)))
+ 	switch (test_data[i].key_length)
+ 	  {
+ 	  case 16:
+@@ -931,7 +931,7 @@ serpent_test (void)
+     serpent_decrypt_internal (&context,
+ 			      (const u32 *) test_data[i].text_cipher,
+ 			      (u32 *) scratch);
+-    if (memcmp (scratch, test_data[i].text_plain, sizeof (serpent_block_t)))
++    if (grub_memcmp (scratch, test_data[i].text_plain, sizeof (serpent_block_t)))
+       switch (test_data[i].key_length)
+ 	{
+ 	case 16:

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_sha1_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/sha1.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/sha1.c	2010-06-26 20:23:50.135168960 +0200
+@@ -114,7 +114,7 @@ transform (SHA1_CONTEXT *hd, const unsig
+   for ( ;nblocks; nblocks--)
+     {
+ #ifdef WORDS_BIGENDIAN
+-      memcpy (x, data, 64);
++      grub_memcpy (x, data, 64);
+       data += 64;
+ #else
+       {

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_sha256_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/sha256.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/sha256.c	2010-06-26 20:24:00.135274844 +0200
+@@ -150,7 +150,7 @@ transform (SHA256_CONTEXT *hd, const uns
+   h = hd->h7;
+   
+ #ifdef WORDS_BIGENDIAN
+-  memcpy (x, data, 64);
++  grub_memcpy (x, data, 64);
+ #else
+   { 
+     byte *p2;

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_sha512_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/sha512.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/sha512.c	2010-06-26 20:24:09.235288423 +0200
+@@ -162,7 +162,7 @@ transform (SHA512_CONTEXT *hd, const uns
+   h = hd->h7;
+ 
+ #ifdef WORDS_BIGENDIAN
+-  memcpy (w, data, 128);
++  grub_memcpy (w, data, 128);
+ #else
+   {
+     int i;

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_tiger_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/tiger.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/tiger.c	2010-06-26 20:22:45.507277255 +0200
+@@ -685,7 +685,7 @@ transform ( TIGER_CONTEXT *hd, const uns
+   x[7] = MKWORD(data, 7);
+ #undef MKWORD
+ #else
+-  memcpy( &x[0], data, 64 );
++  grub_memcpy( &x[0], data, 64 );
+ #endif
+ 
+   /* save */

+ 20 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_twofish_c

@@ -0,0 +1,20 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/twofish.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/twofish.c	2010-06-26 20:30:05.671278033 +0200
+@@ -932,7 +932,7 @@ main()
+         twofish_encrypt (&ctx, buffer[1], buffer[1]);
+       }
+     }
+-  encrypt_msg = memcmp (buffer, test_encrypt, sizeof (test_encrypt)) ?
++  encrypt_msg = grub_memcmp (buffer, test_encrypt, sizeof (test_encrypt)) ?
+     "encryption failure!\n" : "encryption OK!\n";
+ 
+   /* Decryption test. */
+@@ -954,7 +954,7 @@ main()
+   /* Stop the timer, and print results. */
+   timer = clock () - timer;
+   printf (encrypt_msg);
+-  printf (memcmp (buffer, test_decrypt, sizeof (test_decrypt)) ?
++  printf (grub_memcmp (buffer, test_decrypt, sizeof (test_decrypt)) ?
+           "decryption failure!\n" : "decryption OK!\n");
+   printf ("elapsed time: %.1f s.\n", (float) timer / CLOCKS_PER_SEC);
+ 

+ 11 - 0
package/grub/patches/patch-lib_libgcrypt-grub_cipher_whirlpool_c

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/lib/libgcrypt-grub/cipher/whirlpool.c	2010-03-06 21:52:26.000000000 +0100
++++ grub-1.98/lib/libgcrypt-grub/cipher/whirlpool.c	2010-06-26 20:17:35.043170089 +0200
+@@ -1381,7 +1381,7 @@ whirlpool_final (void *ctx)
+     context->buffer[context->count++] = 0;
+ 
+   /* Add length of message.  */
+-  memcpy (context->buffer + context->count, context->length, 32);
++  grub_memcpy (context->buffer + context->count, context->length, 32);
+   context->count += 32;
+   whirlpool_add (context, NULL, 0);
+ 

+ 11 - 0
package/grub/patches/patch-util_grub-install_in

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/util/grub-install.in	2010-03-06 21:51:37.000000000 +0100
++++ grub-1.98/util/grub-install.in	2010-06-26 21:16:50.031158562 +0200
+@@ -306,7 +306,7 @@ config_opt=
+ 
+ if [ "x${devabstraction_module}" = "x" ] ; then
+     if [ x"${install_device}" != x ]; then
+-      if echo "${install_device}" | grep -qx "(.*)" ; then
++      if echo "${install_device}" | grep -q "(.*)" ; then
+         install_drive="${install_device}"
+       else
+         install_drive="`$grub_probe --target=drive --device ${install_device}`"

+ 11 - 0
package/grub/patches/patch-util_grub-mkconfig_lib_in

@@ -0,0 +1,11 @@
+--- grub-1.98.orig/util/grub-mkconfig_lib.in	2010-03-06 21:51:37.000000000 +0100
++++ grub-1.98/util/grub-mkconfig_lib.in	2010-06-26 21:17:19.399157123 +0200
+@@ -154,7 +154,7 @@ version_test_numeric ()
+     a=$b
+     b=$c
+   fi
+-  if (echo $a ; echo $b) | sort -n | head -n 1 | grep -qx $b ; then
++  if (echo $a ; echo $b) | sort -n | head -n 1 | grep -q $b ; then
+     return 0
+   else
+     return 1

+ 20 - 0
package/grub/patches/patch-util_grub_d_10_linux_in

@@ -0,0 +1,20 @@
+--- grub-1.98.orig/util/grub.d/10_linux.in	2010-03-06 21:51:37.000000000 +0100
++++ grub-1.98/util/grub.d/10_linux.in	2010-06-26 21:18:10.803156350 +0200
+@@ -66,8 +66,8 @@ linux_entry ()
+   # Use ELILO's generic "efifb" when it's known to be available.
+   # FIXME: We need an interface to select vesafb in case efifb can't be used.
+   if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then
+-      if grep -qx "CONFIG_FB_EFI=y" /boot/config-${version} 2> /dev/null \
+-	  && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" /boot/config-${version} 2> /dev/null; then
++      if grep -q "CONFIG_FB_EFI=y" /boot/config-${version} 2> /dev/null \
++	  && grep -q "CONFIG_VT_HW_CONSOLE_BINDING=y" /boot/config-${version} 2> /dev/null; then
+ 	  cat << EOF
+ 	set gfxpayload=keep
+ EOF
+@@ -135,5 +135,5 @@ while [ "x$list" != "x" ] ; do
+ 	"single ${GRUB_CMDLINE_LINUX}"
+   fi
+ 
+-  list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
++  list=`echo $list | tr ' ' '\n' | grep -v $linux | tr '\n' ' '`
+ done