Skip to contentSkip to conversation

Update the sanity check and make

PATCH In review Mark Hatle 3 participants 9 messages Jun 24, 2013 – Jun 25, 2013

lore
Share & tools
lore

Mark Hatle

author
#0 lore raw

cover Update the sanity check and make

The sanity check should also look for the broken version of make.

Our version of make also happens to be broken, so fix that as well.

And add nativesdk-make to the buildtools-tarball, to assist people with broken buildtools. (Note, current Fedora and CentOS machines contain the broken make as well. A patch is pending in the Fedora community to update this.)

Mark Hatle (3):
sanity.bbclass: Check for the known broken version of make
make: Fix second part of bug Savannah 30612
buildtools-tarball: Add nativesdk-make

 meta/classes/sanity.bbclass                        | 39 +++++++++++++++
 meta/recipes-core/meta/buildtools-tarball.bb       |  3 +-
 .../make-savannah-bug30612-fix_white_space.patch   | 58 ++++++++++++++++++++++
 meta/recipes-devtools/make/make_3.82.bb            |  5 +-
 4 files changed, 102 insertions(+), 3 deletions(-)
 create mode 100644 meta/recipes-devtools/make/make-3.82/make-savannah-bug30612-fix_white_space.patch
Signature · 1 line
1.8.3.1
author
#1 lore raw

PATCH 1/3 sanity.bbclass: Check for the known broken version of make

See GNU Savannah bug 30612 -- make 3.82 is known to be broken.

A number of vendors are providing a modified version, so checking for just the version string is not enough. We also need to check if the patch for the issue has been applied. We use a modified version of the reproduced to check for the issue.

---
 meta/classes/sanity.bbclass | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
meta/classes/sanity.bbclass +39 -0
index 7f95f31..dc251a1 100644
@@ -336,6 +336,41 @@ def check_gcc_march(sanity_data):
 
     return result
 
+# Unpatched versions of make 3.82 are known to be broken.  See GNU Savannah Bug 30612.
+# Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to validate.
+def check_make_version(sanity_data, loosever):
+    status, result = oe.utils.getstatusoutput("make --version")
+    if status != 0:
+        return "Unable to execute make --version, exit code %s\n" % status
+    version = result.split()[2]
+    if loosever(version) == loosever("3.82"):
+        # Construct a test file
+        f = open("makefile_test", "w")
+        f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
+        f.write("\n")
+        f.write("makefile_test_a.c:\n")
+        f.write("	touch $@\n")
+        f.write("\n")
+        f.write("makefile_test_b.c:\n")
+        f.write("	touch $@\n")
+        f.close()
+
+        # Check if make 3.82 has been patched
+        status,result = oe.utils.getstatusoutput("make -f makefile_test")
+
+        os.remove("makefile_test")
+        if os.path.exists("makefile_test_a.c"):
+            os.remove("makefile_test_a.c")
+        if os.path.exists("makefile_test_b.c"):
+            os.remove("makefile_test_b.c")
+        if os.path.exists("makefile_test.a"):
+            os.remove("makefile_test.a")
+
+        if status != 0:
+            return "Your version of make 3.82 is broken. Please revert to 3.81 or install a patched version.\n"
+    return None
+
+
 # Tar version 1.24 and onwards handle overwriting symlinks correctly
 # but earlier versions do not; this needs to work properly for sstate
 def check_tar_version(sanity_data, loosever):
@@ -407,6 +442,10 @@ def check_sanity(sanity_data):
         messages = messages + 'Please set a MACHINE in your local.conf or environment\n'
         machinevalid = False
 
+    makemsg = check_make_version(sanity_data, LooseVersion)
+    if makemsg:
+        messages = messages + makemsg
+
     tarmsg = check_tar_version(sanity_data, LooseVersion)
     if tarmsg:
         messages = messages + tarmsg
Signature · 1 line
1.8.3.1
#2 lore raw

Re: [PATCH 1/3] sanity.bbclass: Check for the known broken version of make

Quoted 7 lines · Mark Hatle

See GNU Savannah bug 30612 -- make 3.82 is known to be broken.

A number of vendors are providing a modified version, so checking for just the version string is not enough. We also need to check if the patch for the issue has been applied. We use a modified version of the reproduced to check for the issue.

Quoted 5 lines
---
  meta/classes/sanity.bbclass | 39 +++++++++++++++++++++++++++++++++++++++
  1 file changed, 39 insertions(+)

Seems this needs a rebase since RP also changed sanity.bbclass recently.

Sau!

