rpms/grub/devel grub-fedora-9.patch, 1.2, 1.3 grub.spec, 1.63, 1.64 grub-support-256byte-inode.patch, 1.1, NONE

Peter Jones (pjones) fedora-extras-commits at redhat.com
Wed Feb 27 16:08:29 UTC 2008


Author: pjones

Update of /cvs/extras/rpms/grub/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24701

Modified Files:
	grub-fedora-9.patch grub.spec 
Removed Files:
	grub-support-256byte-inode.patch 
Log Message:
Update to newest git head and add EFI support on i386


grub-fedora-9.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.2 -r 1.3 grub-fedora-9.patch
Index: grub-fedora-9.patch
===================================================================
RCS file: /cvs/extras/rpms/grub/devel/grub-fedora-9.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- grub-fedora-9.patch	5 Nov 2007 22:07:36 -0000	1.2
+++ grub-fedora-9.patch	27 Feb 2008 16:08:23 -0000	1.3
@@ -1213,7 +1213,7 @@
  # _AM_PROG_TAR(FORMAT)
  # --------------------
 diff --git a/config.h.in b/config.h.in
-index 68d7c8c..46f6b70 100644
+index 68d7c8c..e2128e4 100644
 --- a/config.h.in
 +++ b/config.h.in
 @@ -1,4 +1,4 @@
@@ -1222,6 +1222,16 @@
  
  /* Define if an absolute indirect call/jump must NOT be prefixed with `*' */
  #undef ABSOLUTE_WITHOUT_ASTERISK
+@@ -96,6 +96,9 @@
+ /* Define to the version of this package. */
+ #undef PACKAGE_VERSION
+ 
++/* Define if you run on EFI platform. */
++#undef PLATFORM_EFI
++
+ /* Define if there is user specified preset menu string */
+ #undef PRESET_MENU_STRING
+ 
 diff --git a/configure b/configure
 deleted file mode 100755
 index 537ab89..0000000
@@ -9545,10 +9555,10 @@
 -AC_OUTPUT
 diff --git a/configure.in b/configure.in
 new file mode 100644
-index 0000000..42e0132
+index 0000000..62209dc
 --- /dev/null
 +++ b/configure.in
-@@ -0,0 +1,739 @@
+@@ -0,0 +1,757 @@
 +dnl Configure script for GRUB.
 +dnl Copyright 1999,2000,2001,2002,2003,2004,2005 Free Software Foundation, Inc.
 +
@@ -9599,6 +9609,7 @@
 +# Sanity check.
 +case "$host_cpu"-"$platform" in
 +  i386-pc) ;;
++  i386-efi) ;;
 +  x86_64-pc) ;;
 +  x86_64-efi) ;;
 +  *) AC_MSG_ERROR([unsupported machine type "$host_cpu"-"$platform"]) ;;
@@ -9613,6 +9624,20 @@
 +  AC_SUBST(EFI_ARCH)
 +fi
 +
++gnuefi_path=/usr/lib/gnuefi
++gnuefi_crt0=${gnuefi_path}/crt0-efi-${EFI_ARCH}.o
++if ! test -f $gnuefi_crt0 ; then
++  gnuefi_crt0=crt0-efi.o
++fi
++GNUEFI_CRT0=${gnuefi_crt0}
++AC_SUBST(GNUEFI_CRT0)
++gnuefi_lds=${gnuefi_path}/elf_${EFI_ARCH}_efi.lds
++if ! test -f $gnuefi_lds ; then
++  gnuefi_lds=${EFI_ARCH}/elf_efi.lds
++fi
++GNUEFI_LDS=${gnuefi_lds}
++AC_SUBST(GNUEFI_LDS)
++
 +AC_SUBST(platform)
 +AM_CONDITIONAL(PLATFORM_EFI, test "x$platform" = xefi)
 +
@@ -9709,7 +9734,10 @@
 +fi
 +STAGE2_CFLAGS="$STAGE2_CFLAGS -isystem `$CC -print-file-name=include`"
 +
-+LOADER_LDFLAGS="-Wl,--build-id=none"
++LIBGCC=$(gcc $CFLAGS -static-libgcc -print-libgcc-file-name)
++AC_SUBST(LIBGCC)
++
++LOADER_LDFLAGS="-Wl,--build-id=none ${LIBGCC}"
 +AC_SUBST(LOADER_LDFLAGS)
 +
 +if test "x$platform" = xefi; then
@@ -11400,12 +11428,13 @@
  @set VERSION 0.97
 diff --git a/efi/Makefile.am b/efi/Makefile.am
 new file mode 100644
-index 0000000..36e32bf
+index 0000000..d28df9f
 --- /dev/null
 +++ b/efi/Makefile.am
