summaryrefslogtreecommitdiff
path: root/win32
Commit message (Collapse)AuthorAgeFilesLines
* [MSWin] Stop passing non-numeric string to `exit` commandNobuyoshi Nakada2021-12-021-2/+1
|
* [MSWin] Replace -Zi in DEBUGFLAGS with -Z7 to suppress warningsNobuyoshi Nakada2021-11-261-2/+3
|
* No need to link and install .pdb anymoreAlan Wu2021-11-241-4/+0
| | | | | | | | 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.
* MJIT MSVC: Use /Z7 to avoid PDB write raceAlan Wu2021-11-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Select including thread impl file at config timeYuta Saito2021-10-301-0/+4
|
* Remove the scraperAaron Patterson2021-10-201-1/+1
| | | | | Now that we're using the jit function entry point, we don't need the scraper. Thank you for your service, scraper. ❤️
* Yet Another Ruby JIT!Jose Narvaez2021-10-201-1/+1
| | | | Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
* Refactor uJIT code into more files for readabilityMaxime Chevalier-Boisvert2021-10-201-1/+1
|
* Try to fix Windows buildAlan Wu2021-10-201-1/+1
|
* Clang never evaluates expr in `__builtin_assume`xtkoba2021-10-041-2/+4
|
* [Win32] Prefer Cryptography Next Generation APINobuyoshi Nakada2021-10-021-1/+1
| | | | | | | | | | | | | [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
* Reminders of the Windows versions each API is available [ci skip]Nobuyoshi Nakada2021-09-241-0/+5
|
* Ripper source on mswinNobuyoshi Nakada2021-09-211-0/+1
| | | | | * Get rid of command substitution for cmd.exe. * Separate RM1 command to remove single file sans directory.
* MINGW: _WIN64 is not defined on i386-mingw32 + ucrt.xtkoba (Tee KOBAYASHI)2021-09-201-2/+2
|
* MINGW: Fix build error on Windows UCRTxtkoba (Tee KOBAYASHI)2021-09-201-1/+7
|
* Add missing empty macro [ci skip]Nobuyoshi Nakada2021-08-251-0/+1
|
* [Win32] put a space before configure options [Bug #17588]Nobuyoshi Nakada2021-08-151-11/+11
| | | | Not to be concatenated with the preceding `--with-`* option.
* Group commands on GitHub ActionsNobuyoshi Nakada2021-08-071-0/+8
|
* Revert "Removed extinit.o from main programs"Yusuke Endoh2021-08-051-3/+2
| | | | | | This reverts commit ac86fcbfd0bab8667d277aa575bc5b81e5135d3c. This change broke "--disable-shared --with-static-linked-ext".
* Set ENCSTATIC in rbconfig.rb [Bug #17929]Nobuyoshi Nakada2021-07-061-0/+1
|
* [Win32] Fix assembler name when cross compilingNobuyoshi Nakada2021-07-041-2/+8
| | | | | Hostx64\x86\nmake.exe sets AS to ml64 which targets amd64, but we need assembler for x86.
* Remove copy coroutine build rule.Samuel Williams2021-07-031-3/+0
|
* Removed extinit.o from main programsNobuyoshi Nakada2021-07-031-2/+3
| | | | It is included in libruby, which is linked into the main programs.
* Add parentheses to avoid pointless conditionJeremy Evans2021-06-231-1/+1
| | | | | | Pointed out by xtkoba (Tee KOBAYASHI). Fixes [Bug #17946]
* [Win32] fixed PACKED_STRUCT_UNALIGNED on x86Nobuyoshi Nakada2021-06-091-1/+1
| | | | | Use MACHINE for x86 CPU family, ARCH is CPU model name (i386) and cannot be x86.
* [Win32] long path name support [Bug #12551]Gabriel Nagy2021-05-172-1/+9
| | | | | | | | | | | | | | | | | | 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>
* `_MSC_VER` may not be definedxtkoba2021-05-041-1/+1
|
* win32: fix RUBY_RELEASE_DATE in MakefileNobuyoshi Nakada2021-04-101-3/+11
| | | | | | | | | | | | | 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.
* Remove unused DEFAULT_KCODEKazuhiro NISHIYAMA2021-03-171-2/+0
|
* Increment global variables atomicallyNobuyoshi Nakada2021-03-081-4/+4
|
* Make vm_exit_handler installation MT-safeNobuyoshi Nakada2021-03-081-3/+11
|
* Make uenvarea thread exclusiveNobuyoshi Nakada2021-03-081-22/+39
|
* Make the flag in thread_exclusive uniqueNobuyoshi Nakada2021-03-081-2/+3
|
* Enclose crtitical sections in `thread_exclusive` blockNobuyoshi Nakada2021-03-081-52/+39
|
* Revert "Enclose crtitical sections in `thread_exclusive` block"Nobuyoshi Nakada2021-02-241-72/+75
| | | | 19cc24b34b0490b7c2779eec521fe0089e05f183 and fixups.
* Use the system getenv in setup_debug_logNobuyoshi Nakada2021-02-231-1/+1
| | | | | As ruby_set_debug_option() is called before ruby_sysinit(), CRITICAL_SECTIONs are not initialized yet.
* Fixed commit miss at 41eb4fbf86e7ae9c9ff993e07a19fa44eb74be9bNobuyoshi Nakada2021-02-231-24/+26
|
* Make uenvarea thread exclusiveNobuyoshi Nakada2021-02-231-23/+32
|
* Fixed commit miss at 19cc24b34b0490b7c2779eec521fe0089e05f183Nobuyoshi Nakada2021-02-231-30/+22
|
* Constified possible dataNobuyoshi Nakada2021-02-231-8/+8
|
* Enclose crtitical sections in `thread_exclusive` blockNobuyoshi Nakada2021-02-231-28/+27
|
* added mutexes for socket and connection lists on win32Andrew Aladjev2021-02-231-40/+80
|
* Expand final path name buffer for namespace prefixNobuyoshi Nakada2021-02-221-4/+10
| | | | | As final path name includes the namespace prefix, so expand room for it in path name buffer.
* Search subclasses from constantsNobuyoshi Nakada2021-02-221-6/+3
|
* MSys is a variant of CygwinNobuyoshi Nakada2021-02-201-0/+3
|
* [Win32] Fixed preprocessed file pathNobuyoshi Nakada2021-02-201-4/+4
| | | | | Output preprocessed files under the corresponding directory to the source files.
* Fix link msdn.microsoft.com (#4202)S.H2021-02-191-1/+1
|
* Fixed fallback ENABLE_VIRTUAL_TERMINAL_PROCESSING value [Bug #17639]YO4 (Yoshinao Muramatsu)2021-02-201-2/+2
|
* Fixed codepage for utime [Bug #17626]xtkoba (Tee KOBAYASHI)2021-02-141-1/+1
| | | | | | Should use the given codepage argument. Co-Authored-By: Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/win32.c:getcwd_value: delete OBJ_TAINT卜部昌平2021-01-271-1/+0
| | | | Makes no sense any longer.