Patchwork Fwd: OE scons cross-compile patch

login
register
mail settings
Submitter Tom King
Date Feb. 11, 2012, 11:24 p.m.
Message ID <CAHQecY5ARQUHqUScJqReFO_mD3t_U-ViMYQrS=Rox-xoGR3k-A@mail.gmail.com>
Download mbox | patch
Permalink /patch/21177/
State Not Applicable, archived
Headers show

Comments

Tom King - Feb. 11, 2012, 11:24 p.m.
---------- Forwarded message ----------
From: S. Lockwood-Childs <sjl@vctlabs.com>
Date: Sat, Feb 11, 2012 at 4:03 PM
Subject: OE scons cross-compile patch
To: ka6sox@gmail.com


commit 9f66f474614696154d50156ada5f4c**1629b1b28c
Author: S Lockwood-Childs <sjl@vctlabs.com>
Date:   Sat Feb 11 15:07:17 2012 -0800

   cross-compile support for SCons

   scons build system searches paths for hard-coded tool names like "gcc",
   so this patch teaches it to check first for a tool with cross-compile
prefix
   if the CROSS_COMPILE variable has been set. If not found, it falls back
   to searching for the un-prefixed tool name.

   For example, if CROSS_COMPILE=arm-angstrom-**linux-gnueabi-
   SCons.Evironment.Detect('gcc') should find arm-angstrom-linux-gnueabi-gcc
   SCons.Evironment.Detect('zip') should find plain zip

