Bug #12644
closedSupport debug build on Windows with MSVC
Description
When building debug build with MSVC (-MDd flag) then it will be linked to ucrtbased.dll where _isatty function obviously differs.
I've attached a patch which fixes this so that __pioinfo will be found for both debug and non-debug builds (x86 and x64)
Anyway I really really don't like this and I think Ruby should keep it's own fd <=> handle mapping and not use this hack, but for now this works until _isatty changes.
Files
Updated by usa (Usaku NAKAMURA) about 9 years ago
- Status changed from Open to Closed
Applied in changeset r55792.
- win32/win32.c (set_pioinfo_extra): use more reliable way to search
the position of pioinfo of VC14, and also support debug library of it.
patched by davispuh AT gmail.com
[ruby-core:76644] [Bug #12644]
this fixes also [Bug #12631]
Updated by usa (Usaku NAKAMURA) about 9 years ago
Great work! Thank you!
Updated by usa (Usaku NAKAMURA) about 9 years ago
- Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: DONTNEED, 2.2: DONTNEED, 2.3: DONTNEED
Updated by rocifier (Ryan O'Connor) about 8 years ago
davispuh (Dāvis Mosāns) wrote:
When building debug build with MSVC (
-MDdflag) then it will be linked toucrtbased.dllwhere_isattyfunction obviously differs.I've attached a patch which fixes this so that
__pioinfowill be found for both debug and non-debug builds (x86 and x64)Anyway I really really don't like this and I think Ruby should keep it's own fd <=> handle mapping and not use this hack, but for now this works until
_isattychanges.
I'm running into a similar issue to this trying to build with VS2015. I am seeing this error unexpected ucrtbased.dll appearing when my debug (MDd) build runs miniruby.exe
Where can I find the exact version of this dll required by this assembly language code?
EDIT: I got it working, please see the separate issue I opened here for the answer: https://bugs.ruby-lang.org/issues/13920
Updated by davispuh (Dāvis Mosāns) about 8 years ago
Most likely your ucrtbased.dll differs in such way that can't locate that structure, so either need to update implementation to work for it (you'll need to look at disassembly)
or you will need to compile with probably older version of MSVC 2015 which worked.
Updated by usa (Usaku NAKAMURA) over 7 years ago
- Related to Bug #14623: backport r54737, r54740 and r55792 added