scummvm random work
[patches.git] / catalyst-cbuild.patch
CommitLineData
5e993f12 1Index: modules/generic_stage_target.py
2===================================================================
3--- modules/generic_stage_target.py (revision 1203)
4+++ modules/generic_stage_target.py (working copy)
5@@ -18,40 +18,21 @@
6
7 self.valid_values.extend(["version_stamp","target","subarch",\
8 "rel_type","profile","snapshot","source_subpath","portage_confdir",\
9- "cflags","cxxflags","ldflags","chost","hostuse","portage_overlay",\
10+ "cflags","cxxflags","ldflags","cbuild","chost","hostuse","portage_overlay",\
11 "distcc_hosts","makeopts","pkgcache_path","kerncache_path"])
12
13 self.set_valid_build_kernel_vars(addlargs)
14 generic_target.__init__(self,myspec,addlargs)
15- # map the mainarch we are running under to the mainarches we support for
16- # building stages and LiveCDs. (for example, on amd64, we can build
17- # stages for x86 or amd64.
18- targetmap={
19- "x86" : ["x86"],
20- "amd64" : ["x86","amd64"],
21- "sparc64" : ["sparc","sparc64"],
22- "ia64" : ["ia64"],
23- "alpha" : ["alpha"],
24- "sparc" : ["sparc"],
25- "sh" : ["sh"],
26- "s390" : ["s390"],
27- "ppc" : ["ppc"],
28- "ppc64" : ["ppc","ppc64"],
29- "hppa" : ["hppa"],
30- "mips" : ["mips"],
31- "arm" : ["arm"]
32- }
33-
34- machinemap={
35+ machinemap={
36 "i386" : "x86",
37 "i486" : "x86",
38 "i586" : "x86",
39 "i686" : "x86",
40 "x86_64" : "amd64",
41+ "sparc" : "sparc",
42 "sparc64" : "sparc64",
43 "ia64" : "ia64",
44 "alpha" : "alpha",
45- "sparc" : "sparc",
46 "sh2" : "sh",
47 "sh3" : "sh",
48 "sh4" : "sh",
49@@ -61,8 +42,12 @@
50 "s390" : "s390",
51 "ppc" : "ppc",
52 "ppc64" : "ppc64",
53- "parisc" : "hppa",
54- "parisc64" : "hppa",
55+ "powerpc" : "powerpc",
56+ "powerpc64" : "powerpc64",
57+ "parisc" : "parisc",
58+ "parisc64" : "parisc",
59+ "hppa" : "hppa",
60+ "hppa64" : "hppa",
61 "mips" : "mips",
62 "mips64" : "mips",
63 "arm" : "arm",
64@@ -71,31 +56,38 @@
65 "armv5b" : "arm"
66 }
67
68- mymachine=os.uname()[4]
69- if not machinemap.has_key(mymachine):
70- raise CatalystError, "Unknown machine type "+mymachine
71-
72- self.settings["hostarch"]=machinemap[mymachine]
73- self.archmap={}
74- self.subarchmap={}
75+ if self.settings.has_key("chost"):
76+ hostmachine = self.settings["chost"].split("-")[0]
77+ else:
78+ hostmachine = os.uname()[4]
79+ if not machinemap.has_key(hostmachine):
80+ raise CatalystError, "Unknown host machine type "+hostmachine
81+ self.settings["hostarch"] = machinemap[hostmachine]
82+ if self.settings.has_key("cbuild"):
83+ buildmachine = self.settings["cbuild"].split("-")[0]
84+ else:
85+ buildmachine = os.uname()[4]
86+ if not machinemap.has_key(buildmachine):
87+ raise CatalystError, "Unknown build machine type "+buildmachine
88+ self.settings["buildarch"] = machinemap[buildmachine]
89+ self.settings["crosscompile"] = (self.settings["hostarch"] != self.settings["buildarch"])
90+ self.archmap = {}
91+ self.subarchmap = {}
92
93- for x in targetmap[self.settings["hostarch"]]:
94- try:
95- fh=open(self.settings["sharedir"]+"/arch/"+x+".py")
96- # This next line loads the plugin as a module and assigns it to
97- # archmap[x]
98- self.archmap[x]=imp.load_module(x,fh,"arch/"+x+".py",(".py","r",imp.PY_SOURCE))
99- # This next line registers all the subarches supported in the
100- # plugin
101- self.archmap[x].register(self.subarchmap)
102- fh.close()
103-
104- except IOError:
105- msg("Can't find "+x+".py plugin in "+self.settings["sharedir"]+"/arch/")
106+ x = self.settings["hostarch"]
107+ try:
108+ fh = open(self.settings["sharedir"]+"/arch/"+x+".py")
109+ # this next line loads the plugin as a module and assigns it to archmap[x]
110+ self.archmap[x] = imp.load_module(x,fh,"arch/"+x+".py",(".py","r",imp.PY_SOURCE))
111+ # this next line registers all the subarches supported in the plugin
112+ self.archmap[x].register(self.subarchmap)
113+ fh.close()
114+ except IOError:
115+ msg("Can't find "+x+".py plugin in "+self.settings["sharedir"]+"/arch/")
116 # Call arch constructor, pass our settings
117 try:
118 self.arch=self.subarchmap[self.settings["subarch"]](self.settings)
119- except:
120+ except:
121 print "Invalid subarch: "+self.settings["subarch"]
122 print "Choose one of the following:",
123 for x in self.subarchmap:
124@@ -104,14 +96,16 @@
125 sys.exit(2)
126
127 print "Using target:",self.settings["target"]
128- # self.settings["mainarch"] should now be set by our arch constructor,
129- # so we print a nice informational message:
130- if self.settings["mainarch"]==self.settings["hostarch"]:
131+ # print a nice informational message:
132+ if self.settings["buildarch"]==self.settings["hostarch"]:
133 print "Building natively for",self.settings["hostarch"]
134-
135+ elif self.settings["crosscompile"]:
136+ print "Cross-compiling on",self.settings["buildarch"],"for different machine type",\
137+ self.settings["hostarch"]
138 else:
139- print "Building on",self.settings["hostarch"],"for alternate machine type",\
140- self.settings["mainarch"]
141+ print "Building on",self.settings["buildarch"],"for alternate personality type",\
142+ self.settings["hostarch"]
143+
144 # This should be first to be set as other set_ options depend on this
145 self.set_spec_prefix()
146
147@@ -205,6 +199,10 @@
148 # for the chroot:
149 self.env["CCACHE_DIR"]="/var/tmp/ccache"
150
151+ def override_cbuild(self):
152+ if self.makeconf.has_key("CBUILD"):
153+ self.settings["CBUILD"]=self.makeconf["CBUILD"]
154+
155 def override_chost(self):
156 if self.makeconf.has_key("CHOST"):
157 self.settings["CHOST"]=self.makeconf["CHOST"]
158@@ -832,7 +830,8 @@
159
160 def chroot_setup(self):
161 self.makeconf=read_makeconf(self.settings["chroot_path"]+"/etc/make.conf")
162- self.override_chost()
163+ self.override_cbuild()
164+ self.override_chost()
165 self.override_cflags()
166 self.override_cxxflags()
167 self.override_ldflags()
168@@ -869,7 +868,8 @@
169 cmd("mv "+self.settings["chroot_path"]+"/etc/hosts "+self.settings["chroot_path"]+\
170 "/etc/hosts.bck", "Could not backup /etc/hosts",env=self.env)
171 cmd("cp /etc/hosts "+self.settings["chroot_path"]+"/etc/hosts", "Could not copy /etc/hosts",env=self.env)
172- #self.override_chost()
173+ #self.override_cbuild()
174+ #self.override_chost()
175 #self.override_cflags()
176 #self.override_cxxflags()
177 #self.override_ldflags()
178@@ -888,6 +888,8 @@
179 if self.settings.has_key("LDFLAGS"):
180 myf.write('LDFLAGS="'+self.settings["LDFLAGS"]+'"\n')
181 myf.write("# This should not be changed unless you know exactly what you are doing. You\n# should probably be using a different stage, instead.\n")
182+ if self.settings.has_key("CBUILD"):
183+ myf.write('CBUILD="'+self.settings["CBUILD"]+'"\n')
184 myf.write('CHOST="'+self.settings["CHOST"]+'"\n')
185
186 # Figure out what our USE vars are for building
187@@ -1078,7 +1080,7 @@
188 self.purge()
189
190 for x in self.settings["action_sequence"]:
191- print "Running action sequence: "+x
192+ print "--- Running action sequence: "+x
193 sys.stdout.flush()
194 try:
195 apply(getattr(self,x))
196Index: targets/netboot/netboot-combine.sh
197===================================================================
198--- targets/netboot/netboot-combine.sh (revision 1203)
199+++ targets/netboot/netboot-combine.sh (working copy)
200@@ -15,7 +15,7 @@
201
202 # First install the boot package that we need
203 booter=""
204-case ${clst_mainarch} in
205+case ${clst_hostarch} in
206 alpha)
207 booter=""
208 ;;
209@@ -51,7 +51,7 @@
210 create_normal_loop ${clst_chroot_path}/tmp/staging/initrd-${kname} ${clst_target_path} initrd-${kname}.igz
211 rm -r ${clst_chroot_path}/tmp/staging/initrd-${kname}
212
213- case ${clst_mainarch} in
214+ case ${clst_hostarch} in
215 alpha)
216 # Until aboot is patched this is broken currently.
217 # please use catalyst 1.1.5 or older
218@@ -93,10 +93,10 @@
219 ;;
220 sparc*)
221 #TEST TEST TEST TEST
222- #elftoaout -o /netboot-${kname}.${clst_mainarch} /usr/src/linux/vmlinux
223- #elftoaout -o /netboot-${kname}.${clst_mainarch} /${kname}
224- #piggy=${clst_mainarch/sparc/piggyback}
225- #${piggy} /netboot-${kname}.${clst_mainarch} /usr/src/linux/System.map /initrd-${kname}.igz
226+ #elftoaout -o /netboot-${kname}.${clst_hostarch} /usr/src/linux/vmlinux
227+ #elftoaout -o /netboot-${kname}.${clst_hostarch} /${kname}
228+ #piggy=${clst_hostarch/sparc/piggyback}
229+ #${piggy} /netboot-${kname}.${clst_hostarch} /usr/src/linux/System.map /initrd-${kname}.igz
230 ;;
231 x86)
232 mknbi-linux \
233Index: targets/support/functions.sh
234===================================================================
235--- targets/support/functions.sh (revision 1203)
236+++ targets/support/functions.sh (working copy)
237@@ -211,3 +211,7 @@
238 ;;
239 esac
240 }
241+
242+run_crossdev() {
243+ crossdev ${clst_CHOST}
244+}
245Index: targets/support/netboot2-final.sh
246===================================================================
247--- targets/support/netboot2-final.sh (revision 1203)
248+++ targets/support/netboot2-final.sh (working copy)
249@@ -21,7 +21,7 @@
250
251 # Any post-processing necessary for each architecture can be done here. This
252 # may include things like sparc's elftoaout, x86's PXE boot, etc.
253-case ${clst_mainarch} in
254+case ${clst_hostarch} in
255 alpha)
256 sleep 0
257 ;;
258Index: targets/support/bootloader-setup.sh
259===================================================================
260--- targets/support/bootloader-setup.sh (revision 1203)
261+++ targets/support/bootloader-setup.sh (working copy)
262@@ -13,7 +13,7 @@
263
264 default_append_line="root=/dev/ram0 init=/linuxrc ${cmdline_opts} ${custom_kopts} cdroot"
265
266-case ${clst_mainarch} in
267+case ${clst_hostarch} in
268 alpha)
269 # NO SOFTLEVEL SUPPORT YET
270 acfg=$1/etc/aboot.conf
271Index: targets/support/create-iso.sh
272===================================================================
273--- targets/support/create-iso.sh (revision 1203)
274+++ targets/support/create-iso.sh (working copy)
275@@ -7,7 +7,7 @@
276 ## START RUNSCRIPT
277
278 # Check for our CD ISO creation tools
279-case ${clst_mainarch} in
280+case ${clst_hostarch} in
281 mips)
282 cdmaker="sgibootcd"
283 cdmakerpkg="sys-boot/sgibootcd"
284@@ -28,7 +28,7 @@
285 then
286 case ${clst_livecd_type} in
287 gentoo-*)
288- case ${clst_mainarch} in
289+ case ${clst_hostarch} in
290 alpha)
291 clst_iso_volume_id="Gentoo Linux - Alpha"
292 ;;
293@@ -76,7 +76,7 @@
294 fi
295
296 # Here we actually create the ISO images for each architecture
297-case ${clst_mainarch} in
298+case ${clst_hostarch} in
299 alpha)
300 case ${clst_fstype} in
301 zisofs)
302Index: targets/support/pre-kmerge.sh
303===================================================================
304--- targets/support/pre-kmerge.sh (revision 1203)
305+++ targets/support/pre-kmerge.sh (working copy)
306@@ -13,7 +13,7 @@
307 # Setup case structure for livecd_type
308 case ${clst_livecd_type} in
309 gentoo-release-minimal | gentoo-release-universal)
310- case ${clst_mainarch} in
311+ case ${clst_hostarch} in
312 amd64|x86)
313 sed -i 's/initramfs_data.cpio.gz /initramfs_data.cpio.gz -r 1024x768 /' /usr/share/genkernel/genkernel
314 ;;
315@@ -32,14 +32,14 @@
316 sed -e "s/@@MYDATE@@/${clst_netboot2_builddate}/g" \
317 -e "s/@@RELVER@@/${clst_version_stamp}/g" \
318 ${clst_root_path}usr/share/genkernel/netboot/linuxrc.x \
319- > ${clst_root_path}usr/share/genkernel/${clst_mainarch}/linuxrc
320+ > ${clst_root_path}usr/share/genkernel/${clst_hostarch}/linuxrc
321
322 echo ">>> Copying support files to ${clst_root_path} ..."
323 cp -pPRf ${clst_root_path}usr/share/genkernel/netboot/misc/* \
324 ${clst_merge_path}
325
326 echo ">>> Copying busybox config ..."
327- cp -f ${clst_root_path}usr/share/genkernel/${clst_mainarch}/nb-busybox.cf \
328- ${clst_root_path}usr/share/genkernel/${clst_mainarch}/busy-config
329+ cp -f ${clst_root_path}usr/share/genkernel/${clst_hostarch}/nb-busybox.cf \
330+ ${clst_root_path}usr/share/genkernel/${clst_hostarch}/busy-config
331 ;;
332 esac
333Index: arch/hppa.py
334===================================================================
335--- arch/hppa.py (revision 1203)
336+++ arch/hppa.py (working copy)
337@@ -7,7 +7,6 @@
338 "Abstract base class for all hppa builders"
339 def __init__(self,myspec):
340 builder.generic.__init__(self,myspec)
341- self.settings["mainarch"]="hppa"
342 self.settings["CHROOT"]="chroot"
343 self.settings["CFLAGS"]="-O2 -pipe"
344 self.settings["CXXFLAGS"]="-O2 -pipe"
345Index: arch/mips.py
346===================================================================
347--- arch/mips.py (revision 1203)
348+++ arch/mips.py (working copy)
349@@ -7,7 +7,6 @@
350 "Abstract base class for all mips builders [Big-endian]"
351 def __init__(self,myspec):
352 builder.generic.__init__(self,myspec)
353- self.settings["mainarch"]="mips"
354 self.settings["CHROOT"]="chroot"
355 self.settings["CHOST"]="mips-unknown-linux-gnu"
356
357@@ -15,7 +14,6 @@
358 "Abstract base class for all mipsel builders [Little-endian]"
359 def __init__(self,myspec):
360 builder.generic.__init__(self,myspec)
361- self.settings["mainarch"]="mips"
362 self.settings["CHROOT"]="chroot"
363 self.settings["CHOST"]="mipsel-unknown-linux-gnu"
364
365Index: arch/sparc.py
366===================================================================
367--- arch/sparc.py (revision 1203)
368+++ arch/sparc.py (working copy)
369@@ -7,11 +7,11 @@
370 "abstract base class for all sparc builders"
371 def __init__(self,myspec):
372 builder.generic.__init__(self,myspec)
373- self.settings["mainarch"]="sparc"
374- if self.settings["hostarch"]=="sparc64":
375+ if self.settings["buildarch"]=="sparc64":
376 if not os.path.exists("/bin/linux32"):
377 raise CatalystError,"required /bin/linux32 executable not found (\"emerge setarch\" to fix.)"
378 self.settings["CHROOT"]="linux32 chroot"
379+ self.settings["crosscompile"] = False;
380 else:
381 self.settings["CHROOT"]="chroot"
382
383Index: arch/sh.py
384===================================================================
385--- arch/sh.py (revision 1203)
386+++ arch/sh.py (working copy)
387@@ -7,14 +7,12 @@
388 "Abstract base class for all sh builders [Little-endian]"
389 def __init__(self,myspec):
390 builder.generic.__init__(self,myspec)
391- self.settings["mainarch"]="sh"
392 self.settings["CHROOT"]="chroot"
393
394 class generic_sheb(builder.generic):
395 "Abstract base class for all sheb builders [Big-endian]"
396 def __init__(self,myspec):
397 builder.generic.__init__(self,myspec)
398- self.settings["mainarch"]="sh"
399 self.settings["CHROOT"]="chroot"
400
401 class arch_sh(generic_sh):
402Index: arch/amd64.py
403===================================================================
404--- arch/amd64.py (revision 1203)
405+++ arch/amd64.py (working copy)
406@@ -6,7 +6,6 @@
407 "abstract base class for all amd64 builders"
408 def __init__(self,myspec):
409 builder.generic.__init__(self,myspec)
410- self.settings["mainarch"]="amd64"
411 self.settings["CHROOT"]="chroot"
412
413 class arch_amd64(generic_amd64):
414Index: arch/ppc64.py
415===================================================================
416--- arch/ppc64.py (revision 1203)
417+++ arch/ppc64.py (working copy)
418@@ -6,7 +6,6 @@
419 "abstract base class for all ppc64 builders"
420 def __init__(self,myspec):
421 builder.generic.__init__(self,myspec)
422- self.settings["mainarch"]="ppc64"
423 self.settings["CHROOT"]="chroot"
424
425 class arch_ppc64(generic_ppc64):
426Index: arch/s390.py
427===================================================================
428--- arch/s390.py (revision 1203)
429+++ arch/s390.py (working copy)
430@@ -7,7 +7,6 @@
431 "abstract base class for all s390 builders"
432 def __init__(self,myspec):
433 builder.generic.__init__(self,myspec)
434- self.settings["mainarch"]="s390"
435 self.settings["CHROOT"]="chroot"
436
437 class arch_s390(generic_s390):
438Index: arch/arm.py
439===================================================================
440--- arch/arm.py (revision 1203)
441+++ arch/arm.py (working copy)
442@@ -7,7 +7,6 @@
443 "Abstract base class for all arm (little endian) builders"
444 def __init__(self,myspec):
445 builder.generic.__init__(self,myspec)
446- self.settings["mainarch"]="arm"
447 self.settings["CHROOT"]="chroot"
448 self.settings["CFLAGS"]="-O2 -pipe"
449 self.settings["CXXFLAGS"]="-O1 -pipe"
450@@ -16,7 +15,6 @@
451 "Abstract base class for all arm (big endian) builders"
452 def __init__(self,myspec):
453 builder.generic.__init__(self,myspec)
454- self.settings["mainarch"]="arm"
455 self.settings["CHROOT"]="chroot"
456 self.settings["CFLAGS"]="-O2 -pipe"
457 self.settings["CXXFLAGS"]="-O1 -pipe"
458Index: arch/ppc.py
459===================================================================
460--- arch/ppc.py (revision 1203)
461+++ arch/ppc.py (working copy)
462@@ -12,12 +12,12 @@
463 "abstract base class for all ppc builders"
464 def __init__(self,myspec):
465 builder.generic.__init__(self,myspec)
466- self.settings["mainarch"]="ppc"
467 self.settings["CHOST"]="powerpc-unknown-linux-gnu"
468- if self.settings["hostarch"]=="ppc64":
469+ if self.settings["buildarch"]=="ppc64":
470 if not os.path.exists("/bin/linux32"):
471 raise CatalystError,"required /bin/linux32 executable not found (\"emerge setarch\" to fix."
472 self.settings["CHROOT"]="linux32 chroot"
473+ self.settings["crosscompile"] = False;
474 else:
475 self.settings["CHROOT"]="chroot"
476
477Index: arch/sparc64.py
478===================================================================
479--- arch/sparc64.py (revision 1203)
480+++ arch/sparc64.py (working copy)
481@@ -7,7 +7,6 @@
482 "abstract base class for all sparc64 builders"
483 def __init__(self,myspec):
484 builder.generic.__init__(self,myspec)
485- self.settings["mainarch"]="sparc64"
486 self.settings["CHROOT"]="chroot"
487
488 class arch_sparc64(generic_sparc64):
489Index: arch/ia64.py
490===================================================================
491--- arch/ia64.py (revision 1203)
492+++ arch/ia64.py (working copy)
493@@ -7,7 +7,6 @@
494 "builder class for ia64"
495 def __init__(self,myspec):
496 builder.generic.__init__(self,myspec)
497- self.settings["mainarch"]="ia64"
498 self.settings["CHROOT"]="chroot"
499 self.settings["CFLAGS"]="-O2 -pipe"
500 self.settings["CFLAGS"]="-O2 -pipe"
501Index: arch/alpha.py
502===================================================================
503--- arch/alpha.py (revision 1203)
504+++ arch/alpha.py (working copy)
505@@ -7,7 +7,6 @@
506 "abstract base class for all alpha builders"
507 def __init__(self,myspec):
508 builder.generic.__init__(self,myspec)
509- self.settings["mainarch"]="alpha"
510 self.settings["CHROOT"]="chroot"
511 self.settings["CFLAGS"]="-mieee -pipe"
512
513Index: arch/x86.py
514===================================================================
515--- arch/x86.py (revision 1203)
516+++ arch/x86.py (working copy)
517@@ -7,11 +7,11 @@
518 "abstract base class for all x86 builders"
519 def __init__(self,myspec):
520 builder.generic.__init__(self,myspec)
521- self.settings["mainarch"]="x86"
522- if self.settings["hostarch"]=="amd64":
523+ if self.settings["buildarch"]=="amd64":
524 if not os.path.exists("/bin/linux32"):
525 raise CatalystError,"required /bin/linux32 executable not found (\"emerge setarch\" to fix.)"
526 self.settings["CHROOT"]="linux32 chroot"
527+ self.settings["crosscompile"] = False;
528 else:
529 self.settings["CHROOT"]="chroot"
530