This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 3/9] posix: Allow glob to match dangling symlinks [BZ #866]
On 09/17/2017 09:16 AM, Paul Eggert wrote:
Florian Weimer wrote:
If the BSDs are currently source-code-compatible, why doesn't GNU make
fail there already?
Because GNU make never uses BSD glob. GNU make's 'configure' script
checks that _GNU_GLOB_INTERFACE_VERSION equals 1, and if not it compiles
and uses its own glob implementation (copied from an old version of glibc).
Ah, thanks.
If glibc changed _GNU_GLOB_INTERFACE_VERSION to 2, old versions of GNU
make would start rejecting new versions of glibc, and so would build and
run OK because they'd use their old copy of glob. The comment in
gnu-versions.h says that if we change _GNU_GLOB_INTERFACE_VERSION then
we must change the libc.so major version, but this rule seems arbitrary.
This comment predates the availability of symbol versioning. It was
true when it was written.
Suppose we ignore the gnu-versions.h comment and update
_GNU_GLOB_INTERFACE_VERSION to 2 without changing libc.so's major
version. Wouldn't this fix the compatibility problem with GNU Make?
In addition to adding a compat symbols? Yes, that could work.
I don't really like this situation, but this combination seems to be a
somewhat reasonable way to fix both the glob bug and preserve backwards
compatibility.
Thanks,
Florian