problem compiling R package processx

Markus Hoenicka markus.hoenicka@mhoenicka.de
Wed Apr 29 12:19:50 GMT 2020


Hi,

I've installed Cygwin on a fresh Windows 10 system yesterday. R 3.6.3.1 
runs ok, and installing some of the CRAN packages that I need also works 
ok. Trying to install the processx package (current version 3.4.2) 
throws a bunch of errors though:

$ R
[...]
> install.packages("processx")
[...]
* installing *source* package ‘processx’ ...
** Paket ‘processx’ erfolgreich entpackt und MD5 Summen überprüft
** using staged installation
** libs
gcc -ggdb -O2 -pipe -Wall -Werror=format-security 
-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong 
--param=ssp-buffer-size=4 -std=gnu99 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/build=/usr/src/debug/R-3.6.3-1 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/src/R-3.6.3=/usr/src/debug/R-3.6.3-1 
  -Wall tools/px.c -o tools/px
gcc -ggdb -O2 -pipe -Wall -Werror=format-security 
-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong 
--param=ssp-buffer-size=4 -std=gnu99 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/build=/usr/src/debug/R-3.6.3-1 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/src/R-3.6.3=/usr/src/debug/R-3.6.3-1 
  supervisor/supervisor.c supervisor/utils.c \
       -o supervisor/supervisor
gcc -I"/usr/lib/R/include" -DNDEBUG       -ggdb -O2 -pipe -Wall 
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong 
--param=ssp-buffer-size=4 -std=gnu99 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/build=/usr/src/debug/R-3.6.3-1 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/src/R-3.6.3=/usr/src/debug/R-3.6.3-1 
  -c base64.c -o base64.o
gcc -I"/usr/lib/R/include" -DNDEBUG       -ggdb -O2 -pipe -Wall 
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong 
--param=ssp-buffer-size=4 -std=gnu99 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/build=/usr/src/debug/R-3.6.3-1 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/src/R-3.6.3=/usr/src/debug/R-3.6.3-1 
  -c client.c -o client.o
gcc -I"/usr/lib/R/include" -DNDEBUG       -ggdb -O2 -pipe -Wall 
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong 
--param=ssp-buffer-size=4 -std=gnu99 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/build=/usr/src/debug/R-3.6.3-1 
-fdebug-prefix-map=/cygdrive/d/cyg_pub/devel/R/R-3.6.3-1.x86_64/src/R-3.6.3=/usr/src/debug/R-3.6.3-1 
  -c errors.c -o errors.o
gcc -shared -L"/usr/lib/R/lib"  -o client.dll base64.o client.o errors.o
/usr/lib/gcc/x86_64-pc-cygwin/9.3.0/../../../../x86_64-pc-cygwin/bin/ld: 
base64.o: in function `processx_base64_encode':
/tmp/RtmpyuAKvT/R.INSTALL2dfd356fee1/processx/src/base64.c:79: undefined 
reference to `RAW'
/tmp/RtmpyuAKvT/R.INSTALL2dfd356fee1/processx/src/base64.c:79:(.text+0x14): 
relocation truncated to fit: R_X86_64_PC32 against undefined symbol 
`RAW'
/usr/lib/gcc/x86_64-pc-cygwin/9.3.0/../../../../x86_64-pc-cygwin/bin/ld: 
/tmp/RtmpyuAKvT/R.INSTALL2dfd356fee1/processx/src/base64.c:80: undefined 
reference to `LENGTH'
/tmp/RtmpyuAKvT/R.INSTALL2dfd356fee1/processx/src/base64.c:80:(.text+0x1f): 
relocation truncated to fit: R_X86_64_PC32 against undefined symbol 
`LENGTH'
/usr/lib/gcc/x86_64-pc-cygwin/9.3.0/../../../../x86_64-pc-cygwin/bin/ld: 
/tmp/RtmpyuAKvT/R.INSTALL2dfd356fee1/processx/src/base64.c:82: undefined 
reference to `Rf_allocVector'
[...and so forth...]

This makes me think that R does not properly pick up its own include 
files in /lib/R/include/ as Rinternals.h seems to define the functions 
or symbols that cause the errors above. The source file base64.c 
includes Rinternals.h, that file exists, and it is readable. Did I miss 
something?

regards,
Markus


-- 
Markus Hoenicka
http://www.mhoenicka.de
AQ score 38


More information about the Cygwin mailing list