Quoted 58 lines
meta/classes/sanity.bbclass +39 -0
index 7f95f31..dc251a1 100644
@@ -336,6 +336,41 @@ def check_gcc_march(sanity_data):
 
      return result
 
+# Unpatched versions of make 3.82 are known to be broken.  See GNU Savannah Bug 30612.
+# Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to validate.
+def check_make_version(sanity_data, loosever):
+    status, result = oe.utils.getstatusoutput("make --version")
+    if status != 0:
+        return "Unable to execute make --version, exit code %s\n" % status
+    version = result.split()[2]
+    if loosever(version) == loosever("3.82"):
+        # Construct a test file
+        f = open("makefile_test", "w")
+        f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
+        f.write("\n")
+        f.write("makefile_test_a.c:\n")
+        f.write("	touch $@\n")
+        f.write("\n")
+        f.write("makefile_test_b.c:\n")
+        f.write("	touch $@\n")
+        f.close()
+
+        # Check if make 3.82 has been patched
+        status,result = oe.utils.getstatusoutput("make -f makefile_test")
+
+        os.remove("makefile_test")
+        if os.path.exists("makefile_test_a.c"):
+            os.remove("makefile_test_a.c")
+        if os.path.exists("makefile_test_b.c"):
+            os.remove("makefile_test_b.c")
+        if os.path.exists("makefile_test.a"):
+            os.remove("makefile_test.a")
+
+        if status != 0:
+            return "Your version of make 3.82 is broken. Please revert to 3.81 or install a patched version.\n"
+    return None
+
+
  # Tar version 1.24 and onwards handle overwriting symlinks correctly
  # but earlier versions do not; this needs to work properly for sstate
  def check_tar_version(sanity_data, loosever):
@@ -407,6 +442,10 @@ def check_sanity(sanity_data):
          messages = messages + 'Please set a MACHINE in your local.conf or environment\n'
          machinevalid = False
 
+    makemsg = check_make_version(sanity_data, LooseVersion)
+    if makemsg:
+        messages = messages + makemsg
+
      tarmsg = check_tar_version(sanity_data, LooseVersion)
      if tarmsg:
          messages = messages + tarmsg
author
#3 lore raw

Re: [PATCH 1/3] sanity.bbclass: Check for the known broken version of make

Quoted 8 lines · Saul Wold
Quoted 7 lines · Mark Hatle

See GNU Savannah bug 30612 -- make 3.82 is known to be broken.

A number of vendors are providing a modified version, so checking for just the version string is not enough. We also need to check if the patch for the issue has been applied. We use a modified version of the reproduced to check for the issue.

Quoted 7 lines
Quoted 5 lines
---
   meta/classes/sanity.bbclass | 39 +++++++++++++++++++++++++++++++++++++++
   1 file changed, 39 insertions(+)

Seems this needs a rebase since RP also changed sanity.bbclass recently.

This is from Friday morning. I'll start a rebase and send new code when I have it ready.

--Mark

Quoted 60 lines

Sau!

Quoted 58 lines
meta/classes/sanity.bbclass +39 -0
index 7f95f31..dc251a1 100644
@@ -336,6 +336,41 @@ def check_gcc_march(sanity_data):
 
       return result
 
+# Unpatched versions of make 3.82 are known to be broken.  See GNU Savannah Bug 30612.
+# Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to validate.
+def check_make_version(sanity_data, loosever):
+    status, result = oe.utils.getstatusoutput("make --version")
+    if status != 0:
+        return "Unable to execute make --version, exit code %s\n" % status
+    version = result.split()[2]
+    if loosever(version) == loosever("3.82"):
+        # Construct a test file
+        f = open("makefile_test", "w")
+        f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
+        f.write("\n")
+        f.write("makefile_test_a.c:\n")
+        f.write("	touch $@\n")
+        f.write("\n")
+        f.write("makefile_test_b.c:\n")
+        f.write("	touch $@\n")
+        f.close()
+
+        # Check if make 3.82 has been patched
+        status,result = oe.utils.getstatusoutput("make -f makefile_test")
+
+        os.remove("makefile_test")
+        if os.path.exists("makefile_test_a.c"):
+            os.remove("makefile_test_a.c")
+        if os.path.exists("makefile_test_b.c"):
+            os.remove("makefile_test_b.c")
+        if os.path.exists("makefile_test.a"):
+            os.remove("makefile_test.a")
+
+        if status != 0:
+            return "Your version of make 3.82 is broken. Please revert to 3.81 or install a patched version.\n"
+    return None
+
+
   # Tar version 1.24 and onwards handle overwriting symlinks correctly
   # but earlier versions do not; this needs to work properly for sstate
   def check_tar_version(sanity_data, loosever):
