make-4.3: wildcard test #9 fails

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

make-4.3: wildcard test #9 fails

Bruno Haible
Hi,

Building GNU make 4.3 on Ubuntu 16.04, produces one failing test:

$ ./configure --prefix=/arch/x86_64-linux-gnu/gnu-inst-make/4.3
$ make
$ make check
...
functions/wildcard ...................................... FAILED (9/10 passed)
...
vms/library ............................................. N/A

1 Test in 1 Category Failed (See .diff* files in work dir for details) :-(

Makefile:1998: die Regel für Ziel „check-regression“ scheiterte
make[2]: *** [check-regression] Fehler 1

$ cat tests/work/functions/wildcard.diff.9
*** work/functions/wildcard.base.9 Sun Apr  5 15:16:18 2020
--- work/functions/wildcard.log.9 Sun Apr  5 15:16:18 2020
***************
*** 1 ****
! __ldir
--- 1 ----
!

This is on an ext4 file system.
It's not locale dependent: the same result occurs with 'LC_ALL=C make check'.

Additional data:

$ nm make | grep wildcard
000000000040f820 t func_wildcard
$ nm make | grep glob
0000000000408620 T ar_glob
0000000000408280 t ar_glob_match
000000000040b220 T dir_setup_glob
0000000000408210 t __do_global_dtors_aux
0000000000632e08 t __do_global_dtors_aux_fini_array_entry
0000000000634560 b global_dl.6802
00000000006341d0 d global_setlist
0000000000637080 b global_variable_set
                 U globfree@@GLIBC_2.2.5
                 U glob@@GLIBC_2.2.5
0000000000424760 T init_hash_global_variable_set

Bruno


Reply | Threaded
Open this post in threaded view
|

Re: make-4.3: wildcard test #9 fails

Paul Smith-20
On Sun, 2020-04-05 at 15:33 +0200, Bruno Haible wrote:
> Building GNU make 4.3 on Ubuntu 16.04, produces one failing test:

This is because the glob() function in the older GNU libc has a bug
related to handling symlinks correctly.


Reply | Threaded
Open this post in threaded view
|

Re: make-4.3: wildcard test #9 fails

Bruno Haible
Hi Paul,

> > Building GNU make 4.3 on Ubuntu 16.04, produces one failing test:
>
> This is because the glob() function in the older GNU libc has a bug
> related to handling symlinks correctly.

Gnulib provides a workaround against this bug in its 'glob' module [1].
But GNU make ships a copy of glob.c from 1999 :-(

Bruno

[1] https://www.gnu.org/software/gnulib/manual/html_node/glob.html


Reply | Threaded
Open this post in threaded view
|

Re: make-4.3: wildcard test #9 fails

Paul Smith-20
On Sun, 2020-04-05 at 16:19 +0200, Bruno Haible wrote:
> Hi Paul,
>
> > > Building GNU make 4.3 on Ubuntu 16.04, produces one failing test:
> >
> > This is because the glob() function in the older GNU libc has a bug
> > related to handling symlinks correctly.
>
> Gnulib provides a workaround against this bug in its 'glob' module
> [1].  But GNU make ships a copy of glob.c from 1999 :-(

Yes, I know.

Unfortunately, attempting to pull gnulib's glob/fnmatch implementation
also pulls in a bajillion other gnulib modules, and causes lots of
problems for GNU make on non-POSIX systems like Windows (where we
support native builds without any Cygwin/MinGW support) and VMS
(obviously we have no sed/etc. tools there).

I have on my list to tackle this issue but it's daunting.

You may have noticed my emails to the gnulib list asking about doing
things in ways that reduce the number of native tools needed for the
configure step ... this is one of the main reasons why.


Reply | Threaded
Open this post in threaded view
|

Re: make-4.3: wildcard test #9 fails

Gnu - Make - Bugs mailing list
> On Sun, 2020-04-05 at 16:19 +0200, Bruno Haible wrote:
> > > > Building GNU make 4.3 on Ubuntu 16.04, produces one failing test:
On filesystems which don't populate dirent::d_type (or on old glibc) test 7
also fails.

I just asked gnulib mailing list to look at a patch.
https://lists.gnu.org/archive/html/bug-gnulib/2020-04/msg00008.html.

On Sun, Apr 05, 2020 at 11:07:31AM -0400, Paul Smith wrote:
> I have on my list to tackle this issue but it's daunting.
That would be good if the fix cited above was applied before you sync with
gnulib.

regards, Dmitry