summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Loeser <halcy0n@gentoo.org>2005-04-05 21:41:28 +0000
committerMark Loeser <halcy0n@gentoo.org>2005-04-05 21:41:28 +0000
commitee7f2e556f9bace25d265bcd949e0e804de015b7 (patch)
treeb548edea9f85d8b2e732418cb8a4dd041a564cfc /sys-boot/grub
parentStable on x86 for security (diff)
downloadhistorical-ee7f2e556f9bace25d265bcd949e0e804de015b7.tar.gz
historical-ee7f2e556f9bace25d265bcd949e0e804de015b7.tar.bz2
historical-ee7f2e556f9bace25d265bcd949e0e804de015b7.zip
backported gcc4 fix for bug #85016
Package-Manager: portage-2.0.51.19
Diffstat (limited to 'sys-boot/grub')
-rw-r--r--sys-boot/grub/ChangeLog6
-rw-r--r--sys-boot/grub/Manifest19
-rw-r--r--sys-boot/grub/files/grub-0.96-gcc4.patch225
-rw-r--r--sys-boot/grub/grub-0.96.ebuild5
4 files changed, 244 insertions, 11 deletions
diff --git a/sys-boot/grub/ChangeLog b/sys-boot/grub/ChangeLog
index c9431b0d11f0..dd471a3df657 100644
--- a/sys-boot/grub/ChangeLog
+++ b/sys-boot/grub/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for sys-boot/grub
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/ChangeLog,v 1.35 2005/03/15 23:39:52 eradicator Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/ChangeLog,v 1.36 2005/04/05 21:41:28 halcy0n Exp $
+
+ 05 Apr 2005; Mark Loeser <halcy0n@gentoo.org> +files/grub-0.96-gcc4.patch,
+ grub-0.96.ebuild:
+ Backported fixes for GCC4. Fixes bug #85016
15 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
grub-0.94-r1.ebuild, grub-0.94-r2.ebuild, grub-0.95.20040823.ebuild,
diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest
index b068f0c24eb2..99716582a46c 100644
--- a/sys-boot/grub/Manifest
+++ b/sys-boot/grub/Manifest
@@ -1,35 +1,36 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-MD5 a0d8109cb6521457d04791b4a5570ad9 ChangeLog 12257
+MD5 e0c147ccf4a0efe2479dfde0b0d260ba ChangeLog 12399
MD5 3b7a994ffe338fd8de16df033684e924 grub-0.92-r1.ebuild 2519
MD5 adcde4d1dce3d1e2ef2c466f860c6875 grub-0.93.20030118.ebuild 2539
MD5 138bf4b71e6daf1c47dd24c453f5faeb grub-0.94-r1.ebuild 3595
-MD5 b0eacbb6edb031d87f33ed0b08f5916d metadata.xml 226
MD5 6f64ad4c1842218eafe2ebdd908fcc85 grub-0.94-r2.ebuild 3711
MD5 a0f235ac986f99960ed542e2982c3640 grub-0.95.20040823.ebuild 4185
-MD5 840a9c24664c6b7e72741226ff791f8e grub-0.96.ebuild 4109
+MD5 b992ca57dedad689b4e2514062cd58c8 grub-0.96.ebuild 4173
+MD5 b0eacbb6edb031d87f33ed0b08f5916d metadata.xml 226
MD5 2eadb6c1bd87b8f207d226c00f9e3458 grub-0.96-r1.ebuild 5035
MD5 16039704cf1e6b6f46b4413532af082c files/digest-grub-0.92-r1 133
MD5 5d1c8e582496db9d7a9b77e76f09f7d8 files/digest-grub-0.93.20030118 139
MD5 0b52e1b3a6a9f3c9b86742580eabf28d files/digest-grub-0.94-r1 131
MD5 0b52e1b3a6a9f3c9b86742580eabf28d files/digest-grub-0.94-r2 131
MD5 3a653f86b731c2a17482d25f57b2d041 files/digest-grub-0.95.20040823 149
+MD5 2170f54e53dea24426369c0154d46fc0 files/digest-grub-0.96 140
MD5 8d898cd9d1928916596cc3f9883eac67 files/grub-0.93-gcc3.3.diff 639
MD5 e9e73f57d9f9d5c550792980b2635f94 files/grub-0.94-gcc3.4.patch 479
MD5 7357395b0d223c0bbf0675a9af31f9c3 files/grub-0.94-grub.conf.patch 7574
MD5 9c1ec8bfdc5f20ce965c2d2167a43162 files/grub-0.95.20040823-warnings.patch 2529
MD5 cdd6c89d48982ecd544c0b4774755afd files/splash.xpm.gz 33856
-MD5 2170f54e53dea24426369c0154d46fc0 files/digest-grub-0.96 140
MD5 2170f54e53dea24426369c0154d46fc0 files/digest-grub-0.96-r1 140
MD5 904c3dec402e5c7f0e62ab970dcdf5b2 files/grub-0.96-PIC.patch 1925
-MD5 e5978f58eb732289c47b1e0093db4e73 files/grub-0.96-bounced-checks.patch 505
MD5 3f3995353a0995c56d996d2218570160 files/grub-0.96-i2o-raid.patch 1597
MD5 8082c035a4ba98d0935b6b045827fb2c files/grub-0.96-nxstack.patch 18920
+MD5 e5978f58eb732289c47b1e0093db4e73 files/grub-0.96-bounced-checks.patch 505
+MD5 7c2804e6a538b2dbcbb851b9614424fd files/grub-0.96-gcc4.patch 6871
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.0 (GNU/Linux)
+Version: GnuPG v1.4.1 (GNU/Linux)
-iD8DBQFCN3J/ArHZZzCEUG0RAiOJAJwPFAngNMySqVlnCh24gTFwaPFhUQCgiZs2
-6q1GKvg5MOBuNDiEINJbq30=
-=XosZ
+iD8DBQFCUwYQCRZPokWLroQRAhp6AJ47ai0c2iw2TWA8gW+FxKw/tD2NTACgpOyd
+Ks/r9uqZY4BW5m94HUst4LI=
+=dHx7
-----END PGP SIGNATURE-----
diff --git a/sys-boot/grub/files/grub-0.96-gcc4.patch b/sys-boot/grub/files/grub-0.96-gcc4.patch
new file mode 100644
index 000000000000..3201316fdc31
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.96-gcc4.patch
@@ -0,0 +1,225 @@
+diff --exclude=.deps -ur grub-0.96-orig/grub/asmstub.c grub-0.96/grub/asmstub.c
+--- grub-0.96-orig/grub/asmstub.c 2005-03-12 18:16:47.000000000 -0500
++++ grub-0.96/grub/asmstub.c 2005-03-12 18:23:40.000000000 -0500
+@@ -90,7 +90,7 @@
+ static jmp_buf env_for_exit;
+
+ /* The current color for console. */
+-static int console_current_color = A_NORMAL;
++int console_current_color = A_NORMAL;
+
+ /* The file descriptor for a serial device. */
+ static int serial_fd = -1;
+@@ -113,31 +113,33 @@
+ char *scratch, *simstack;
+ int i;
+
++ auto void doit (void);
++
+ /* We need a nested function so that we get a clean stack frame,
+ regardless of how the code is optimized. */
+- static volatile void doit ()
+- {
+- /* Make sure our stack lives in the simulated memory area. */
+- asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
+- : "=&r" (realstack) : "r" (simstack));
+-
+- /* Do a setjmp here for the stop command. */
+- if (! setjmp (env_for_exit))
+- {
+- /* Actually enter the generic stage2 code. */
+- status = 0;
+- init_bios_info ();
+- }
+- else
+- {
+- /* If ERRNUM is non-zero, then set STATUS to non-zero. */
+- if (errnum)
+- status = 1;
+- }
+-
+- /* Replace our stack before we use any local variables. */
+- asm volatile ("movl %0, %%esp\n" : : "r" (realstack));
+- }
++ auto void doit (void)
++ {
++ /* Make sure our stack lives in the simulated memory area. */
++ asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
++ : "=&r" (realstack) : "r" (simstack));
++
++ /* Do a setjmp here for the stop command. */
++ if (! setjmp (env_for_exit))
++ {
++ /* Actually enter the generic stage2 code. */
++ status = 0;
++ init_bios_info ();
++ }
++ else
++ {
++ /* If ERRNUM is non-zero, then set STATUS to non-zero. */
++ if (errnum)
++ status = 1;
++ }
++
++ /* Replace our stack before we use any local variables. */
++ asm volatile ("movl %0, %%esp\n" : : "r" (realstack));
++ }
+
+ assert (grub_scratch_mem == 0);
+ scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
+diff --exclude=.deps -ur grub-0.96-orig/lib/device.c grub-0.96/lib/device.c
+--- grub-0.96-orig/lib/device.c 2005-03-12 18:16:47.000000000 -0500
++++ grub-0.96/lib/device.c 2005-03-12 18:21:48.000000000 -0500
+@@ -493,12 +493,15 @@
+ static int
+ read_device_map (FILE *fp, char **map, const char *map_file)
+ {
+- static void show_error (int no, const char *msg)
++ auto void show_error (int no, const char *msg);
++ auto void show_warning (int no, const char *msg, ...);
++
++ auto void show_error (int no, const char *msg)
+ {
+ fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg);
+ }
+
+- static void show_warning (int no, const char *msg, ...)
++ auto void show_warning (int no, const char *msg, ...)
+ {
+ va_list ap;
+
+diff --exclude=.deps -ur grub-0.96-orig/stage2/builtins.c grub-0.96/stage2/builtins.c
+--- grub-0.96-orig/stage2/builtins.c 2005-03-12 18:16:47.000000000 -0500
++++ grub-0.96/stage2/builtins.c 2005-03-12 18:17:34.000000000 -0500
+@@ -141,9 +141,11 @@
+ int num_entries = 0;
+ int last_length = 0;
+
++ auto void disk_read_blocklist_func (int sector, int offset, int length);
++
+ /* Collect contiguous blocks into one entry as many as possible,
+ and print the blocklist notation on the screen. */
+- static void disk_read_blocklist_func (int sector, int offset, int length)
++ auto void disk_read_blocklist_func (int sector, int offset, int length)
+ {
+ if (num_sectors > 0)
+ {
+@@ -589,8 +591,10 @@
+ "white"
+ };
+
++ auto int color_number (char *str);
++
+ /* Convert the color name STR into the magical number. */
+- static int color_number (char *str)
++ auto int color_number (char *str)
+ {
+ char *ptr;
+ int i;
+@@ -1906,8 +1910,11 @@
+ char *stage2_os_file = 0;
+ #endif /* GRUB_UTIL */
+
++ auto void disk_read_savesect_func (int sector, int offset, int length);
++ auto void disk_read_blocklist_func (int sector, int offset, int length);
++
+ /* Save the first sector of Stage2 in STAGE2_SECT. */
+- static void disk_read_savesect_func (int sector, int offset, int length)
++ auto void disk_read_savesect_func (int sector, int offset, int length)
+ {
+ if (debug)
+ printf ("[%d]", sector);
+@@ -1923,7 +1930,7 @@
+
+ /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
+ INSTALLSECT. */
+- static void disk_read_blocklist_func (int sector, int offset, int length)
++ auto void disk_read_blocklist_func (int sector, int offset, int length)
+ {
+ if (debug)
+ printf("[%d]", sector);
+@@ -3742,7 +3749,10 @@
+ int to_code, from_code;
+ int map_in_interrupt = 0;
+
+- static int find_key_code (char *key)
++ auto int find_key_code (char *key);
++ auto int find_ascii_code (char *key);
++
++ auto int find_key_code (char *key)
+ {
+ int i;
+
+@@ -3759,7 +3769,7 @@
+ return 0;
+ }
+
+- static int find_ascii_code (char *key)
++ auto int find_ascii_code (char *key)
+ {
+ int i;
+
+diff --exclude=.deps -ur grub-0.96-orig/stage2/char_io.c grub-0.96/stage2/char_io.c
+--- grub-0.96-orig/stage2/char_io.c 2005-03-12 18:16:47.000000000 -0500
++++ grub-0.96/stage2/char_io.c 2005-03-12 18:20:23.000000000 -0500
+@@ -1206,7 +1206,10 @@
+ memcheck (int addr, int len)
+ {
+ #ifdef GRUB_UTIL
+- static int start_addr (void)
++ auto int start_addr (void);
++ auto int end_addr (void);
++
++ auto int start_addr (void)
+ {
+ int ret;
+ # if defined(HAVE_START_SYMBOL)
+@@ -1217,7 +1220,7 @@
+ return ret;
+ }
+
+- static int end_addr (void)
++ auto int end_addr (void)
+ {
+ int ret;
+ # if defined(HAVE_END_SYMBOL)
+diff --exclude=.deps -ur grub-0.96-orig/stage2/smp-imps.h grub-0.96/stage2/smp-imps.h
+--- grub-0.96-orig/stage2/smp-imps.h 2005-03-12 18:16:47.000000000 -0500
++++ grub-0.96/stage2/smp-imps.h 2005-03-12 18:19:12.000000000 -0500
+@@ -183,36 +183,6 @@
+ */
+
+ /*
+- * "imps_any_new_apics" is non-zero if any of the APICS (local or I/O)
+- * are *not* an 82489DX. This is useful to determine if more than 15
+- * CPUs can be supported (true if zero).
+- */
+-extern int imps_any_new_apics;
+-
+-/*
+- * "imps_enabled" is non-zero if the probe sequence found IMPS
+- * information and was successful.
+- */
+-extern int imps_enabled;
+-
+-/*
+- * This contains the local APIC hardware address.
+- */
+-extern unsigned imps_lapic_addr;
+-
+-/*
+- * This represents the number of CPUs found.
+- */
+-extern int imps_num_cpus;
+-
+-/*
+- * These map from virtual cpu numbers to APIC id's and back.
+- */
+-extern unsigned char imps_cpu_apic_map[IMPS_MAX_CPUS];
+-extern unsigned char imps_apic_cpu_map[IMPS_MAX_CPUS];
+-
+-
+-/*
+ * This is the primary function for probing for Intel MPS 1.1/1.4
+ * compatible hardware and BIOS information. While probing the CPUs
+ * information returned from the BIOS, this also starts up each CPU
diff --git a/sys-boot/grub/grub-0.96.ebuild b/sys-boot/grub/grub-0.96.ebuild
index 75f4cae6faee..ad0bbdccaef4 100644
--- a/sys-boot/grub/grub-0.96.ebuild
+++ b/sys-boot/grub/grub-0.96.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-0.96.ebuild,v 1.4 2005/03/15 23:39:52 eradicator Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-0.96.ebuild,v 1.5 2005/04/05 21:41:28 halcy0n Exp $
inherit mount-boot eutils flag-o-matic gcc gnuconfig toolchain-funcs
@@ -47,6 +47,9 @@ src_unpack() {
# -fwritable-strings is deprecated; testing to see if we need it any more
epatch ${FILESDIR}/${PN}-0.95.20040823-warnings.patch
+
+ # patch for GCC4; bug #85016
+ epatch ${FILESDIR}/${P}-gcc4.patch
}
src_compile() {