summaryrefslogtreecommitdiff
path: root/win32/Makefile.sub
AgeCommit message (Collapse)Author
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-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-21Ripper source on mswinNobuyoshi Nakada
* Get rid of command substitution for cmd.exe. * Separate RM1 command to remove single file sans directory.
2021-08-25Add missing empty macro [ci skip]Nobuyoshi Nakada
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-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-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-03-17Remove unused DEFAULT_KCODEKazuhiro NISHIYAMA
2021-02-20[Win32] Fixed preprocessed file pathNobuyoshi Nakada
Output preprocessed files under the corresponding directory to the source files.
2020-12-16Made LARGEFILE_SUPPORT mandatoryNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3914
2020-12-12Removed obsolete autoconf checksNobuyoshi Nakada
Use regular `AC_CHECK_MEMBERS` instead of: * `AC_STRUCT_ST_BLKSIZE` * `AC_STRUCT_ST_BLOCKS` * `AC_STRUCT_ST_RDEV` Notes: Merged: https://github.com/ruby/ruby/pull/3890
2020-12-12Signal handler type should be voidNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3889
2020-12-12Omit checks for C89 standard or laterNobuyoshi Nakada
Now we require C99, these features available of course. * prototypes * stdarg prototypes * token pasting * stringization * string literal concatenation Notes: Merged: https://github.com/ruby/ruby/pull/3889
2020-11-10Removed canonicalization for mathnNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3691
2020-08-27DEPRECATED_TYPE: is deprecated卜部昌平
Nobody uses this macro any longer. Notes: Merged: https://github.com/ruby/ruby/pull/3341
2020-06-04No GITPULLOPTIONS by defaultNobuyoshi Nakada
To honor the environment variable, keep GITPULLOPTIONS unset by default, and appended the option to VCSUP.
2020-04-11Support version ranges for MSVC [Feature #16763]Nobuyoshi Nakada
2020-04-08[win32] Removed useless macro name that isn't expanded in `#error`Nobuyoshi Nakada
2020-04-05Added tooldir variableNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3003
2020-03-05[win32] get rid of redefinition of reserved macroNobuyoshi Nakada
``` warning C4117: macro name '_INTEGRAL_MAX_BITS' is reserved, '#define' ignored ```
2020-02-20avoid defining inline卜部昌平
Recent (since 2012 maybe?) MSVC ships a header named xkeycheck.h, which (kindly!) aborts compilation on redefinition of C++ keywords. Let's not define this in case of C++.
2020-01-31support C++ std::nullptr_t卜部昌平
C++ keyword `nullptr` represents a null pointer (note also that NULL is an integer in C++ due to its design flaw). Its type is `std::nullptr_t`, defined in <cstddef> standard header. Why not support it when the backend implementation can take a null pointer as an argument.
2019-12-11remove prelude.cKoichi Sasada
prelude.c is an automatically generated file by template/prelude.c.tmpl. However it does not contain any required functions. So remove it from dependency. Also miniprelude.c is included by mini_builtin.c and does not need to make miniprelude.o. Notes: Merged: https://github.com/ruby/ruby/pull/2735
2019-11-26Fix `$(RMALL) -r` on WindowsNAKAMURA Usaku
`set recursive=1 &` sets `1 ` to `recursive`, not `1`.
2019-11-20Turn C4047 warning into errorNobuyoshi Nakada
Warned at making precompiled header on mswin. ``` building rb_mjit_header-2.7.0.pch vm.c d:\a\ruby\ruby\src\vm_args.c(1117): warning C4047: '=': 'const rb_callable_method_entry_t *' differs in levels of indirection from 'int' rb_mjit_header-2.7.0.pch updated ```
2019-11-10Define NULLCMD as printing NUL [Bug #16331]Nobuyoshi Nakada
2019-11-10Define NULLCMD as an empty label [Bug #16331]Nobuyoshi Nakada
2019-11-09Fix builtin scirpt pathsNobuyoshi Nakada
Do not search builtin scripts by using VPATH, to get rid of weird nmake VPATH. Notes: Merged: https://github.com/ruby/ruby/pull/2665
2019-11-08Add VPATH to rbinc rule for nmakeNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2660
2019-11-05Share test-bundled-gems-run in common.mkNobuyoshi Nakada
2019-09-18[EXPERIMENTAL] MakeMakefile::CXX for C++Nobuyoshi Nakada
2019-09-10fix CentOS 6 compile error卜部昌平
See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos6/ruby-master/log/20190910T003005Z.fail.html.gz
2019-09-06Try to fix compile error on win32Kazuhiro NISHIYAMA
https://github.com/ruby/ruby/runs/213995386#step:7:810 ``` cxxanyargs.cpp C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt\corecrt_malloc.h(54): error C2485: '__restrict': unrecognized extended attribute ```
2019-07-18Improve build process and coroutine implementation selection.Samuel Williams
2019-06-19Remove IA64 support.Samuel Williams
2019-05-10No longer svn & git-svn are usedNobuyoshi Nakada
2019-04-28Makefiles need to be indented by tabsNobuyoshi Nakada
2019-04-21Remove debug linesusa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21Show/unshow executing command as specified by `V`usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-13Parenthesize `for` to ignore errorsnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e