summaryrefslogtreecommitdiff
path: root/win32
AgeCommit message (Collapse)Author
2021-12-02[MSWin] Stop passing non-numeric string to `exit` commandNobuyoshi Nakada
2021-11-26[MSWin] Replace -Zi in DEBUGFLAGS with -Z7 to suppress warningsNobuyoshi Nakada
2021-11-24No need to link and install .pdb anymoreAlan Wu
With /Z7, no .pdb file is generated, so trying to link it during build fails on my machine even though it's okay on CI. By the way, in my local testing, no .pdb is generated in cwd at runtime even without the /Fd option. I guess we can pass it just in case. Notes: Merged: https://github.com/ruby/ruby/pull/5058
2021-11-24MJIT MSVC: Use /Z7 to avoid PDB write raceAlan Wu
With MSVC, MJIT uses the /Fd option on an installed PDB file when compiling. Combined with the /Zi option, this causes the PDB file to be modified every time MJIT compiles. Concurrent modifications to the same PDB file is known to cause problems. MSVC even has an option, /FS to deal with it. When running MJIT tests in parallel, sometimes this leads to corrupting the PDB file, breaking subsequent compilations. On CI, we get messages like these: rb_mjit_header-3.1.0.pdb is not the pdb file that was used when this precompiled header was created, recreate the precompiled header. To avoid this race, use the /Z7 option when building precompiled header, which asks the compiler to put debug info into the .obj file, eliminating the need for pointing the compiler to the PDB file for the precompiled header. The /Fd option is changed to use a unique path based on the name of the dll output. Because of the /debug linker flag, we generate a PDB file at runtime even though we use /Z7. There are a couple things missing from this change: - Because MJIT uses the interpreter's CFLAGS build option and that contains /Zi, putting /Z7 at the end leads to a build warning - With /Z7 no PDB file is built anymore, so the code for installing the PDB file can be removed There might also be other problems with this change I haven't noticed while developing this change using Github Actions. I don't have a Windows dev environment with Visual Studio so I can't finish this change easily. Please feel free to complete this change if it makes sense. Note: - On master, you can see the PDB file changing with llvm-pdbutil or a simple checksum. There is an age field in the file that is bumped - I'm not sure if users can specify compile flags on MSVC. If they couldn't, maybe it's easier to change MJIT's compile options to use /Z7 when building the precompile header. - MJIT could pass different options at runtime to generate fewer files. Right now it inherits the /DEBUG linker flag which causes a PDB file to be generated at runtime even though /Z7 is used. Relevant MSVC docs: - [/Zi,/Z7](https://docs.microsoft.com/en-us/cpp/build/reference/z7-zi-zi-debug-information-format?view=msvc-160) - [/DEBUG](https://docs.microsoft.com/en-us/cpp/build/reference/debug-generate-debug-info?view=msvc-160) - [/FS](https://docs.microsoft.com/en-us/cpp/build/reference/fs-force-synchronous-pdb-writes?view=msvc-160) Notes: Merged: https://github.com/ruby/ruby/pull/5058
2021-10-30Select including thread impl file at config timeYuta Saito
Notes: Merged: https://github.com/ruby/ruby/pull/5043
2021-10-20Remove the scraperAaron Patterson
Now that we're using the jit function entry point, we don't need the scraper. Thank you for your service, scraper. ❤️
2021-10-20Yet Another Ruby JIT!Jose Narvaez
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
2021-10-20Refactor uJIT code into more files for readabilityMaxime Chevalier-Boisvert
2021-10-20Try to fix Windows buildAlan Wu
2021-10-04Clang never evaluates expr in `__builtin_assume`xtkoba
Notes: Merged: https://github.com/ruby/ruby/pull/4446
2021-10-02[Win32] Prefer Cryptography Next Generation APINobuyoshi Nakada
[BCryptGenRandom] is available since Windows Vista / Windows Server 2008. Regarding [CryptGenRandom]: > This API is deprecated. New and existing software should start > using Cryptography Next Generation APIs. Microsoft may remove > this API in future releases. [BCryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom [CryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptgenrandom Notes: Merged: https://github.com/ruby/ruby/pull/4924
2021-09-24Reminders of the Windows versions each API is available [ci skip]Nobuyoshi Nakada
2021-09-21Ripper source on mswinNobuyoshi Nakada
* Get rid of command substitution for cmd.exe. * Separate RM1 command to remove single file sans directory.
2021-09-20MINGW: _WIN64 is not defined on i386-mingw32 + ucrt.xtkoba (Tee KOBAYASHI)
Notes: Merged: https://github.com/ruby/ruby/pull/4599
2021-09-20MINGW: Fix build error on Windows UCRTxtkoba (Tee KOBAYASHI)
Notes: Merged: https://github.com/ruby/ruby/pull/4599
2021-08-25Add missing empty macro [ci skip]Nobuyoshi Nakada
2021-08-15[Win32] put a space before configure options [Bug #17588]Nobuyoshi Nakada
Not to be concatenated with the preceding `--with-`* option.
2021-08-07Group commands on GitHub ActionsNobuyoshi Nakada
2021-08-05Revert "Removed extinit.o from main programs"Yusuke Endoh
This reverts commit ac86fcbfd0bab8667d277aa575bc5b81e5135d3c. This change broke "--disable-shared --with-static-linked-ext".
2021-07-06Set ENCSTATIC in rbconfig.rb [Bug #17929]Nobuyoshi Nakada
2021-07-04[Win32] Fix assembler name when cross compilingNobuyoshi Nakada
Hostx64\x86\nmake.exe sets AS to ml64 which targets amd64, but we need assembler for x86.
2021-07-03Remove copy coroutine build rule.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/4623
2021-07-03Removed extinit.o from main programsNobuyoshi Nakada
It is included in libruby, which is linked into the main programs.
2021-06-23Add parentheses to avoid pointless conditionJeremy Evans
Pointed out by xtkoba (Tee KOBAYASHI). Fixes [Bug #17946] Notes: Merged: https://github.com/ruby/ruby/pull/4575
2021-06-09[Win32] fixed PACKED_STRUCT_UNALIGNED on x86Nobuyoshi Nakada
Use MACHINE for x86 CPU family, ARCH is CPU model name (i386) and cannot be x86.
2021-05-17[Win32] long path name support [Bug #12551]Gabriel Nagy
Implement long path support on Windows by applying Microsoft's recommended application manifest. To make this work on both Visual C++ and MinGW, include the manifest as a resource when generating the resource files. This way it will be embedded into the executables generated by both compilers. It's important for the manifest resource to have ID 1, otherwise GCC will embed a default manifest. Note that in addition to this, the user needs to have [long paths enabled] either by modifying the registry or by enabling a group policy. [long paths enabled]: https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/4505 Merged-By: nobu <nobu@ruby-lang.org>
2021-05-04`_MSC_VER` may not be definedxtkoba
Notes: Merged: https://github.com/ruby/ruby/pull/4453
2021-04-10win32: fix RUBY_RELEASE_DATE in MakefileNobuyoshi Nakada
As it is overridden by the definition in common.mk, instead define YEAR, MONTH and DAY which are used there. This macro is useful for daily build&installation by the combination with "relative-load", for example: ```sh $ ./configure --prefix=/. --enable-load-relative \ --with-destdir='$(HOME)/.rbenv/versions/$(RUBY_RELEASE_DATE)' ``` This can install images usable by rbenv per days.
2021-03-17Remove unused DEFAULT_KCODEKazuhiro NISHIYAMA
2021-03-08Increment global variables atomicallyNobuyoshi Nakada
2021-03-08Make vm_exit_handler installation MT-safeNobuyoshi Nakada
2021-03-08Make uenvarea thread exclusiveNobuyoshi Nakada
2021-03-08Make the flag in thread_exclusive uniqueNobuyoshi Nakada
2021-03-08Enclose crtitical sections in `thread_exclusive` blockNobuyoshi Nakada
2021-02-24Revert "Enclose crtitical sections in `thread_exclusive` block"Nobuyoshi Nakada
19cc24b34b0490b7c2779eec521fe0089e05f183 and fixups.
2021-02-23Use the system getenv in setup_debug_logNobuyoshi Nakada
As ruby_set_debug_option() is called before ruby_sysinit(), CRITICAL_SECTIONs are not initialized yet.
2021-02-23Fixed commit miss at 41eb4fbf86e7ae9c9ff993e07a19fa44eb74be9bNobuyoshi Nakada
2021-02-23Make uenvarea thread exclusiveNobuyoshi Nakada
2021-02-23Fixed commit miss at 19cc24b34b0490b7c2779eec521fe0089e05f183Nobuyoshi Nakada
2021-02-23Constified possible dataNobuyoshi Nakada
2021-02-23Enclose crtitical sections in `thread_exclusive` blockNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4214
2021-02-23added mutexes for socket and connection lists on win32Andrew Aladjev
Notes: Merged: https://github.com/ruby/ruby/pull/4212
2021-02-22Expand final path name buffer for namespace prefixNobuyoshi Nakada
As final path name includes the namespace prefix, so expand room for it in path name buffer. Notes: Merged: https://github.com/ruby/ruby/pull/4210
2021-02-22Search subclasses from constantsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4209
2021-02-20MSys is a variant of CygwinNobuyoshi Nakada
2021-02-20[Win32] Fixed preprocessed file pathNobuyoshi Nakada
Output preprocessed files under the corresponding directory to the source files.
2021-02-19Fix link msdn.microsoft.com (#4202)S.H
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-02-20Fixed fallback ENABLE_VIRTUAL_TERMINAL_PROCESSING value [Bug #17639]YO4 (Yoshinao Muramatsu)
2021-02-14Fixed codepage for utime [Bug #17626]xtkoba (Tee KOBAYASHI)
Should use the given codepage argument. Co-Authored-By: Nobuyoshi Nakada <nobu@ruby-lang.org>
2021-01-27win32/win32.c:getcwd_value: delete OBJ_TAINT卜部昌平
Makes no sense any longer. Notes: Merged: https://github.com/ruby/ruby/pull/4100