[Pkg-julia-devel] Bug#748573: Embedded code copy of libuv makes inconsistent use of _GNU_SOURCE

Michael Tautschnig mt at debian.org
Sun May 18 15:28:24 UTC 2014


Package: julia
Version: 0.2.1+dfsg-3
Usertags: goto-cc

During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder
and pbuilder) the build failed with the following error. Please note that we
use our research compiler tool-chain (using tools from the cbmc package), which
permits extended reporting on type inconsistencies at link time.

[...]
libtool: link: gcc -shared  -fPIC -DPIC  src/.libs/libuv_la-fs-poll.o src/.libs/libuv_la-inet.o src/.libs/libuv_la-uv-common.o src/.libs/libuv_la-version.o src/unix/.libs/libuv_la-async.o src/unix/.libs/libuv_la-core.o src/unix/.libs/libuv_la-dl.o src/unix/.libs/libuv_la-fs.o src/unix/.libs/libuv_la-getaddrinfo.o src/unix/.libs/libuv_la-loop-watcher.o src/unix/.libs/libuv_la-loop.o src/unix/.libs/libuv_la-pipe.o src/unix/.libs/libuv_la-poll.o src/unix/.libs/libuv_la-process.o src/unix/.libs/libuv_la-signal.o src/unix/.libs/libuv_la-stream.o src/unix/.libs/libuv_la-tcp.o src/unix/.libs/libuv_la-thread.o src/unix/.libs/libuv_la-threadpool.o src/unix/.libs/libuv_la-timer.o src/unix/.libs/libuv_la-tty.o src/unix/.libs/libuv_la-udp.o src/unix/.libs/libuv_la-linux-core.o src/unix/.libs/libuv_la-linux-inotify.o src/unix/.libs/libuv_la-linux-syscalls.o src/unix/.libs/libuv_la-proctitle.o   -lrt -lpthread -lnsl -ldl  -O2 -O2 -Wl,-z -Wl,relro   -Wl,-soname -Wl,libuv.so.11 -o .libs/libuv.so.11.0.0
file /usr/include/x86_64-linux-gnu/bits/socket2.h line 64: 

error: conflicting function declarations "recvfrom"
old definition in module fs-poll file /usr/include/x86_64-linux-gnu/bits/socket2.h line 64
signed long int (signed int __fd, void * restrict __buf, unsigned long int __n, signed int __flags, struct sockaddr * restrict __addr, unsigned int * restrict __addr_len)
new definition in module linux-syscalls file /usr/include/x86_64-linux-gnu/bits/socket2.h line 64
signed long int (signed int __fd, void * restrict __buf, unsigned long int __n, signed int __flags, union sockaddr __addr, unsigned int * restrict __addr_len)
Makefile:824: recipe for target 'libuv.la' failed
make[6]: *** [libuv.la] Error 64
make[6]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-julia/julia-0.2.1+dfsg/deps/libuv'
Makefile:616: recipe for target 'all' failed

This type conflict on parameter __addr is caused by an inconsistent use of
#define _GNU_SOURCE, which is present in deps/libuv/src/unix/linux-syscalls.c,
but not in deps/libuv/src/fs-poll.c.

Obviously this is a problem of libuv rather than julia - hooray for embedded
code copies. The packaged version in Debian does not suffer from the above
problem.

Best,
Michael

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 859 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-julia-devel/attachments/20140518/1fdf90ac/attachment.sig>


More information about the Pkg-julia-devel mailing list