[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