rpmalloc icon indicating copy to clipboard operation
rpmalloc copied to clipboard

Incorrect README compilation instructions

Open tanksdude opened this issue 8 months ago • 0 comments

I may be misinterpreting the instructions, but they don't seem to be correct. I tested on Windows MSVC and Linux GCC, compiled by simply adding rpmalloc.[h|c]. Most of what I did was reading the README and experimenting with compilation settings to find out what worked and what didn't.

1.4.5 and main branch:

(Not sure how useful this section is since 2.0.0 seems to be nearing completion.)

On Windows platforms and C++ overrides you have to #include <rpnew.h> in at least one source file ...

I think this is also required on non-Windows platforms, but only when ENABLE_OVERRIDE is not enabled. And there is no include guard in the file, so "at least one" should be "only one".

ENABLE_OVERRIDE

Windows and Linux both need ENABLE_PRELOAD also enabled. GCC needed _GNU_SOURCE due to #include <dlfcn.h> and RTLD_NEXT.

latest develop branch:

For C++ overrides you have to #include <rpnew.h> in at least one source file.

I think this is Windows-only. I could not get it to compile on Linux due to redefining malloc/free/new/delete, and malloc.c implies it's Windows-only due to the #ifdef _WIN32 section, not to mention the #define __CRTDECL in rpnew.h. And no include guard so "at least one" → "only one".

other issue on 1.4.5

Maybe this is just MSVC being weird, but I had a strange issue where _msize_base needed to be noexcept to compile. I changed that, like a day or two passed, then went to recompile and that was no longer needed. I don't believe I updated anything during that timeframe and I haven't been able to reproduce that compilation issue. Has anyone else encountered this? My searches showed it was supposedly a Windows SDK issue, but I definitely didn't update that.

tanksdude avatar Apr 13 '25 23:04 tanksdude