From ee7f2e556f9bace25d265bcd949e0e804de015b7 Mon Sep 17 00:00:00 2001 From: Mark Loeser Date: Tue, 5 Apr 2005 21:41:28 +0000 Subject: backported gcc4 fix for bug #85016 Package-Manager: portage-2.0.51.19 --- sys-boot/grub/ChangeLog | 6 +- sys-boot/grub/Manifest | 19 +-- sys-boot/grub/files/grub-0.96-gcc4.patch | 225 +++++++++++++++++++++++++++++++ sys-boot/grub/grub-0.96.ebuild | 5 +- 4 files changed, 244 insertions(+), 11 deletions(-) create mode 100644 sys-boot/grub/files/grub-0.96-gcc4.patch (limited to 'sys-boot') 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 +files/grub-0.96-gcc4.patch, + grub-0.96.ebuild: + Backported fixes for GCC4. Fixes bug #85016 15 Mar 2005; Jeremy Huddleston 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() { -- cgit v1.2.3-65-gdbad