-@@ -0,0 +1,75 @@
+@@ -0,0 +1,78 @@
 +
 +pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
 +
 +if PLATFORM_EFI
 +
@@ -11434,10 +11463,11 @@
 +endif
 +
 +GRUBEFI_FORMAT = efi-app-$(EFI_ARCH)
-+GRUBSO_LD_SCRIPT = $(EFI_ARCH)/elf_efi.lds
++GRUBSO_LD_SCRIPT = @GNUEFI_LDS@
 +GRUBSO_LD_FLAGS = -T $(GRUBSO_LD_SCRIPT) -nostdlib -shared -Bsymbolic
-+GRUBSO_OBJS = crt0-efi.o reloc.o efimain.o
-+GRUBSO_LIBS = $(top_srcdir)/stage2/libstage2.a libgrubefi.a
++
++GRUBSO_OBJS = reloc.o efimain.o @GNUEFI_CRT0@
++GRUBSO_LIBS = $(top_srcdir)/stage2/libstage2.a libgrubefi.a @LIBGCC@
 +
 +if NETBOOT_SUPPORT
 +GRUBSO_LIBS += $(top_srcdir)/netboot/libdrivers.a
@@ -11474,8 +11504,9 @@
 +
 +noinst_LIBRARIES = libgrubefi.a
 +libgrubefi_a_SOURCES = $(EFI_ARCH)/callwrap.S eficore.c efimm.c efimisc.c \
-+	$(EFI_ARCH)/setjmp.S eficon.c efidisk.c efigraph.c font_8x16.c \
-+	efiserial.c $(EFI_ARCH)/loader/linux.c efichainloader.c
++	$(EFI_ARCH)/setjmp.S eficon.c efidisk.c graphics.c efigraph.c efiuga.c \
++	font_8x16.c efiserial.c $(EFI_ARCH)/loader/linux.c efichainloader.c \
++	xpm.c
 +libgrubefi_a_CFLAGS = $(RELOC_FLAGS) -nostdinc
 +
 +endif
@@ -12689,10 +12720,10 @@
 +}
 diff --git a/efi/efidisk.c b/efi/efidisk.c
 new file mode 100644
-index 0000000..d436b89
+index 0000000..bc9d3bd
 --- /dev/null
 +++ b/efi/efidisk.c
-@@ -0,0 +1,636 @@
+@@ -0,0 +1,629 @@
 +/*
 + *  GRUB  --  GRand Unified Bootloader
 + *  Copyright (C) 2006  Free Software Foundation, Inc.
@@ -12975,17 +13006,14 @@
 +	{
 +	  if (m->read_only && m->block_size > SECTOR_SIZE)
 +	    {
-+	      grub_printf ("adding a cd by guessing\n");
 +	      add_device (&cd_devices, d);
 +	    } else
 +	    {
-+	      grub_printf ("adding a hd by guessing\n");
 +	      add_device (&hd_devices, d);
 +	    }
 +	}
 +      if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_ACPI_DEVICE_PATH_TYPE)
 +	{
-+	  grub_printf ("adding a floppy by guessing\n");
 +	  add_device (&fd_devices, d);
 +	}
 +    }
@@ -13045,10 +13073,6 @@
 +  bio = d->block_io;
 +  sector_size = d->block_io->media->block_size;
 +
-+  grub_dprintf ("efidisk",
-+		"reading 0x%x sectors at the sector 0x%x from ??\n",
-+		(unsigned) size, (unsigned int) sector);
-+
 +  status = Call_Service_5 (dio->read ,
 +			   dio, bio->media->media_id,
 +			   sector * sector_size,
@@ -13331,16 +13355,14 @@
 +}
 diff --git a/efi/efigraph.c b/efi/efigraph.c
 new file mode 100644
-index 0000000..8ab215f
+index 0000000..e424621
 --- /dev/null
 +++ b/efi/efigraph.c
-@@ -0,0 +1,754 @@
-+/* efigraph.c - graphics mode support for GRUB/EFI */
-+/* Implemented as a terminal type by Jeremy Katz <katzj at redhat.com> based
-+ * on a patch by Paulo César Pereira de Andrade <pcpa at conectiva.com.br>
-+ */
+@@ -0,0 +1,1078 @@
++/* efigraph.c - EFI "graphics output" support for GRUB/EFI */
 +/*
 + *  GRUB  --  GRand Unified Bootloader
++ *  Copyright 2007 Red Hat, Inc.
 + *  Copyright (C) 2007 Intel Corp.
 + *  Copyright (C) 2001,2002  Red Hat, Inc.
 + *  Portions copyright (C) 2000  Conectiva, Inc.
@@ -13370,6 +13392,9 @@
 +#include <shared.h>
 +#include <graphics.h>
 +
++#include "graphics.h"
++#include "xpm.h"
[...6964 lines suppressed...]
++                if (is_long == 0) {
++                    uint_arg = va_arg(args, unsigned int);
++                    format_ascii(buf, uint_arg, 0, 0);
++                } else if (is_long == 1) {
++                    ulong_arg = va_arg(args, unsigned long);
++                    format_ascii(buf, ulong_arg, 0, 0);
++                } else {
++                    ulonglong_arg = va_arg(args, unsigned long long);
++                    format_ascii(buf, ulonglong_arg, 0, 0);
++                }
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            case 'P':
++                is_cap = 1;
++            case 'p':
++                ulong_arg = va_arg(args, unsigned long);
++                format_ascii(buf, ulong_arg, 1, is_cap);
++                write_str(&str, is_cap ? "0X" : "0x", &count);
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            case 'X':
++                is_cap = 1;
++            case 'x':
++                if (is_long == 0) {
++                    uint_arg = va_arg(args, unsigned int);
++                    format_ascii(buf, uint_arg, 1, is_cap);
++                } else if (is_long == 1) {
++                    ulong_arg = va_arg(args, unsigned long);
++                    format_ascii(buf, ulong_arg, 1, is_cap);
++                } else {
++                    ulonglong_arg = va_arg(args, unsigned long long);
++                    format_ascii(buf, ulonglong_arg, 1, is_cap);
++                }
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            default:
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++        }
++    } while ((c = *fmt++));
++
++    if (str)
++        *str = '\0';
++    return count;
++}
  
 -	    while (*ptr)
 -	      *bp++ = *(ptr++); /* putchar(*(ptr++)); */
 -	    break;
