aboutsummaryrefslogtreecommitdiffstats
path: root/win32/Makefile.sub
Commit message (Collapse)AuthorAgeFilesLines
* [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
|
* [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
* 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.
* Add missing empty macro [ci skip]Nobuyoshi Nakada2021-08-251-0/+1
|
* 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
|
* 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.
* [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.
* Remove unused DEFAULT_KCODEKazuhiro NISHIYAMA2021-03-171-2/+0
|
* [Win32] Fixed preprocessed file pathNobuyoshi Nakada2021-02-201-4/+4
| | | | | Output preprocessed files under the corresponding directory to the source files.
* Made LARGEFILE_SUPPORT mandatoryNobuyoshi Nakada2020-12-161-7/+0
|
* Removed obsolete autoconf checksNobuyoshi Nakada2020-12-121-1/+0
| | | | | | | Use regular `AC_CHECK_MEMBERS` instead of: * `AC_STRUCT_ST_BLKSIZE` * `AC_STRUCT_ST_BLOCKS` * `AC_STRUCT_ST_RDEV`
* Signal handler type should be voidNobuyoshi Nakada2020-12-121-1/+0
|
* Omit checks for C89 standard or laterNobuyoshi Nakada2020-12-121-3/+0
| | | | | | | | | | Now we require C99, these features available of course. * prototypes * stdarg prototypes * token pasting * stringization * string literal concatenation
* Removed canonicalization for mathnNobuyoshi Nakada2020-11-101-6/+0
|
* DEPRECATED_TYPE: is deprecated卜部昌平2020-08-271-1/+0
| | | | Nobody uses this macro any longer.
* No GITPULLOPTIONS by defaultNobuyoshi Nakada2020-06-041-1/+1
| | | | | To honor the environment variable, keep GITPULLOPTIONS unset by default, and appended the option to VCSUP.
* Support version ranges for MSVC [Feature #16763]Nobuyoshi Nakada2020-04-111-0/+6
|
* [win32] Removed useless macro name that isn't expanded in `#error`Nobuyoshi Nakada2020-04-081-1/+1
|
* Added tooldir variableNobuyoshi Nakada2020-04-051-4/+5
|
* [win32] get rid of redefinition of reserved macroNobuyoshi Nakada2020-03-051-0/+2
| | | | | | ``` warning C4117: macro name '_INTEGRAL_MAX_BITS' is reserved, '#define' ignored ```
* avoid defining inline卜部昌平2020-02-201-1/+1
| | | | | | 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++.
* support C++ std::nullptr_t卜部昌平2020-01-311-0/+3
| | | | | | | 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.
* remove prelude.cKoichi Sasada2019-12-111-5/+0
| | | | | | | | | 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.
* Fix `$(RMALL) -r` on WindowsNAKAMURA Usaku2019-11-261-1/+1
| | | | `set recursive=1 &` sets `1 ` to `recursive`, not `1`.
* Turn C4047 warning into errorNobuyoshi Nakada2019-11-201-1/+1
| | | | | | | | | | | 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 ```
* Define NULLCMD as printing NUL [Bug #16331]Nobuyoshi Nakada2019-11-101-1/+1
|
* Define NULLCMD as an empty label [Bug #16331]Nobuyoshi Nakada2019-11-101-0/+1
|
* Fix builtin scirpt pathsNobuyoshi Nakada2019-11-091-3/+0
| | | | | Do not search builtin scripts by using VPATH, to get rid of weird nmake VPATH.
* Add VPATH to rbinc rule for nmakeNobuyoshi Nakada2019-11-081-0/+3
|
* Share test-bundled-gems-run in common.mkNobuyoshi Nakada2019-11-051-7/+0
|
* [EXPERIMENTAL] MakeMakefile::CXX for C++Nobuyoshi Nakada2019-09-181-0/+1
|
* fix CentOS 6 compile error卜部昌平2019-09-101-0/+1
| | | | See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos6/ruby-master/log/20190910T003005Z.fail.html.gz
* Try to fix compile error on win32Kazuhiro NISHIYAMA2019-09-061-0/+2
| | | | | | | | 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 ```
* Improve build process and coroutine implementation selection.Samuel Williams2019-07-181-13/+13
|
* Remove IA64 support.Samuel Williams2019-06-191-6/+6
|
* No longer svn & git-svn are usedNobuyoshi Nakada2019-05-101-6/+1
|
* Makefiles need to be indented by tabsNobuyoshi Nakada2019-04-281-1/+1
|
* Remove debug linesusa2019-04-211-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Show/unshow executing command as specified by `V`usa2019-04-211-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Parenthesize `for` to ignore errorsnobu2019-02-131-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e