summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/x86/grub/grub.300-honor_UCLIBC_HAS_LFS.patch34
-rw-r--r--target/x86/grub/grub.mk4
2 files changed, 38 insertions, 0 deletions
diff --git a/target/x86/grub/grub.300-honor_UCLIBC_HAS_LFS.patch b/target/x86/grub/grub.300-honor_UCLIBC_HAS_LFS.patch
new file mode 100644
index 000000000..5b941865b
--- /dev/null
+++ b/target/x86/grub/grub.300-honor_UCLIBC_HAS_LFS.patch
@@ -0,0 +1,34 @@
+diff -rup grub-0.97.orig/grub/asmstub.c grub-0.97/grub/asmstub.c
+--- grub-0.97.orig/grub/asmstub.c 2006-11-29 20:36:20.000000000 +0100
++++ grub-0.97/grub/asmstub.c 2006-11-29 21:26:16.000000000 +0100
+@@ -18,10 +18,13 @@
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#include <features.h>
++#if !defined __UCLIBC__ || (defined __UCLIBC__ && defined __UCLIBC_HAS_LFS__)
+ /* Try to use glibc's transparant LFS support. */
+ #define _LARGEFILE_SOURCE 1
+ /* lseek becomes synonymous with lseek64. */
+ #define _FILE_OFFSET_BITS 64
++#endif
+
+ /* Simulator entry point. */
+ int grub_stage2 (void);
+diff -rup grub-0.97.orig/lib/device.c grub-0.97/lib/device.c
+--- grub-0.97.orig/lib/device.c 2006-11-29 20:36:20.000000000 +0100
++++ grub-0.97/lib/device.c 2006-11-29 21:25:19.000000000 +0100
+@@ -18,10 +18,13 @@
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#include <features.h>
++#if !defined __UCLIBC__ || (defined __UCLIBC__ && defined __UCLIBC_HAS_LFS__)
+ /* Try to use glibc's transparant LFS support. */
+ #define _LARGEFILE_SOURCE 1
+ /* lseek becomes synonymous with lseek64. */
+ #define _FILE_OFFSET_BITS 64
++#endif
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/target/x86/grub/grub.mk b/target/x86/grub/grub.mk
index 8e4bd575e..af3ce6da0 100644
--- a/target/x86/grub/grub.mk
+++ b/target/x86/grub/grub.mk
@@ -36,6 +36,10 @@ GRUB_TARGET_FILES+=$(GRUB_SPLASHIMAGE)
endif
GRUB_CFLAGS=-DSUPPORT_LOOPDEV
+ifeq ($(BR2_LARGEFILE),)
+GRUB_CFLAGS+=-U_FILE_OFFSET_BITS
+endif
+
$(DL_DIR)/$(GRUB_SOURCE):
$(WGET) -P $(DL_DIR) $(GRUB_SITE)/$(GRUB_SOURCE)