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(a)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