-+  return count;
-+}
- 
--	  case 'c': *bp++ = (*(dataptr++))&0xff;
--	    /* putchar((*(dataptr++))&0xff); */
--	    break;
 +void
 +grub_printf (char *fmt, ...)
 +{
 +  va_list ap;
  
--	  case 's':
--	    ptr = (char *) (*(dataptr++));
+-	  case 'c': *bp++ = (*(dataptr++))&0xff;
+-	    /* putchar((*(dataptr++))&0xff); */
+-	    break;
 +  va_start (ap, fmt);
 +  grub_vsprintf (0, fmt, ap);
 +  va_end (ap);
 +}
  
--	    while ((c = *ptr++) != 0)
--	      *bp++ = c; /* putchar(c); */
--	    break;
--	  }
--    }
+-	  case 's':
+-	    ptr = (char *) (*(dataptr++));
 +#ifndef STAGE1_5
 +int
 +grub_sprintf (char *str, const char *fmt, ...)
 +{
 +  va_list ap;
 +  int ret;
-+
+ 
+-	    while ((c = *ptr++) != 0)
+-	      *bp++ = c; /* putchar(c); */
+-	    break;
+-	  }
+-    }
 +  va_start (ap, fmt);
 +  ret = grub_vsprintf (str, fmt, ap);
 +  va_end (ap);
@@ -33205,7 +37794,7 @@
  }
  
  
-@@ -1046,13 +1089,15 @@ grub_putchar (int c)
+@@ -1046,13 +1208,15 @@ grub_putchar (int c)
  		 the following grub_printf call will print newlines.  */
  	      count_lines = -1;
  
