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]