@@ -407,6 +442,10 @@ def check_sanity(sanity_data):
           messages = messages + 'Please set a MACHINE in your local.conf or environment\n'
           machinevalid = False
 
+    makemsg = check_make_version(sanity_data, LooseVersion)
+    if makemsg:
+        messages = messages + makemsg
+
       tarmsg = check_tar_version(sanity_data, LooseVersion)
       if tarmsg:
           messages = messages + tarmsg
#4 lore raw

Re: [PATCH 1/3] sanity.bbclass: Check for the known broken version of make

Quoted 15 lines · Mark Hatle
Quoted 14 lines · Saul Wold
Quoted 12 lines · Mark Hatle

See GNU Savannah bug 30612 -- make 3.82 is known to be broken.

A number of vendors are providing a modified version, so checking for just the version string is not enough. We also need to check if the patch for the issue has been applied. We use a modified version of the reproduced to check for the issue.

---
   meta/classes/sanity.bbclass | 39 +++++++++++++++++++++++++++++++++++++++
   1 file changed, 39 insertions(+)
Quoted 4 lines
Quoted 1 line

Seems this needs a rebase since RP also changed sanity.bbclass recently.

This is from Friday morning. I'll start a rebase and send new code when I have it ready.

There is another issues with unpatched make-3.82, webkit and newer nodejs are failing for some people.
https://savannah.gnu.org/bugs/?36451

What about for cycle which generates some very long "ls" or something like that?

On other hand so long commands arn't so common, so many people could be using "broken" make without seeing issues with their images.

Quoted 68 lines

--Mark

Quoted 52 lines

Sau!

Quoted 50 lines
meta/classes/sanity.bbclass +35 -0
index 7f95f31..dc251a1 100644
@@ -336,6 +336,41 @@ def check_gcc_march(sanity_data):
 
       return result
 
+# Unpatched versions of make 3.82 are known to be broken.  See GNU Savannah Bug 30612.
+# Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to validate.
+def check_make_version(sanity_data, loosever):
+    status, result = oe.utils.getstatusoutput("make --version")
+    if status != 0:
+        return "Unable to execute make --version, exit code %s\n" % status
+    version = result.split()[2]
+    if loosever(version) == loosever("3.82"):
+        # Construct a test file
+        f = open("makefile_test", "w")
+        f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
+        f.write("\n")
+        f.write("makefile_test_a.c:\n")
+        f.write("	touch $@\n")
+        f.write("\n")
+        f.write("makefile_test_b.c:\n")
+        f.write("	touch $@\n")
+        f.close()
+
+        # Check if make 3.82 has been patched
+        status,result = oe.utils.getstatusoutput("make -f makefile_test")
+
+        os.remove("makefile_test")
+        if os.path.exists("makefile_test_a.c"):
+            os.remove("makefile_test_a.c")
+        if os.path.exists("makefile_test_b.c"):
+            os.remove("makefile_test_b.c")
+        if os.path.exists("makefile_test.a"):
+            os.remove("makefile_test.a")
+
+        if status != 0:
+            return "Your version of make 3.82 is broken. Please revert to 3.81 or install a patched version.\n"
+    return None
+
+
   # Tar version 1.24 and onwards handle overwriting symlinks correctly
   # but earlier versions do not; this needs to work properly for sstate
   def check_tar_version(sanity_data, loosever):
@@ -407,6 +442,10 @@ def check_sanity(sanity_data):
           messages = messages + 'Please set a MACHINE in your local.conf or environment\n'
           machinevalid = False
 
Quoted 8 lines

meta/classes/sanity.bbclass def check_sanity(sanity_data): · line 451

Quoted 8 lines
meta/classes/sanity.bbclass +4 -0
+    makemsg = check_make_version(sanity_data, LooseVersion)
+    if makemsg:
+        messages = messages + makemsg
+
       tarmsg = check_tar_version(sanity_data, LooseVersion)
       if tarmsg:
           messages = messages + tarmsg

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
author
#5 lore raw

Re: [PATCH 1/3] sanity.bbclass: Check for the known broken version of make

Quoted 25 lines · Martin Jansa
Quoted 15 lines · Mark Hatle
Quoted 14 lines · Saul Wold
Quoted 12 lines · Mark Hatle

See GNU Savannah bug 30612 -- make 3.82 is known to be broken.

