3 Commits
Author SHA1 Message Date
mirkobrombin 12269354b2 fix: load executable images with no entry point as libraries 2026-11-03 08:54:46 +00:00
Raymond Bennett fd3875f197 feat: replace only listed system libraries with a program's own copy
A copy in the program's folder now loads for d3d8, d3d9, d3d10core, d3d11,
dxgi, ddraw, dinput, dinput8, winmm, version, xinput1_3 and xinput1_4,
the libraries graphics wrappers and mod loaders ship. Every other system
library stays the runtime's whatever the program ships, as before this
series, so a bundled dbghelp.dll or winhttp.dll is still answered by
Raven. RAVEN_PREFER_LOCAL_DLLS=1 loads the program's copy of any system
library outside the core list instead.

The program's folder is no longer read file by file at each start: it is
listed once, on the first listed name the runtime asks about, and only a
file that matches such a name is mapped to check that it is a DLL of the
program's width. The C runtime ordering change in main.cpp is dropped, as
msvcrt.dll and ucrtbase.dll are again never looked for there.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Reworked the change to the maintainer's review: the allowlist,
 the RAVEN_PREFER_LOCAL_DLLS setting, the per-name ProgramLibraries
 lookup shared by the x64 and x86 paths, and the dependencies_test case
 and CTest entry for both modes.
2026-10-28 14:20:02 -04:00
Mirko Brombin 154272073d feat: preserve native C++ migration 2026-07-31 16:46:25 +02:00