Chess
Chess

Reputation: 151

make failure on libuv AF_LINK | R, Cygwin

While installing packages in R as

install.packages('fs')
#the make requirement fails at the libuv_la-bsd-ifaddrs.lo 

$src/unix/pipe.c:249:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (addrlen >= *size) {
               ^~
 $ CC       src/unix/libuv_la-poll.lo
 $ CC       src/unix/libuv_la-process.lo
 $ CC       src/unix/libuv_la-signal.lo
 $ CC       src/unix/libuv_la-stream.lo
 $ CC       src/unix/libuv_la-tcp.lo
 $ CC       src/unix/libuv_la-thread.lo
 $ CC       src/unix/libuv_la-timer.lo
 $ CC       src/unix/libuv_la-tty.lo
 $ CC       src/unix/libuv_la-udp.lo
 $ CC       src/unix/libuv_la-cygwin.lo
 $ CC       src/unix/libuv_la-bsd-ifaddrs.lo
$ src/unix/bsd-ifaddrs.c: In function 'uv__ifaddr_exclude':
$ src/unix/bsd-ifaddrs.c:45:41: error: 'AF_LINK' undeclared (first use in this function); did you mean 'AF_HYLINK'?
     return (ent->ifa_addr->sa_family != AF_LINK);
                                         ^~~~~~~
                                         AF_HYLINK
$ src/unix/bsd-ifaddrs.c:45:41: note: each undeclared identifier is reported only once for each function it appears in
$ make[1]: *** [Makefile:2258: src/unix/libuv_la-bsd-ifaddrs.lo] Error 1

Cygwin setup includes libuv, libuv-devel, libvirt, libvirt-devel

Am i missing something or is there something i need to patch for this?

Upvotes: 0

Views: 311

Answers (1)

matzeri
matzeri

Reputation: 8496

the fs package is embedding a old version of libuv (1.18) the current Cygwin shared lib is based on 1.24 . The error you see was solved by a proper #ifdef in later versions.

What I do not understand is why fs is embedding libuv instead of using the present version.

So you can ping upstream to upgrade or you can replace the current version with latest vesion of libuv embedded and created a customer version of the fs source package.

Upvotes: 1

Related Questions