A number of vendors are providing a modified version, so checking for just the version string is not enough. We also need to check if the patch for the issue has been applied. We use a modified version of the reproduced to check for the issue.

---
    meta/classes/sanity.bbclass | 39 +++++++++++++++++++++++++++++++++++++++
    1 file changed, 39 insertions(+)
Quoted 4 lines
Quoted 1 line

Seems this needs a rebase since RP also changed sanity.bbclass recently.

This is from Friday morning. I'll start a rebase and send new code when I have it ready.

There is another issues with unpatched make-3.82, webkit and newer nodejs are failing for some people.
https://savannah.gnu.org/bugs/?36451

Quoted 5 lines

What about for cycle which generates some very long "ls" or something like that?

On other hand so long commands arn't so common, so many people could be using "broken" make without seeing issues with their images.

If you can point me to a reproducer, I'm happy to add it to the sanity check as part of the rebase work.

The current reproducer covers two cases (see the patch for the savannah bug number). These were the two cases that I knew had caused problems for others in the past.

--Mark

Quoted 69 lines
Quoted 68 lines

--Mark

Quoted 52 lines

Sau!

Quoted 50 lines
meta/classes/sanity.bbclass +35 -0
index 7f95f31..dc251a1 100644
@@ -336,6 +336,41 @@ def check_gcc_march(sanity_data):
 
        return result
 
+# Unpatched versions of make 3.82 are known to be broken.  See GNU Savannah Bug 30612.
+# Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to validate.
+def check_make_version(sanity_data, loosever):
+    status, result = oe.utils.getstatusoutput("make --version")
+    if status != 0:
+        return "Unable to execute make --version, exit code %s\n" % status
+    version = result.split()[2]
+    if loosever(version) == loosever("3.82"):
+        # Construct a test file
+        f = open("makefile_test", "w")
+        f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
+        f.write("\n")
+        f.write("makefile_test_a.c:\n")
+        f.write("	touch $@\n")
+        f.write("\n")
+        f.write("makefile_test_b.c:\n")
+        f.write("	touch $@\n")
+        f.close()
+
+        # Check if make 3.82 has been patched
+        status,result = oe.utils.getstatusoutput("make -f makefile_test")
+
+        os.remove("makefile_test")
+        if os.path.exists("makefile_test_a.c"):
+            os.remove("makefile_test_a.c")
+        if os.path.exists("makefile_test_b.c"):
+            os.remove("makefile_test_b.c")
+        if os.path.exists("makefile_test.a"):
+            os.remove("makefile_test.a")
+
+        if status != 0:
+            return "Your version of make 3.82 is broken. Please revert to 3.81 or install a patched version.\n"
+    return None
+
+
    # Tar version 1.24 and onwards handle overwriting symlinks correctly
    # but earlier versions do not; this needs to work properly for sstate
    def check_tar_version(sanity_data, loosever):
@@ -407,6 +442,10 @@ def check_sanity(sanity_data):
            messages = messages + 'Please set a MACHINE in your local.conf or environment\n'
            machinevalid = False
 
Quoted 8 lines

meta/classes/sanity.bbclass def check_sanity(sanity_data): · line 451

Quoted 8 lines
meta/classes/sanity.bbclass +4 -0
+    makemsg = check_make_version(sanity_data, LooseVersion)
+    if makemsg:
+        messages = messages + makemsg
+
        tarmsg = check_tar_version(sanity_data, LooseVersion)
        if tarmsg:
            messages = messages + tarmsg

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#6 lore raw

Re: [PATCH 1/3] sanity.bbclass: Check for the known broken version of make

Quoted 32 lines · Mark Hatle
Quoted 25 lines · Martin Jansa
Quoted 15 lines · Mark Hatle
Quoted 14 lines · Saul Wold
Quoted 12 lines · Mark Hatle

See GNU Savannah bug 30612 -- make 3.82 is known to be broken.

A number of vendors are providing a modified version, so checking for just the version string is not enough. We also need to check if the patch for the issue has been applied. We use a modified version of the reproduced to check for the issue.

---
    meta/classes/sanity.bbclass | 39 +++++++++++++++++++++++++++++++++++++++
    1 file changed, 39 insertions(+)
Quoted 4 lines
Quoted 1 line

Seems this needs a rebase since RP also changed sanity.bbclass recently.

This is from Friday morning. I'll start a rebase and send new code when I have it ready.

There is another issues with unpatched make-3.82, webkit and newer nodejs are failing for some people.
https://savannah.gnu.org/bugs/?36451

