r-windows / docs

Documentation for rtools40 and R for Windows
31 stars 10 forks source link

package from source installation fails with cygheap base mismatch error #31

Open drag05 opened 2 years ago

drag05 commented 2 years ago

Updating packages from source suddenly started failing yesterday. Example, updating package 'cli' from source gives the following error:

"C:/rtools40/mingw64/bin/"gcc  -I"C:/R/R-4.1.1/include" -DNDEBUG          -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c ansi.c -o ansi.o
      0 [main] make (8644) C:\rtools40\usr\bin\make.exe: *** fatal error - cygheap base mismatch detected - 0xD66408/0xF96408

Following the advice listed under error does not help:

  1. Using installr::install.Cygwin(bit=64), I have installed Cygwin64 on my machine for the first time and still does not work.
  2. Downloaded the cygwin1.dll (64bit version) and replaced the existing one in C:/cygwin/bin folder as specified and still does not work.

Please advise!

sessionInfo()

R version 4.1.1 (2021-08-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19043)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.1.1 tools_4.1.1   

This is the first time when this happens.

OS: Windows 10 version 21H1 build 19043.1320

Error happens in both R Studio and R Console.

R Studio: 2021.09.0 Build 351

Thank you!

jeroen commented 2 years ago

Please make sure the rtools40 usr/bin directory is first on the PATH as explained on the rtools homepage.

Op zo 31 okt. 2021 19:50 schreef Dragos Bandur @.***>:

Updating packages from source suddenly started failing yesterday. Example, updating package 'cli' from source gives the following error:

C:/rtools40/mingw64/bin/"g++ -std=gnu++11 -I"C:/R/R-4.1.1/include" -DNDEBUG -I'C:/R/R-4.1.1/library/Rcpp/include' -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c RcppExports.cpp -o RcppExports.o 1 [main] make (12340) C:\rtools40\usr\bin\make.exe: *** fatal error - cygheap base mismatch detected - 0xFC6408/0xF96408

Following the advice listed under error does not help: I have installed Cygwin64 on my machine for the first time and still does not work. Downloaded the cygwin1.dll (64bit version) and replaced the existing one in C:/cygwin/bin folder as specified and still does not work.

Please advise!

sessionInfo()

R version 4.1.1 (2021-08-10) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 19043)

Matrix products: default

locale: [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C [5] LC_TIME=English_United States.1252

attached base packages: [1] stats graphics grDevices utils datasets methods base

loaded via a namespace (and not attached): [1] compiler_4.1.1 tools_4.1.1

This is the first time when this happens.

OS: Windows 10 version 21H1 build 19043.1320

Thank you!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/r-windows/docs/issues/31, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABUZ7Z5ITRY7THT2MZGVK3UJWMXTANCNFSM5HCUPTPQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

drag05 commented 2 years ago

@jeroen Thank you for your time! The rtools\...\bin directory was the first on the PATH, I had forgotten to mention this in my post. Also: do I really need to have Cygwin installed? I do not use it at all and installing from source worked before its installation.
Could it be that a sneaky Windows 10 update caused this? Thank you! P.S. Just in case: I have run DISM and sfc utilities and came up with no violations found.

jeroen commented 2 years ago

You should not install cygwin or msys2 separately, everything is included with rtools40.

Op ma 1 nov. 2021 00:17 schreef Dragos Bandur @.***>:

@jeroen https://github.com/jeroen Thank you for your time! The rtools...\bin directory was the first on the PATH, I had forgotten to mention this in my post. Also: do I really need to have Cygwin installed? I do not use it at all and installing from source worked before its installation. Could it be that a sneaky Windows 10 update caused this? Thank you!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/r-windows/docs/issues/31#issuecomment-955820806, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABUZ75SL6ROG2MNTQWO7ALUJXMBBANCNFSM5HCUPTPQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

drag05 commented 2 years ago

@jeroen I have uninstalled Cygwin - quite a pain! Returning to the main issue: is there any foreseeable solution to the cygheap base mismatch? Thank you! UPDATE: I have searched for cygwin1.dll on my computer and been unable to find it anywhere. The cygheap error however, mentions it. I wonder why.

drag05 commented 2 years ago

@jeroen Solved: switching "Force Randomization of Images (Mandatory ASLR)" to OFF in "Windows10\Security\App&Browser Control\Exploit protection" solved the issue for me. It does not address the root cause though.

Moodjbow commented 2 years ago

@drag05 turning OFF ASLR works also for me but I cannot leave my computer vulnerable this way. This technology is 15 years old now, and still some binaries are not ready for that. @jeroen I have tried both Rtools40 and Rtools42: it starts already with the MSYS2 bash erroring "Could not fork child process [...] DLL rebasing may be required" (and no, rebaseall ends up also with "forked process died unexpectedly" error) Could building rtools with the dynamicbase and high entropy (64-bit ALSR) flags help?

drag05 commented 2 years ago

@Moodjbow I am well aware of that! I think I will just ignore or just stop installing from source. I am on ignore mode currently.

Maybe this will help me switch.

The above article states that the ASLR can be turned off program-by-program. I will try for mingw64 only until Rtools becomes ASLR-aware.

@jeroen Turning off ASLR for mingw64 only did not work. The initial error popped up. What other exe(s) in Rtools should I add to turn off ASLR by-program? Please advise, thank you!