Hello community,

here is the log from the commit of package make for openSUSE:Factory checked in 
at 2012-04-17 21:59:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/make (Old)
 and      /work/SRC/openSUSE:Factory/.make.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "make", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/make/make.changes        2011-10-12 
16:12:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.make.new/make.changes   2012-04-17 
22:00:00.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Apr 10 14:26:35 CEST 2012 - [email protected]
+
+- Faster globbing support from upstream to speed up 
+  some large make projects like libreoffice. bnc#753323
+
+-------------------------------------------------------------------

New:
----
  make-glob-faster.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ make.spec ++++++
--- /var/tmp/diff_new_pack.2sxlvu/_old  2012-04-17 22:00:02.000000000 +0200
+++ /var/tmp/diff_new_pack.2sxlvu/_new  2012-04-17 22:00:02.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package make
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -15,25 +15,23 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-# norootforbuild
-
 
 Name:           make
 Url:            http://www.gnu.org/software/make/make.html
-License:        GPL-2.0+
-Group:          Development/Tools/Building
 Provides:       gmake
 PreReq:         %install_info_prereq
-AutoReqProv:    on
 Version:        3.82
-Release:        2
+Release:        0
 Summary:        GNU make
+License:        GPL-2.0+
+Group:          Development/Tools/Building
 Source:         make-%version.tar.bz2
 Patch2:         make-slowdown-parallelism.diff
 Patch3:         make-disable-broken-tests.diff
 Patch4:         make-savannah-bug30723-expand_makeflags_before_reexec.diff
 Patch5:         make-savannah-bug30612-handling_of_archives.diff
 Patch6:         make-fix_whitespace_tokenization.diff
+Patch7:         make-glob-faster.patch
 Patch64:        make-library-search-path.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
@@ -41,12 +39,13 @@
 The GNU make command with extensive documentation.
 
 %prep
-%setup
+%setup -q
 %patch2
 %patch3 -p1
 %patch4
 %patch5
 %patch6 -p1
+%patch7 -p0
 if [ %_lib == lib64 ]; then
 %patch64
 fi

++++++ make-glob-faster.patch ++++++
Index: read.c
===================================================================
RCS file: /sources/make/make/read.c,v
retrieving revision 1.198
retrieving revision 1.200
diff -u -p -u -r1.198 -r1.200
--- read.c      29 Apr 2011 15:27:39 -0000      1.198
+++ read.c      7 May 2011 14:36:12 -0000       1.200
@@ -2901,6 +2901,7 @@ parse_file_seq (char **stringp, unsigned
       const char *name;
       const char **nlist = 0;
       char *tildep = 0;
+      int globme = 1;
 #ifndef NO_ARCHIVES
       char *arname = 0;
       char *memname = 0;
@@ -3109,32 +3110,40 @@ parse_file_seq (char **stringp, unsigned
        }
 #endif /* !NO_ARCHIVES */
 
-      switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
-       {
-       case GLOB_NOSPACE:
-         fatal (NILF, _("virtual memory exhausted"));
-
-       case 0:
-          /* Success.  */
-          i = gl.gl_pathc;
-          nlist = (const char **)gl.gl_pathv;
-          break;
-
-        case GLOB_NOMATCH:
-          /* If we want only existing items, skip this one.  */
-          if (flags & PARSEFS_EXISTS)
-            {
-              i = 0;
-              break;
-            }
-          /* FALLTHROUGH */
-
-       default:
-          /* By default keep this name.  */
+      /* glob() is expensive: don't call it unless we need to.  */
+      if (!(flags & PARSEFS_EXISTS) && strpbrk (name, "?*[") == NULL)
+        {
+          globme = 0;
           i = 1;
           nlist = &name;
-          break;
-       }
+        }
+      else
+        switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
+          {
+          case GLOB_NOSPACE:
+            fatal (NILF, _("virtual memory exhausted"));
+
+          case 0:
+            /* Success.  */
+            i = gl.gl_pathc;
+            nlist = (const char **)gl.gl_pathv;
+            break;
+
+          case GLOB_NOMATCH:
+            /* If we want only existing items, skip this one.  */
+            if (flags & PARSEFS_EXISTS)
+              {
+                i = 0;
+                break;
+              }
+            /* FALLTHROUGH */
+
+          default:
+            /* By default keep this name.  */
+            i = 1;
+            nlist = &name;
+            break;
+          }
 
       /* For each matched element, add it to the list.  */
       while (i-- > 0)
@@ -3174,7 +3183,8 @@ parse_file_seq (char **stringp, unsigned
 #endif /* !NO_ARCHIVES */
           NEWELT (concat (2, prefix, nlist[i]));
 
-      globfree (&gl);
+      if (globme)
+        globfree (&gl);
 
 #ifndef NO_ARCHIVES
       if (arname)
Index: tests/scripts/functions/wildcard
===================================================================
RCS file: /sources/make/make/tests/scripts/functions/wildcard,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -u -r1.6 -r1.7
--- tests/scripts/functions/wildcard    13 Jun 2009 21:21:49 -0000      1.6
+++ tests/scripts/functions/wildcard    7 May 2011 14:36:11 -0000       1.7
@@ -88,4 +88,16 @@ all: ; @echo $(wildcard xz--y*.7)
 !,
               '', "\n");
 
+# TEST #5: wildcard used to verify file existence
+
+touch('xxx.yyy');
+
+run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!,
+              '', "file=xxx.yyy\n");
+
+unlink('xxx.yyy');
+
+run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!,
+              '', "file=\n");
+
 1;
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to