Can't install rtracklayer - make: *** [ucsc/os.o] Error 1
0
0
Entering edit mode
creasyt • 0
@creasyt-8657
Last seen 6.0 years ago
United States

Hi,

I'm unable to install rtracklayer because of some error regarding ucsc/os.o. I've attached a snippet of the installation routine with the error reported at the bottom. I've tried to install earlier version including the newest (1.40.2) but all give me the same error. I'm installing on CentOS 7 so perhaps there is a system library that is missing but I don't think so. 

 

Has anyone had similar problems with a resolution?

 

-todd

 

 

In file included from /apps/anaconda3/include/tclUnixPort.h:158:0,
                 from /apps/anaconda3/include/tclPort.h:23,
                 from /apps/anaconda3/include/tclInt.h:36,
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:35:13: error: conflicting types for 'execl'
 extern int  execl(const char *path, ...);
             ^~~~~
In file included from ucsc/common.h:44:0,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/unistd.h:570:12: note: previous declaration of 'execl' was here
 extern int execl (__const char *__path, __const char *__arg, ...)
            ^~~~~
In file included from /apps/anaconda3/include/tclUnixPort.h:158:0,
                 from /apps/anaconda3/include/tclPort.h:23,
                 from /apps/anaconda3/include/tclInt.h:36,
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:36:13: error: conflicting types for 'execle'
 extern int  execle(const char *path, ...);
             ^~~~~~
In file included from ucsc/common.h:44:0,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/unistd.h:565:12: note: previous declaration of 'execle' was here
 extern int execle (__const char *__path, __const char *__arg, ...)
            ^~~~~~
In file included from /apps/anaconda3/include/tclUnixPort.h:158:0,
                 from /apps/anaconda3/include/tclPort.h:23,
                 from /apps/anaconda3/include/tclInt.h:36,
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:37:13: error: conflicting types for 'execlp'
 extern int  execlp(const char *file, ...);
             ^~~~~~
In file included from ucsc/common.h:44:0,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/unistd.h:581:12: note: previous declaration of 'execlp' was here
 extern int execlp (__const char *__file, __const char *__arg, ...)
            ^~~~~~
In file included from /apps/anaconda3/include/tclUnixPort.h:158:0,
                 from /apps/anaconda3/include/tclPort.h:23,
                 from /apps/anaconda3/include/tclInt.h:36,
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:38:13: error: conflicting types for 'execv'
 extern int  execv(const char *path, char **argv);
             ^~~~~
In file included from ucsc/common.h:44:0,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/unistd.h:560:12: note: previous declaration of 'execv' was here
 extern int execv (__const char *__path, char *__const __argv[])
            ^~~~~
In file included from /apps/anaconda3/include/tclUnixPort.h:158:0,
                 from /apps/anaconda3/include/tclPort.h:23,
                 from /apps/anaconda3/include/tclInt.h:36,
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:39:13: error: conflicting types for 'execve'
 extern int  execve(const char *path, char **argv, char **envp);
             ^~~~~~
In file included from ucsc/common.h:44:0,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/unistd.h:548:12: note: previous declaration of 'execve' was here
 extern int execve (__const char *__path, char *__const __argv[],
            ^~~~~~
In file included from /apps/anaconda3/include/tclUnixPort.h:158:0,
                 from /apps/anaconda3/include/tclPort.h:23,
                 from /apps/anaconda3/include/tclInt.h:36,
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:46:13: error: conflicting types for 'getgroups'
 extern int  getgroups(int bufSize, int *buffer);
             ^~~~~~~~~
In file included from /apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/features.h:356:0,
                 from /apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/stdio.h:28,
                 from ucsc/common.h:30,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/bits/unistd.h:266:1: note: previous definition of 'getgroups' was here
 __NTH (getgroups (int __size, __gid_t __list[]))
 ^
In file included from /apps/anaconda3/include/tclUnixPort.h:158:0,
                 from /apps/anaconda3/include/tclPort.h:23,
                 from /apps/anaconda3/include/tclInt.h:36,
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:52:13: error: conflicting types for 'read'
 extern int  read(int fd, char *buf, size_t size);
             ^~~~
In file included from /apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/unistd.h:1157:0,
                 from ucsc/common.h:44,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/bits/unistd.h:35:1: note: previous definition of 'read' was here
 read (int __fd, void *__buf, size_t __nbytes)
 ^~~~
In file included from /apps/anaconda3/include/tclUnixPort.h:158:0,
                 from /apps/anaconda3/include/tclPort.h:23,
                 from /apps/anaconda3/include/tclInt.h:36,
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:58:13: error: conflicting types for 'write'
 extern int  write(int fd, const char *buf, size_t size);
             ^~~~~
In file included from ucsc/common.h:44:0,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/unistd.h:363:16: note: previous declaration of 'write' was here
 extern ssize_t write (int __fd, __const void *__buf, size_t __n) __wur;
                ^~~~~
In file included from ucsc/os.c:6:0:
ucsc/osunix.c: In function 'listDirRegEx':
ucsc/osunix.c:143:11: warning: implicit declaration of function 'regcomp'; did you mean 'memcmp'? [-Wimplicit-function-declaration]
 int err = regcomp(&re, regEx, flags | REG_NOSUB);
           ^~~~~~~
           memcmp
ucsc/osunix.c:154:7: warning: implicit declaration of function 'regexec'; did you mean 'rexec'? [-Wimplicit-function-declaration]
  if (!regexec(&re, fileName, 0, NULL, 0))
       ^~~~~~~
       rexec
make: *** [ucsc/os.o] Error 1
ERROR: compilation failed for package ‘rtracklayer’
* removing ‘/apps/anaconda3/lib/R/library/rtracklayer’

rtracklayer • 966 views
ADD COMMENT
0
Entering edit mode

One can diagnose this to some extent. Versions of unistd.h files are found in two different locations

In file included from ...
                 ...
                 from /apps/anaconda3/include/regex.h:4,
                 from ucsc/osunix.c:17,
                 from ucsc/os.c:6:
/apps/anaconda3/include/compat/unistd.h:35:13: error: conflicting types for 'execl'

In file included from ucsc/common.h:44:0,
                 from ucsc/osunix.c:6,
                 from ucsc/os.c:6:
/apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/unistd.h:570:12: note: previous declaration of 'execl' was here

It seems like this would be solved if regex.h were in /apps/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include/ ; this seems like an anaconda problem and I don't know how to address it.

ADD REPLY
0
Entering edit mode

Good eye! Definitely an anaconda problem. I resolved it by symlinking to the correct version of regex.h. 

Thanks for spotting the problem.

ADD REPLY

Login before adding your answer.

Traffic: 539 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6