diff --git a/meta/recipes-devtools/**python/python-scons-native/**scons-cross-toolchain.patch
b/meta/recipes-devtools/**python/python-scons-native/**
scons-cross-toolchain.patch
new file mode 100644
index 0000000..041279e
--- /dev/null
+++ b/meta/recipes-devtools/**python/python-scons-native/**
scons-cross-toolchain.patch
@@ -0,0 +1,17 @@
+--- scons-2.1.0/engine/SCons/**Environment.py.orig       2012-02-10
16:59:10.000000000 -0800
++++ scons-2.1.0/engine/SCons/**Environment.py    2012-02-11
13:29:15.000000000 -0800
+@@ -1483,6 +1483,14 @@
+         if not SCons.Util.is_List(progs):
+             progs = [ progs ]
+         for prog in progs:
++            # prefer cross version of program, if it exists
++            if 'CROSS_COMPILE' in self._dict:
++                cross_prog = self['CROSS_COMPILE'] + prog
++                #print "Looking for %s" % cross_prog
++                path = self.WhereIs(cross_prog)
++                if path: return cross_prog
++
++            #print "Looking for %s" % prog
+             path = self.WhereIs(prog)
+             if path: return prog
+         return None
Koen Kooi - Feb. 11, 2012, 11:48 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Shouldn't these go to the oe-core list?

Op 12-02-12 00:24, Tom King schreef:
> ---------- Forwarded message ---------- From: S. Lockwood-Childs
> <sjl@vctlabs.com> Date: Sat, Feb 11, 2012 at 4:03 PM Subject: OE scons
> cross-compile patch To: ka6sox@gmail.com
> 
> 
> commit 9f66f474614696154d50156ada5f4c**1629b1b28c Author: S
> Lockwood-Childs <sjl@vctlabs.com> Date:   Sat Feb 11 15:07:17 2012 -0800
> 
> cross-compile support for SCons
> 
> scons build system searches paths for hard-coded tool names like "gcc", 
> so this patch teaches it to check first for a tool with cross-compile 
> prefix if the CROSS_COMPILE variable has been set. If not found, it falls
> back to searching for the un-prefixed tool name.
> 
> For example, if CROSS_COMPILE=arm-angstrom-**linux-gnueabi- 
> SCons.Evironment.Detect('gcc') should find
> arm-angstrom-linux-gnueabi-gcc SCons.Evironment.Detect('zip') should find
> plain zip
> 
> diff --git
> a/meta/recipes-devtools/**python/python-scons-native/**scons-cross-toolchain.patch
>
> 
b/meta/recipes-devtools/**python/python-scons-native/**
> scons-cross-toolchain.patch new file mode 100644 index 0000000..041279e 
> --- /dev/null +++
> b/meta/recipes-devtools/**python/python-scons-native/** 
> scons-cross-toolchain.patch @@ -0,0 +1,17 @@ +---
> scons-2.1.0/engine/SCons/**Environment.py.orig       2012-02-10 
> 16:59:10.000000000 -0800 ++++ scons-2.1.0/engine/SCons/**Environment.py
> 2012-02-11 13:29:15.000000000 -0800 +@@ -1483,6 +1483,14 @@ +         if
> not SCons.Util.is_List(progs): +             progs = [ progs ] +
> for prog in progs: ++            # prefer cross version of program, if it
> exists ++            if 'CROSS_COMPILE' in self._dict: ++
> cross_prog = self['CROSS_COMPILE'] + prog ++                #print
> "Looking for %s" % cross_prog ++                path =
> self.WhereIs(cross_prog) ++                if path: return cross_prog ++ 
> ++            #print "Looking for %s" % prog +             path =
> self.WhereIs(prog) +             if path: return prog +         return
> None diff --git
> a/meta/recipes-devtools/**python/python-scons-native_2.**1.0.bb<http://python-scons-native_2.1.0.bb>b/meta/recipes-devtools/
>
> 
**python/python-scons-native_2.**1.0.bb<http://python-scons-native_2.1.0.bb>
> index ff94cf6..c653237 100644 ---
> a/meta/recipes-devtools/**python/python-scons-native_2.**1.0.bb<http://python-scons-native_2.1.0.bb>
>
> 
+++
b/meta/recipes-devtools/**python/python-scons-native_2.**1.0.bb<http://python-scons-native_2.1.0.bb>
> @@ -2,4 +2,6 @@ require python-scons_${PV}.bb inherit native DEPENDS =
> "python-native" RDEPENDS_${PN} = "" -PR = "r1" +PR = "r2" + +SRC_URI +=
> "file://scons-cross-toolchain.**patch"
> 
> 
> 
> _______________________________________________ Openembedded-devel
> mailing list Openembedded-devel@lists.openembedded.org 
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)
Comment: GPGTools - http://gpgtools.org

iEYEARECAAYFAk82/lEACgkQMkyGM64RGpG8OQCfcZk0EZs2iyyTwnJsAxpFOZvm
z+EAoJlGm6KD41LyaFpN3hgMQC3LDitY
=Lp55
-----END PGP SIGNATURE-----

Patch

commit 9f66f474614696154d50156ada5f4c1629b1b28c
Author: S Lockwood-Childs <sjl@vctlabs.com>
Date:   Sat Feb 11 15:07:17 2012 -0800

    cross-compile support for SCons
    
    scons build system searches paths for hard-coded tool names like "gcc",
    so this patch teaches it to check first for a tool with cross-compile prefix
    if the CROSS_COMPILE variable has been set. If not found, it falls back
    to searching for the un-prefixed tool name.
    
    For example, if CROSS_COMPILE=arm-angstrom-linux-gnueabi-
    SCons.Evironment.Detect('gcc') should find arm-angstrom-linux-gnueabi-gcc
    SCons.Evironment.Detect('zip') should find plain zip

diff --git a/meta/recipes-devtools/python/python-scons-native/scons-cross-toolchain.patch b/meta/recipes-devtools/python/python-scons-native/scons-cross-toolchain.patch

new file mode 100644
index 0000000..041279e

--- /dev/null

+++ b/meta/recipes-devtools/python/python-scons-native/scons-cross-toolchain.patch

@@ -0,0 +1,17 @@ 

+--- scons-2.1.0/engine/SCons/Environment.py.orig	2012-02-10 16:59:10.000000000 -0800

++++ scons-2.1.0/engine/SCons/Environment.py	2012-02-11 13:29:15.000000000 -0800

+@@ -1483,6 +1483,14 @@

+         if not SCons.Util.is_List(progs):

+             progs = [ progs ]

+         for prog in progs:

++            # prefer cross version of program, if it exists

++            if 'CROSS_COMPILE' in self._dict:

++                cross_prog = self['CROSS_COMPILE'] + prog

++                #print "Looking for %s" % cross_prog

++                path = self.WhereIs(cross_prog)

++                if path: return cross_prog

++

++            #print "Looking for %s" % prog

+             path = self.WhereIs(prog)

+             if path: return prog

+         return None

diff --git a/meta/recipes-devtools/python/python-scons-native_2.1.0.bb b/meta/recipes-devtools/python/python-scons-native_2.1.0.bb

index ff94cf6..c653237 100644

--- a/meta/recipes-devtools/python/python-scons-native_2.1.0.bb

+++ b/meta/recipes-devtools/python/python-scons-native_2.1.0.bb

@@ -2,4 +2,6 @@  require python-scons_${PV}.bb

 inherit native
 DEPENDS = "python-native"
 RDEPENDS_${PN} = ""
-PR = "r1"

+PR = "r2"

+

+SRC_URI += "file://scons-cross-toolchain.patch"