
On Fri, May 27, 2016 at 08:24:36AM -0600, Eric Blake wrote:
On 05/27/2016 04:33 AM, Michal Privoznik wrote:
Pushed under gnulib maintenance rule, since RC1 still hasn't been tagged.
Unfortunately, this breaks build on my system:
make[2]: Entering directory '/home/zippy/work/libvirt/libvirt.git/tests' CCLD virpcimock.la ../gnulib/lib/.libs/libgnu.a(canonicalize-lgpl.o): In function `rpl_canonicalize_file_name': /home/zippy/work/libvirt/libvirt.git/gnulib/lib/canonicalize-lgpl.c:400: multiple definition of `rpl_canonicalize_file_name' .libs/virpcimock_la-virpcimock.o:/home/zippy/work/libvirt/libvirt.git/tests/virpcimock.c:939: first defined here collect2: error: ld returned 1 exit status
Worse, I have no idea how to fix this.
Was this an incremental or a clean build? If incremental, I suspect that it may just be stale files left behind as gnulib shuffles things between normal use and testsuite use. I'm trying to reproduce now...
I have bisected it to: 54615b95ff238e235e806855efc46a9abad09f2e is the first bad commit commit 54615b95ff238e235e806855efc46a9abad09f2e Author: Paul Eggert <eggert@cs.ucla.edu> Date: Sat Feb 6 18:11:48 2016 -0800 misc: port better to gcc -fsanitize=address Removing the stray negation fixes it for me: diff --git a/m4/canonicalize.m4 b/m4/canonicalize.m4 index bfc9ebe..a1a4445 100644 --- a/m4/canonicalize.m4 +++ b/m4/canonicalize.m4 @@ -100,7 +100,7 @@ AC_DEFUN([gl_FUNC_REALPATH_WORKS], { char *name1 = realpath (".", NULL); char *name2 = realpath ("conftest.d//./..", NULL); - if (! (name1 && name2 && strcmp (name1, name2) != 0)) + if ((name1 && name2 && strcmp (name1, name2) != 0)) result |= 8; free (name1); free (name2); Jan