summaryrefslogtreecommitdiff
path: root/cross/h8300-hms-gcc
diff options
context:
space:
mode:
authordholland <dholland>2010-02-14 06:28:07 +0000
committerdholland <dholland>2010-02-14 06:28:07 +0000
commit860215771f47a962df31db3f83adf1e131c2650a (patch)
tree3e9b140c3fb5b35a6a64f3f587834a4d29cbccab /cross/h8300-hms-gcc
parent05f3bd30346edfb131cda53219aca45d97eb81dd (diff)
downloadpkgsrc-860215771f47a962df31db3f83adf1e131c2650a.tar.gz
Patch out the illegal C found in old gcc versions. Fixes broken build.
Diffstat (limited to 'cross/h8300-hms-gcc')
-rw-r--r--cross/h8300-hms-gcc/Makefile5
-rw-r--r--cross/h8300-hms-gcc/distinfo4
-rw-r--r--cross/h8300-hms-gcc/patches/patch-aa13
-rw-r--r--cross/h8300-hms-gcc/patches/patch-ab104
4 files changed, 123 insertions, 3 deletions
diff --git a/cross/h8300-hms-gcc/Makefile b/cross/h8300-hms-gcc/Makefile
index 2ca44142751..af294bd39e0 100644
--- a/cross/h8300-hms-gcc/Makefile
+++ b/cross/h8300-hms-gcc/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.23 2009/02/17 13:02:20 joerg Exp $
+# $NetBSD: Makefile,v 1.24 2010/02/14 06:28:07 dholland Exp $
DISTNAME= gcc-core-3.1
PKGNAME= cross-h8300-hms-gcc-3.1
-PKGREVISION= 3
+PKGREVISION= 4
CATEGORIES= cross
MASTER_SITES= ftp://ftp.gnu.org/gnu/gcc/gcc-3.1/ \
ftp://sources.redhat.com/pub/newlib/
@@ -32,6 +32,7 @@ CONFIGURE_ARGS+= --enable-languages=c,c++
CONFIGURE_ARGS+= --with-newlib
CONFIGURE_SCRIPT= ${SRCDIR}/configure
SRCDIR= ${WRKDIR}/gcc-3.1
+MAKE_ENV+= SHELL=${CONFIG_SHELL}
BUILD_TARGET= CFLAGS="-O2 -fomit-frame-pointer" all
INFO_FILES= # PLIST
diff --git a/cross/h8300-hms-gcc/distinfo b/cross/h8300-hms-gcc/distinfo
index c4e91a6cf70..70ecd41d726 100644
--- a/cross/h8300-hms-gcc/distinfo
+++ b/cross/h8300-hms-gcc/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.3 2006/04/07 15:09:06 hubertf Exp $
+$NetBSD: distinfo,v 1.4 2010/02/14 06:28:07 dholland Exp $
SHA1 (gcc-core-3.1.tar.gz) = e93048803611b5c1e0dd745d81b43d6e34bca026
RMD160 (gcc-core-3.1.tar.gz) = d6fe75142280778c952af0717acfa4a2cc500623
@@ -12,3 +12,5 @@ Size (newlib-1.10.0.tar.gz) = 3647395 bytes
SHA1 (h8300-hms-gcc-3.1-1.patch) = 6a5ad1f579ca71cfee114a02df26a58103cf4f04
RMD160 (h8300-hms-gcc-3.1-1.patch) = ab3114544c8a6bcd531e4b5b7a4fed8aaf8e9150
Size (h8300-hms-gcc-3.1-1.patch) = 61226 bytes
+SHA1 (patch-aa) = 0c853a604a5538a84c35fcd8abcf03fb05c5d4a1
+SHA1 (patch-ab) = f9e3c972ed2a31591d8fe3d411cffc0bcf53c28e
diff --git a/cross/h8300-hms-gcc/patches/patch-aa b/cross/h8300-hms-gcc/patches/patch-aa
new file mode 100644
index 00000000000..2374f5f8ff3
--- /dev/null
+++ b/cross/h8300-hms-gcc/patches/patch-aa
@@ -0,0 +1,13 @@
+$NetBSD: patch-aa,v 1.1 2010/02/14 06:28:07 dholland Exp $
+
+--- ../gcc-3.1/include/obstack.h.orig 2001-03-14 19:44:38.000000000 +0000
++++ ../gcc-3.1/include/obstack.h
+@@ -423,7 +423,7 @@ __extension__ \
+ ({ struct obstack *__o = (OBSTACK); \
+ if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
+ _obstack_newchunk (__o, sizeof (void *)); \
+- *((void **)__o->next_free)++ = ((void *)datum); \
++ ((void **)(__o->next_free+=sizeof(void *)))[-1] = ((void *)datum); \
+ (void) 0; })
+
+ # define obstack_int_grow(OBSTACK,datum) \
diff --git a/cross/h8300-hms-gcc/patches/patch-ab b/cross/h8300-hms-gcc/patches/patch-ab
new file mode 100644
index 00000000000..a621b3c5918
--- /dev/null
+++ b/cross/h8300-hms-gcc/patches/patch-ab
@@ -0,0 +1,104 @@
+$NetBSD: patch-ab,v 1.1 2010/02/14 06:28:07 dholland Exp $
+
+--- ../gcc-3.1/gcc/cp/decl.c~ 2002-05-03 18:55:23.000000000 +0000
++++ ../gcc-3.1/gcc/cp/decl.c
+@@ -458,6 +458,11 @@ struct binding_level
+ ? cp_function_chain->bindings \
+ : scope_chain->bindings)
+
++#define current_binding_level__LVALUE \
++ (*(cfun && cp_function_chain->bindings \
++ ? &cp_function_chain->bindings \
++ : &scope_chain->bindings))
++
+ /* The binding level of the current class, if any. */
+
+ #define class_binding_level scope_chain->class_bindings
+@@ -507,7 +512,7 @@ push_binding_level (newlevel, tag_transp
+ are active. */
+ memset ((char*) newlevel, 0, sizeof (struct binding_level));
+ newlevel->level_chain = current_binding_level;
+- current_binding_level = newlevel;
++ current_binding_level__LVALUE = newlevel;
+ newlevel->tag_transparent = tag_transparent;
+ newlevel->more_cleanups_ok = 1;
+
+@@ -563,7 +568,7 @@ pop_binding_level ()
+ #endif /* defined(DEBUG_CP_BINDING_LEVELS) */
+ {
+ register struct binding_level *level = current_binding_level;
+- current_binding_level = current_binding_level->level_chain;
++ current_binding_level__LVALUE = current_binding_level->level_chain;
+ level->level_chain = free_binding_level;
+ #if 0 /* defined(DEBUG_CP_BINDING_LEVELS) */
+ if (level->binding_depth != binding_depth)
+@@ -578,7 +583,7 @@ static void
+ suspend_binding_level ()
+ {
+ if (class_binding_level)
+- current_binding_level = class_binding_level;
++ current_binding_level__LVALUE = class_binding_level;
+
+ if (global_binding_level)
+ {
+@@ -600,7 +605,7 @@ suspend_binding_level ()
+ }
+ is_class_level = 0;
+ #endif /* defined(DEBUG_CP_BINDING_LEVELS) */
+- current_binding_level = current_binding_level->level_chain;
++ current_binding_level__LVALUE = current_binding_level->level_chain;
+ find_class_binding_level ();
+ }
+
+@@ -613,7 +618,7 @@ resume_binding_level (b)
+ my_friendly_assert(!class_binding_level, 386);
+ /* Also, resuming a non-directly nested namespace is a no-no. */
+ my_friendly_assert(b->level_chain == current_binding_level, 386);
+- current_binding_level = b;
++ current_binding_level__LVALUE = b;
+ #if defined(DEBUG_CP_BINDING_LEVELS)
+ b->binding_depth = binding_depth;
+ indent ();
+@@ -4292,9 +4297,9 @@ pushdecl_with_scope (x, level)
+ else
+ {
+ b = current_binding_level;
+- current_binding_level = level;
++ current_binding_level__LVALUE = level;
+ x = pushdecl (x);
+- current_binding_level = b;
++ current_binding_level__LVALUE = b;
+ }
+ current_function_decl = function_decl;
+ return x;
+@@ -6515,7 +6520,7 @@ cxx_init_decl_processing ()
+ current_lang_name = lang_name_c;
+
+ current_function_decl = NULL_TREE;
+- current_binding_level = NULL_BINDING_LEVEL;
++ current_binding_level__LVALUE = NULL_BINDING_LEVEL;
+ free_binding_level = NULL_BINDING_LEVEL;
+
+ build_common_tree_nodes (flag_signed_char);
+@@ -10080,10 +10085,10 @@ grokdeclarator (declarator, declspecs, d
+ if (decl_context == NORMAL && !toplevel_bindings_p ())
+ {
+ struct binding_level *b = current_binding_level;
+- current_binding_level = b->level_chain;
++ current_binding_level__LVALUE = b->level_chain;
+ if (current_binding_level != 0 && toplevel_bindings_p ())
+ decl_context = PARM;
+- current_binding_level = b;
++ current_binding_level__LVALUE = b;
+ }
+
+ if (name == NULL)
+@@ -13720,7 +13725,7 @@ start_function (declspecs, declarator, a
+ FIXME factor out the non-RTL stuff. */
+ bl = current_binding_level;
+ init_function_start (decl1, input_filename, lineno);
+- current_binding_level = bl;
++ current_binding_level__LVALUE = bl;
+
+ /* Even though we're inside a function body, we still don't want to
+ call expand_expr to calculate the size of a variable-sized array.