В Wed, 28 Jun 2023 13:25:21 +0530 Venky Vulpine <venkyvulp...@gmail.com> пишет:
> After running " pacman -S mingw-w64-i686-gcc", it installed 15 > packages. Then I ran the " make all recommended MULTI=32" command. > But it still shows the same issue. Here's what I've been able to find out. In addition to mingw-w64-i686-gcc, you also need to install the following packages: mingw-w64-i686-gcc-fortran mingw-w64-i686-bzip2 mingw-w64-i686-xz mingw-w64-i686-pcre2 mingw-w64-i686-icu mingw-w64-i686-curl mingw-w64-i686-libgcrypt mingw-w64-i686-libpng mingw-w64-i686-libjpeg mingw-w64-i686-libtiff (Type pacman -Sy followed by the package names, space-separated.) When setting the $PATH, use the following prefix instead of x86_64-w64-mingw32.static.posix: export PATH=/mingw32/bin:"$PATH" This gets you most of the way to start compiling R, except there are quite a few things that the compiler doesn't like about the code for some reason. They can be patched around using terrible hacks, making me wonder how this worked in the past. I also had to disable the tcltk package because the Tcl bundle is understandably 64-bit only. Did I forget another setting that enables 32-bit compatibility? The resulting command line to compile R is as follows: make MULTI=32 BUILD_TCLTK=no all recommended \ ICU_LIBS="-licuin -licuuc -licudt -lstdc++" \ CURL_LIBS="-lcurl -lbcrypt -lzstd -lssl -lssh2 -lgcrypt -lcrypto -lgdi32 -lz -lws2_32 -lgdi32 -lcrypt32 -lidn2 -lunistring -liconv -lgpg-error -lwldap32 -lwinmm" And I had to apply the following patches: Index: src/extra/intl/dcigettext.c =================================================================== --- src/extra/intl/dcigettext.c (revision 84610) +++ src/extra/intl/dcigettext.c (working copy) @@ -157,7 +157,7 @@ # else /* This is naughty if already declared, but harmful on Win64 */ # ifndef _WIN64 -char *getcwd (char *, size_t); +//char *getcwd (char *, size_t); # endif # endif # endif Index: src/extra/trio/compat.c =================================================================== --- src/extra/trio/compat.c (revision 84610) +++ src/extra/trio/compat.c (working copy) @@ -1,5 +1,6 @@ /* Compatibility wrapper for R */ -#include <stdio.h> +//#include <stdio.h> +typedef struct FILE_ FILE; #include <stdlib.h> #include <stdarg.h> int trio_printf(const char *format, ...); Index: src/gnuwin32/front-ends/graphappmain.c =================================================================== --- src/gnuwin32/front-ends/graphappmain.c (revision 84610) +++ src/gnuwin32/front-ends/graphappmain.c (working copy) @@ -15,7 +15,7 @@ { extern void AppMain(int argc, char **argv); -#ifdef _W64 +#if 0 __declspec(dllimport) extern int __argc; __declspec(dllimport) extern char **__argv; @@ -22,11 +22,11 @@ GA_startgraphapp(Instance, PrevInstance, CmdShow); AppMain(__argc, __argv); #else - __declspec(dllimport) extern int _argc; - __declspec(dllimport) extern char **_argv; + extern int __argc; + extern char **__argv; GA_startgraphapp(Instance, PrevInstance, CmdShow); - AppMain(_argc, _argv); + AppMain(__argc, __argv); #endif return 0; } Index: src/main/main.c =================================================================== --- src/main/main.c (revision 84610) +++ src/main/main.c (working copy) @@ -798,7 +798,7 @@ extern void _invoke_watson(const wchar_t*, const wchar_t*, const wchar_t*, unsigned int, uintptr_t); - +#if 0 static void invalid_parameter_handler_watson( const wchar_t* expression, const wchar_t* function, @@ -809,6 +809,7 @@ _invoke_watson(expression, function, file, line, reserved); } #endif +#endif void setup_Rmainloop(void) { @@ -823,8 +824,10 @@ char *p = getenv("_R_WIN_CHECK_INVALID_PARAMETERS_"); if (p && StringTrue(p)) _set_invalid_parameter_handler(invalid_parameter_handler_abort); +#if 0 else if (p && !strcmp(p, "watson")) _set_invalid_parameter_handler(invalid_parameter_handler_watson); +#endif } #endif I don't like these patches one bit and I'm sorry to post them here, but I did get a 32-bit R.exe in the end. It seems to install packages (from source) and run example code successfully. -- Best regards, Ivan
______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.