On Thu, Oct 6, 2016 at 12:06 PM, Paul Smith <psm...@gnu.org> wrote:

> > 4.2.1 definitely broken, at least on my system.
>
> It works on my system.  I've tried it multiple times.  I'm using Ubuntu
> GNOME 16.04.1, with GNU libc 2.23, on an ext4 filesystem.
>

Broken here on on Debian using the Linux kernel with glibc 2.23 on ext4:

$ ldd ~/make-4.2.1
    linux-vdso.so.1 (0x00007ffdc316c000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbd5495f000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbd545be000)
    /lib64/ld-linux-x86-64.so.2 (0x000056101b9e3000)
$ dpkg -S /lib/x86_64-linux-gnu/libc.so.6
libc6:amd64: /lib/x86_64-linux-gnu/libc.so.6
$ dpkg -l libc6:amd64
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name             Version       Architecture  Description
+++-================-=============-=============-======================================
ii  libc6:amd64      2.23-5        amd64         GNU C Library: Shared
libraries

Make was compiled from the source tarball with Debian's gcc 6.1.1.

I can't explain why your system is behaving differently.  Perhaps your
> version of libc has an issue with the glob() or fnmatch() functions
> (it's happened before).  Or maybe there's a bug in GNU make which is
> system-dependent in some way.
>

It seems unlikely that this is an artifact of my specific system
configuration, since I see the exact same behavior on MacOS. Starting from
a clean directory (only Makefile exists there):

$ ~/make-4.2.1
touch target1
touch target2
touch target3
touch target4
touch target5
touch target6
touch target7
touch target8
touch target9
touch target10
glob:
$ ~/make-4.2.1
glob: target4 target2 target1 target5 target6 target7 target8 target9
target10 target3
$ uname -a
Darwin bos-mpi8u 15.6.0 Darwin Kernel Version 15.6.0: Mon Aug 29 20:21:34
PDT 2016; root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64
$ ~/make-4.2.1 --version
GNU Make 4.2.1
Built for x86_64-apple-darwin15.6.0
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ otool -L ~/make-4.2.1
/Users/krose/make-4.2.1:
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1226.10.1)

Not Linux, not glibc, and not ext4.

Incidentally, make in this instance was also compiled from the same source
tarball, but with Apple LLVM version 8.0.0 (clang-800.0.38).


> Clearly, but it appears to be a defect that can only reproduced on your
> system (so far), so you'll have to do a bit more digging.  Rewriting
> the directory caching facility isn't the answer.
>

I trust you saw Martin's email?

If you send me a filtered ltrace:

ltrace -s 255 make 2>&1 >/dev/null | egrep -v -e
'^(mem|str|free|malloc|__str|calloc|qsort)' -e resumed

I might be able to track down where the behavior differs on (AFAICT) very
similar system configurations (Debian and Ubuntu with the same minor
version of glibc). My gut tells me there's an inconsistency in the test
setup, not in GNU make's behavior given the same starting conditions, which
is exhibiting the same behavior on very different configurations (Debian
vs. MacOS).

Kyle
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to