From 5b7643b805bccf6362b4a442e6bae287852f9959 Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gentoo.org>
Date: Sat, 25 Jun 2011 12:23:04 -0400
Subject: [PATCH] mips.py: create generic mips64 classes

... and inherit from them to simplify other classes
---
 ChangeLog    |  4 ++++
 arch/mips.py | 67 ++++++++++++++++++++++++++++------------------------
 2 files changed, 40 insertions(+), 31 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9578ccaa..a9536635 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,10 @@
 # Distributed under the GPL v2
 # $Id$
 
+  25 Jun 2011; Matt Turner <mattst88@gentoo.org>
+  modules/catalyst/arch/mips.py: create generic mips64 classes
+  and inherit from them to simplify other classes
+
   25 Jun 2011; Matt Turner <mattst88@gentoo.org>
   modules/catalyst/arch/mips.py: fix CFLAGS in loongson class
 
diff --git a/arch/mips.py b/arch/mips.py
index e8107be2..794ee918 100644
--- a/arch/mips.py
+++ b/arch/mips.py
@@ -16,6 +16,20 @@ class generic_mipsel(builder.generic):
 		self.settings["CHROOT"]="chroot"
 		self.settings["CHOST"]="mipsel-unknown-linux-gnu"
 
+class generic_mips64(builder.generic):
+	"Abstract base class for all mips64 builders [Big-endian]"
+	def __init__(self,myspec):
+		builder.generic.__init__(self,myspec)
+		self.settings["CHROOT"]="chroot"
+		self.settings["CHOST"]="mips64-unknown-linux-gnu"
+
+class generic_mips64el(builder.generic):
+	"Abstract base class for all mips64el builders [Little-endian]"
+	def __init__(self,myspec):
+		builder.generic.__init__(self,myspec)
+		self.settings["CHROOT"]="chroot"
+		self.settings["CHOST"]="mips64el-unknown-linux-gnu"
+
 class arch_mips1(generic_mips):
 	"Builder class for MIPS I [Big-endian]"
 	def __init__(self,myspec):
@@ -28,42 +42,38 @@ class arch_mips3(generic_mips):
 		generic_mips.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips3 -mabi=32 -pipe"
 
-class arch_mips3_n32(generic_mips):
+class arch_mips3_n32(generic_mips64):
 	"Builder class for MIPS III [Big-endian N32]"
 	def __init__(self,myspec):
-		generic_mips.__init__(self,myspec)
+		generic_mips64.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips3 -mabi=n32 -pipe"
-		self.settings["CHOST"]="mips64-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["n32"]
 
-class arch_mips3_n64(generic_mips):
+class arch_mips3_n64(generic_mips64):
 	"Builder class for MIPS III [Big-endian N64]"
 	def __init__(self,myspec):
-		generic_mips.__init__(self,myspec)
+		generic_mips64.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips3 -mabi=64 -pipe"
-		self.settings["CHOST"]="mips64-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["n64"]
 
-class arch_mips4(generic_mips):
+class arch_mips4(generic_mips64):
 	"Builder class for MIPS IV [Big-endian]"
 	def __init__(self,myspec):
-		generic_mips.__init__(self,myspec)
+		generic_mips64.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips4 -mabi=32 -pipe"
 
-class arch_mips4_n32(generic_mips):
+class arch_mips4_n32(generic_mips64):
 	"Builder class for MIPS IV [Big-endian N32]"
 	def __init__(self,myspec):
-		generic_mips.__init__(self,myspec)
+		generic_mips64.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips4 -mabi=n32 -pipe"
-		self.settings["CHOST"]="mips64-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["n32"]
 
-class arch_mips4_n64(generic_mips):
+class arch_mips4_n64(generic_mips64):
 	"Builder class for MIPS IV [Big-endian N64]"
 	def __init__(self,myspec):
-		generic_mips.__init__(self,myspec)
+		generic_mips64.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips4 -mabi=64 -pipe"
-		self.settings["CHOST"]="mips64-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["n64"]
 
 class arch_mipsel1(generic_mipsel):
@@ -78,12 +88,11 @@ class arch_mipsel3(generic_mipsel):
 		generic_mipsel.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips3 -mabi=32 -pipe"
 
-class arch_mipsel3_n32(generic_mipsel):
+class arch_mipsel3_n32(generic_mips64el):
 	"Builder class for all MIPS III [Little-endian N32]"
 	def __init__(self,myspec):
-		generic_mipsel.__init__(self,myspec)
+		generic_mips64el.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips3 -mabi=n32 -pipe"
-		self.settings["CHOST"]="mips64el-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["n32"]
 
 class arch_loongson2e(generic_mipsel):
@@ -92,12 +101,11 @@ class arch_loongson2e(generic_mipsel):
 		generic_mipsel.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=32 -pipe -mplt"
 
-class arch_loongson2e_n32(generic_mipsel):
+class arch_loongson2e_n32(generic_mips64el):
 	"Builder class for all Loongson 2E [Little-endian N32]"
 	def __init__(self,myspec):
-		generic_mipsel.__init__(self,myspec)
+		generic_mips64el.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=n32 -pipe -mplt"
-		self.settings["CHOST"]="mips64el-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["n32"]
 
 class arch_loongson2f(generic_mipsel):
@@ -106,26 +114,24 @@ class arch_loongson2f(generic_mipsel):
 		generic_mipsel.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O3 -march=loongson2f -mabi=32 -pipe -mplt -Wa,-mfix-loongson2f-nop"
 
-class arch_loongson2f_n32(generic_mipsel):
+class arch_loongson2f_n32(generic_mips64el):
 	"Builder class for all Loongson 2F [Little-endian N32]"
 	def __init__(self,myspec):
-		generic_mipsel.__init__(self,myspec)
+		generic_mips64el.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O3 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop"
-		self.settings["CHOST"]="mips64el-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["n32"]
 
-class arch_mipsel4(generic_mipsel):
+class arch_mipsel4(generic_mips64el):
 	"Builder class for all MIPS IV [Little-endian]"
 	def __init__(self,myspec):
-		generic_mipsel.__init__(self,myspec)
+		generic_mips64el.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips4 -mabi=32 -pipe"
 
-class arch_mipsel4_n32(generic_mipsel):
+class arch_mipsel4_n32(generic_mips64el):
 	"Builder class for all MIPS IV [Little-endian N32]"
 	def __init__(self,myspec):
-		generic_mipsel.__init__(self,myspec)
+		generic_mips64el.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -mips4 -mabi=n32 -pipe"
-		self.settings["CHOST"]="mips64el-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["n32"]
 
 class arch_cobalt(generic_mipsel):
@@ -133,13 +139,12 @@ class arch_cobalt(generic_mipsel):
 	def __init__(self,myspec):
 		generic_mipsel.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=32 -pipe"
-		self.settings["CHOST"]="mipsel-unknown-linux-gnu"
 		self.settings["HOSTUSE"]=["cobalt"]
 
-class arch_cobalt_n32(generic_mipsel):
+class arch_cobalt_n32(generic_mips64el):
 	"Builder class for all cobalt [Little-endian N32]"
 	def __init__(self,myspec):
-		arch_mipsel4_n32.__init__(self,myspec)
+		generic_mips64el.__init__(self,myspec)
 		self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=n32 -pipe"
 		self.settings["HOSTUSE"]=["cobalt","n32"]
 
-- 
2.26.2