On Mon, Jul 16, 2018 at 07:48:26AM -0400, Paul Smith wrote: > On Mon, 2018-07-16 at 15:30 +0800, Zorro Lang wrote: > > > [root@fedoravm tmp]# ls -l > > > total 4 > > > -rw-r--r--. 1 root root 206 Jul 15 14:58 Makefile > > > drwxr-xr-x. 1 root root 0 Jul 15 14:59 testdir > > > [root@fedoravm tmp]# cat Makefile > > > STRING1 = $(wildcard $(CURDIR)/[a-z]*/) > > > STRING2 = $(wildcard ./[a-z]*/) > > > default: > > > @echo STRING1="$(STRING1)" > > > @echo STRING2="$(STRING2)" > > > [root@fedoravm tmp]# make > > > STRING1=/root/tmp/testdir/ /root/tmp/Makefile > > > STRING2=./testdir/ ./Makefile > > > [root@fedoravm tmp]# > > GNU make uses the system libc version of the glob(3) and fnmatch(3) > functions to implement its wildcard function on any system which > provides GNU libc. > > So, if there's a change which introduces a problem with wildcard it is > more likely to be related to the GNU libc implementation of glob() or > fnmatch(). > > Unless you've somehow compiled GNU make to use its internal version of > GNU glob()/fnmatch() instead of the system version. > > I filed a bug about this with GNU libc a long time ago, and it was > apparently fixed in GNU libc 2.19 in 2014. So, I'm not sure why you've > just started seeing it now. > > https://sourceware.org/bugzilla/show_bug.cgi?id=10278 This problem here doesn't seem the same as the bug above, Fedora 28 has glibc-2.27, which contains the fix for above bug, and the bug is about trailing "/". But the problem here is we're asking for all lower case filenames but wildcard returns upper case names too. e.g. [root@fedoravm tmp]# pwd /root/tmp [root@fedoravm tmp]# ls -l total 4 -rw-r--r--. 1 root root 0 Jul 17 10:51 aaa -rw-r--r--. 1 root root 0 Jul 17 10:51 AAA -rw-r--r--. 1 root root 273 Jul 17 10:50 Makefile drwxr-xr-x. 1 root root 0 Jul 15 14:59 testdir [root@fedoravm tmp]# cat Makefile STRING1 = $(wildcard $(CURDIR)/[a-z]*/) STRING2 = $(wildcard ./[a-z]*/) STRING3 = $(wildcard $(CURDIR)/[a-z]*/.) STRING4 = $(wildcard $(CURDIR)/[a-z]*) default: @echo STRING1="$(STRING1)" @echo STRING2="$(STRING2)" @echo STRING3="$(STRING3)" @echo STRING4="$(STRING4)" [root@fedoravm tmp]# make STRING1=/root/tmp/aaa /root/tmp/AAA /root/tmp/testdir/ /root/tmp/Makefile STRING2=./aaa ./AAA ./testdir/ ./Makefile STRING3=/root/tmp/testdir/. STRING4=/root/tmp/aaa /root/tmp/AAA /root/tmp/testdir /root/tmp/Makefile [root@fedoravm tmp]# STRING4 is asking for all lower file names, but both "AAA" and "Makefile" are returned. Thanks, Eryu -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html