@@ -33222,7 +37811,7 @@
  	      
  	      do
  		{
-@@ -1090,7 +1135,7 @@ void
+@@ -1090,7 +1254,7 @@ void
  cls (void)
  {
    /* If the terminal is dumb, there is no way to clean the terminal.  */
@@ -33231,7 +37820,7 @@
      grub_putchar ('\n');
    else
      current_term->cls ();
-@@ -1174,39 +1219,41 @@ grub_strlen (const char *str)
+@@ -1174,39 +1338,41 @@ grub_strlen (const char *str)
  }
  #endif /* ! STAGE1_5 */
  
@@ -33294,7 +37883,7 @@
    if ((addr < RAW_ADDR (0x1000))
        || (addr < RAW_ADDR (0x100000)
  	  && RAW_ADDR (mbi.mem_lower * 1024) < (addr + len))
-@@ -1215,12 +1262,23 @@ memcheck (int addr, int len)
+@@ -1215,12 +1381,23 @@ memcheck (int addr, int len)
      errnum = ERR_WONT_FIT;
  
    return ! errnum;
@@ -33319,7 +37908,7 @@
       {
         /* This assembly code is stolen from
  	  linux-2.2.2/include/asm-i386/string.h. This is not very fast
-@@ -1258,7 +1316,7 @@ grub_memset (void *start, int c, int len)
+@@ -1258,7 +1435,7 @@ grub_memset (void *start, int c, int len)
  {
    char *p = start;
  
@@ -33656,7 +38245,7 @@
  #define BLK_BLKLIST_INC_VAL  8
  #endif /* NO_BLOCK_FILES */
 diff --git a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c
-index 560048f..571ba87 100644
+index 560048f..1c07035 100644
 --- a/stage2/fsys_ext2fs.c
 +++ b/stage2/fsys_ext2fs.c
 @@ -79,7 +79,52 @@ struct ext2_super_block
@@ -33781,13 +38370,16 @@
  	{
  	  return 0;
  	}
-@@ -566,12 +614,10 @@ ext2fs_dir (char *dirname)
+@@ -565,13 +613,12 @@ ext2fs_dir (char *dirname)
+       /* reset indirect blocks! */
        mapblock2 = mapblock1 = -1;
  
-       raw_inode = INODE +
+-      raw_inode = INODE +
 -	((current_ino - 1)
 -	 & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1));
-+	((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1));
++      raw_inode = (struct ext2_inode *)((char *)INODE +
++	((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) *
++	EXT2_INODE_SIZE (SUPERBLOCK));
  #ifdef E2DEBUG
        printf ("ipb=%d, sizeof(inode)=%d\n",
 -	      (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)),
@@ -33797,7 +38389,7 @@
        printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE);
        for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode;
 diff --git a/stage2/fsys_fat.c b/stage2/fsys_fat.c
-index f40e658..eccd3dd 100644
+index f40e658..70a4614 100644
 --- a/stage2/fsys_fat.c
 +++ b/stage2/fsys_fat.c
 @@ -54,8 +54,8 @@ struct fat_superblock
@@ -33811,7 +38403,16 @@
  {
    __asm__ ("bsfl %1,%0"
  	   : "=r" (word)
-@@ -84,9 +84,9 @@ fat_mount (void)
+@@ -71,6 +71,8 @@ fat_mount (void)
+   
+   /* Check partition type for harddisk */
+   if (((current_drive & 0x80) || (current_slice != 0))
++      && (current_slice != PC_SLICE_TYPE_EXT2FS)
++      && (current_slice != PC_SLICE_TYPE_LINUX_RAID)
+       && ! IS_PC_SLICE_TYPE_FAT (current_slice)
+       && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS)))
+     return 0;
+@@ -84,9 +86,9 @@ fat_mount (void)
    if (bpb.sects_per_clust == 0)
      return 0;
    


Index: grub.spec
===================================================================
RCS file: /cvs/extras/rpms/grub/devel/grub.spec,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- grub.spec	19 Feb 2008 19:41:13 -0000	1.63
+++ grub.spec	27 Feb 2008 16:08:23 -0000	1.64
@@ -1,6 +1,6 @@
 Name: grub
 Version: 0.97
-Release: 22%{?dist}
+Release: 23%{?dist}
 Summary: GRUB - the Grand Unified Boot Loader.
 Group: System Environment/Base
 License: GPLv2+
@@ -17,7 +17,6 @@
 URL: http://www.gnu.org/software/%{name}/
 Source0: ftp://alpha.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
 Patch0: grub-fedora-9.patch
-Patch1: grub-support-256byte-inode.patch
 
 %description
 GRUB (Grand Unified Boot Loader) is an experimental boot loader
@@ -28,7 +27,6 @@
 %prep
 %setup -q
 %patch0 -p1 -b .fedora-9
-%patch1 -p1 -b .256byte-inode
 
 %build
 autoreconf
@@ -39,18 +37,16 @@
 	CFLAGS="$CFLAGS -Wno-pointer-sign"
 fi
 export CFLAGS
-%ifarch x86_64
 %configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir} --with-platform=efi
 make
 rm -fr $RPM_BUILD_ROOT
 %makeinstall sbindir=${RPM_BUILD_ROOT}/sbin
-mv ${RPM_BUILD_ROOT}/sbin/grub ${RPM_BUILD_ROOT}/sbin/grub-efi
+#mv ${RPM_BUILD_ROOT}/sbin/grub ${RPM_BUILD_ROOT}/sbin/grub-efi
 make clean
 autoreconf
 autoconf
 CFLAGS="$CFLAGS -static" 
 export CFLAGS
-%endif
 %configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir}
 make
 
@@ -88,11 +84,12 @@
 %{_infodir}/multiboot*
 %{_mandir}/man*/*
 %{_datadir}/grub
-%ifarch x86_64
-/sbin/grub-efi
-%endif
+#/sbin/grub-efi
 
 %changelog
+* Wed Feb 27 2008 Peter Jones <pjones at redhat.com> - 0.97-23
+- Enable EFI on i386, update to newest git head.
+
 * Tue Feb 19 2008 Fedora Release Engineering <rel-eng at fedoraproject.org> - 0.97-22
 - Autorebuild for GCC 4.3
 


--- grub-support-256byte-inode.patch DELETED ---




More information about the fedora-extras-commits mailing list