aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/grub
diff options
context:
space:
mode:
authorMichal Minar <i@minami.cz>2010-09-01 05:57:39 +0000
committerKhem Raj <raj.khem@gmail.com>2010-09-21 23:09:16 -0700
commitf52590bd495fabcae83546f0e0c447421ce99285 (patch)
treee3f82d5e7905cb0edfbb08f6372558933bd9598d /recipes/grub
parentb5d88460d4485a94f6c222591a1a0a82db6af5a9 (diff)
downloadopenembedded-f52590bd495fabcae83546f0e0c447421ce99285.tar.gz
grub 0.97: fixing broken 256byte-inodes patch
* original patch causes termination of grub with floating point exception, when operating upon ext2 partitions * the bug description came from: http://bugs.gentoo.org/show_bug.cgi?id=220687 * fixed patch was done by RB <aoz.syn@gmail.com> Signed-off-by: Michal Minar <i@minami.cz> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/grub')
-rw-r--r--recipes/grub/grub-0.97/grub-support-256byte-inode.diff21
-rw-r--r--recipes/grub/grub_0.97.bb2
2 files changed, 14 insertions, 9 deletions
diff --git a/recipes/grub/grub-0.97/grub-support-256byte-inode.diff b/recipes/grub/grub-0.97/grub-support-256byte-inode.diff
index bef3bc18e7..caaf9d6b62 100644
--- a/recipes/grub/grub-0.97/grub-support-256byte-inode.diff
+++ b/recipes/grub/grub-0.97/grub-support-256byte-inode.diff
@@ -1,7 +1,7 @@
-diff -Nrup a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c
---- a/stage2/fsys_ext2fs.c 2004-08-08 20:19:18.000000000 +0200
-+++ b/stage2/fsys_ext2fs.c 2008-01-30 14:27:20.000000000 +0100
-@@ -79,7 +79,52 @@ struct ext2_super_block
+diff -Naur grub-0.97-800/stage2/fsys_ext2fs.c grub-0.97-810/stage2/fsys_ext2fs.c
+--- grub-0.97-800/stage2/fsys_ext2fs.c 2008-07-21 00:40:21.668879475 -0600
++++ grub-0.97-810/stage2/fsys_ext2fs.c 2008-07-21 01:01:11.063953773 -0600
+@@ -79,7 +79,52 @@
__u32 s_rev_level; /* Revision level */
__u16 s_def_resuid; /* Default uid for reserved blocks */
__u16 s_def_resgid; /* Default gid for reserved blocks */
@@ -55,17 +55,22 @@ diff -Nrup a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c
};
struct ext2_group_desc
-@@ -218,6 +263,9 @@ struct ext2_dir_entry
+@@ -218,6 +263,14 @@
#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
#define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s)))
-+#define EXT2_INODE_SIZE(s) (SUPERBLOCK->s_inode_size)
++#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */
++#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
++#define EXT2_GOOD_OLD_INODE_SIZE 128
++#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
++ EXT2_GOOD_OLD_INODE_SIZE : \
++ (s)->s_inode_size)
+#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
+
/* linux/ext2_fs.h */
#define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
/* kind of from ext2/super.c */
-@@ -553,7 +601,7 @@ ext2fs_dir (char *dirname)
+@@ -553,7 +606,7 @@
gdp = GROUP_DESC;
ino_blk = gdp[desc].bg_inode_table +
(((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group))
@@ -74,7 +79,7 @@ diff -Nrup a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c
#ifdef E2DEBUG
printf ("inode table fsblock=%d\n", ino_blk);
#endif /* E2DEBUG */
-@@ -565,13 +613,12 @@ ext2fs_dir (char *dirname)
+@@ -565,13 +618,12 @@
/* reset indirect blocks! */
mapblock2 = mapblock1 = -1;
diff --git a/recipes/grub/grub_0.97.bb b/recipes/grub/grub_0.97.bb
index 98691c1c38..eab4ad698c 100644
--- a/recipes/grub/grub_0.97.bb
+++ b/recipes/grub/grub_0.97.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.gnu.org/software/grub"
SECTION = "bootloaders"
PRIORITY = "optional"
RDEPENDS_${PN}-install = "diffutils"
-PR = "r6"
+PR = "r7"
SRC_URI = "ftp://alpha.gnu.org/gnu/grub/grub-${PV}.tar.gz \
file://automake-1.10.patch \