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

Sébastien Villemot sebastien at debian.org
Thu Sep 18 12:54:26 UTC 2014


Dear Michael,

Le dimanche 18 mai 2014 à 16:28 +0100, Michael Tautschnig a écrit :
> 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.

I have uploaded a new major version of julia that embeds a newer version
of libuv. Can you please run your test on the new package, and tell me
if the problem persists? (I don't have access to your research
compiler).

Concerning the embedded copy, I agree with you that it's sad. Julia has
diverged a little from the official libuv, which is why I currently
cannot use the libuv package. Upstream is aware of the issue, and seems
to have plan to deal with it.

Thanks,

-- 
 .''`.    Sébastien Villemot
: :' :    Debian Developer
`. `'     http://www.dynare.org/sebastien
  `-      GPG Key: 4096R/381A7594

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-julia-devel/attachments/20140918/e1f1d993/attachment.sig>


More information about the Pkg-julia-devel mailing list