Quoted 5 lines

What about for cycle which generates some very long "ls" or something like that?

On other hand so long commands arn't so common, so many people could be using "broken" make without seeing issues with their images.

Quoted 6 lines

If you can point me to a reproducer, I'm happy to add it to the sanity check as part of the rebase work.

The current reproducer covers two cases (see the patch for the savannah bug number). These were the two cases that I knew had caused problems for others in the past.

I don't have simple reproducer, because it works fine in both make-3.82 I'm using (from Gentoo and Ubuntu) and with my reasonable long TOPDIR.

The problem is triggered in some webkit builds and also in nodejs-0.10.4
http://patchwork.openembedded.org/patch/48253/

Tasslehoff reported today that nodejs was failing for him with /home/tas/angstrom-setup-scripts and works fine with /home/tas/oe adding him to Cc, maybe he has better reproducer now.

Quoted 73 lines

--Mark

Quoted 69 lines
Quoted 68 lines

--Mark

Quoted 52 lines

Sau!

Quoted 50 lines
meta/classes/sanity.bbclass +35 -0
index 7f95f31..dc251a1 100644
@@ -336,6 +336,41 @@ def check_gcc_march(sanity_data):
 
        return result
 
+# Unpatched versions of make 3.82 are known to be broken.  See GNU Savannah Bug 30612.
+# Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to validate.
+def check_make_version(sanity_data, loosever):
+    status, result = oe.utils.getstatusoutput("make --version")
+    if status != 0:
+        return "Unable to execute make --version, exit code %s\n" % status
+    version = result.split()[2]
+    if loosever(version) == loosever("3.82"):
+        # Construct a test file
+        f = open("makefile_test", "w")
+        f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
+        f.write("\n")
+        f.write("makefile_test_a.c:\n")
+        f.write("	touch $@\n")
+        f.write("\n")
+        f.write("makefile_test_b.c:\n")
+        f.write("	touch $@\n")
+        f.close()
+
+        # Check if make 3.82 has been patched
+        status,result = oe.utils.getstatusoutput("make -f makefile_test")
+
+        os.remove("makefile_test")
+        if os.path.exists("makefile_test_a.c"):
+            os.remove("makefile_test_a.c")
+        if os.path.exists("makefile_test_b.c"):
+            os.remove("makefile_test_b.c")
+        if os.path.exists("makefile_test.a"):
+            os.remove("makefile_test.a")
+
+        if status != 0:
+            return "Your version of make 3.82 is broken. Please revert to 3.81 or install a patched version.\n"
+    return None
+
+
    # Tar version 1.24 and onwards handle overwriting symlinks correctly
    # but earlier versions do not; this needs to work properly for sstate
    def check_tar_version(sanity_data, loosever):
@@ -407,6 +442,10 @@ def check_sanity(sanity_data):
            messages = messages + 'Please set a MACHINE in your local.conf or environment\n'
            machinevalid = False
 
Quoted 8 lines

meta/classes/sanity.bbclass def check_sanity(sanity_data): · line 451

Quoted 8 lines
meta/classes/sanity.bbclass +4 -0
+    makemsg = check_make_version(sanity_data, LooseVersion)
+    if makemsg:
+        messages = messages + makemsg
+
        tarmsg = check_tar_version(sanity_data, LooseVersion)
        if tarmsg:
            messages = messages + tarmsg

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
author
#7 lore raw

PATCH 2/3 make: Fix second part of bug Savannah 30612

In reply to Mark Hatle

The Savannah bug 30612 describes two different issue. The first, previously fixed, errors parsing multiple objects in parenthesis. The second, (this issue), extra white space contained in the parenthesis.

The fix was backported from the current make git tree:
http://git.savannah.gnu.org/cgit/make.git/commit/?id=b06b8c64a29a5ba3a8daecd829fa2f98d42cb285

---
 .../make-savannah-bug30612-fix_white_space.patch   | 58 ++++++++++++++++++++++
 meta/recipes-devtools/make/make_3.82.bb            |  3 +-
 2 files changed, 60 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/make/make-3.82/make-savannah-bug30612-fix_white_space.patch
