[PATCH 3/9] posix: Allow glob to match dangling symlinks [BZ #866]
Florian Weimer
fweimer@redhat.com
Sun Sep 17 07:48:00 GMT 2017
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
More information about the Libc-alpha
mailing list