meta/recipes-devtools/make/make-3.82/make-savannah-bug30612-fix_white_space.patch new file +58 -0
new file mode 100644
index 0000000..0ef501f
@@ -0,0 +1,58 @@
+Fix another error related to whitespace handling in archives.
+
+2011-06-12  Paul Smith  <[email protected]>
+
+* read.c (parse_file_seq): Move the check for empty members out of
+the loop so we can go to the next member properly.
+Another fix for Savannah bug #30612.
+
+Upstream-Status: Backport
+
+---
+ read.c                          | 10 +++++-----
+ tests/scripts/features/archives |  5 +++++
+ 5 files changed, 30 insertions(+), 5 deletions(-)
+
+diff --git a/read.c b/read.c
+index c87d4a7..b012094 100644
+--- a/read.c
++++ b/read.c
+@@ -3044,16 +3044,16 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
+                       nlen -= (n + 1) - tp;
+                       tp = n + 1;
+ 
+-                      /* If we have just "lib(", part of something like
+-                         "lib( a b)", go to the next item.  */
+-                      if (! nlen)
+-                        continue;
+-
+                       /* We can stop looking now.  */
+                       break;
+                     }
+                 }
+               while (*e != '\0');
++
++              /* If we have just "lib(", part of something like "lib( a b)",
++                 go to the next item.  */
++              if (! nlen)
++                continue;
+             }
+         }
+ 
+diff --git a/tests/scripts/features/archives b/tests/scripts/features/archives
+index 00aa1af..3fe46a0 100644
+--- a/tests/scripts/features/archives
++++ b/tests/scripts/features/archives
+@@ -36,6 +36,11 @@ utouch(-50, 'a2.o');
+ run_make_test('all: libxx.a(a3.o *.o)', '',
+               "ar rv libxx.a a3.o\na - a3.o\nar rv libxx.a a2.o\nr - a2.o\n");
+ 
++# Check whitespace handling
++utouch(-40, 'a2.o');
++run_make_test('all: libxx.a(  a3.o    *.o     )', '',
++              "ar rv libxx.a a2.o\nr - a2.o\n");
++
+ rmfiles(qw(a1.o a2.o a3.o libxx.a));
+ 
+ # This tells the test driver that the perl test script executed properly.
+
meta/recipes-devtools/make/make_3.82.bb +2 -1
index b4292b5..8a2f287 100644
@@ -7,7 +7,8 @@ require make.inc
 
 SRC_URI += "file://expand_MAKEFLAGS.patch \
             file://intermediate-target-bugfix.patch \
-            file://make-savannah-bug30612-handling_of_archives.patch;striplevel=0"
+            file://make-savannah-bug30612-handling_of_archives.patch;striplevel=0 \
+            file://make-savannah-bug30612-fix_white_space.patch"
 
 SRC_URI[md5sum] = "1a11100f3c63fcf5753818e59d63088f"
 SRC_URI[sha256sum] = "e2c1a73f179c40c71e2fe8abf8a8a0688b8499538512984da4a76958d0402966"
Signature · 1 line
1.8.3.1
author
#8 lore raw

PATCH 3/3 buildtools-tarball: Add nativesdk-make

In reply to Mark Hatle

Recently it was discovered that many Fedora hosts have a broken version of make 3.82. Add make to the buildtools-tarball, as well ad modify make to support building a special nativesdk version.

---
 meta/recipes-core/meta/buildtools-tarball.bb | 3 ++-
 meta/recipes-devtools/make/make_3.82.bb      | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
meta/recipes-core/meta/buildtools-tarball.bb +2 -1
index 7a91c6b..f8024f9 100644
@@ -1,4 +1,4 @@
-DESCRIPTION = "SDK type target for building a standalone tarball containing python, chrpath, git and tar. The \
+DESCRIPTION = "SDK type target for building a standalone tarball containing python, chrpath, make, git and tar. The \
                tarball can be used to run bitbake builds on systems which don't meet the usual version requirements."
 SUMMARY = "Standalone tarball for running builds on systems with inadequate software"
 LICENSE = "MIT"
@@ -36,6 +36,7 @@ TOOLCHAIN_HOST_TASK ?= "\
     nativesdk-chrpath \
     nativesdk-tar \
     nativesdk-git \
+    nativesdk-make \
     "
 
 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-buildtools-nativesdk-standalone-${DISTRO_VERSION}"
meta/recipes-devtools/make/make_3.82.bb +1 -1
index 8a2f287..6cc467d 100644
@@ -13,4 +13,4 @@ SRC_URI += "file://expand_MAKEFLAGS.patch \
 SRC_URI[md5sum] = "1a11100f3c63fcf5753818e59d63088f"
 SRC_URI[sha256sum] = "e2c1a73f179c40c71e2fe8abf8a8a0688b8499538512984da4a76958d0402966"
 
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
Signature · 1 line
1.8.3.1