We have noticed that there is some fine print around the rpmalloc open-source library that is incorporated into the Audiokinetic deployment software.
https://www.audiokinetic.com/en/library/edge/?source=SDK&id=open_source.html
To avoid any presence of the rpmalloc code in a product, you should not link to AkMemoryMgr.lib or libAkMemoryMgr.a (found in $<Wwise>/SDK/<platform_name>/<Release|Profile|Debug>/lib/). This will ensure no element of the open source library is incorporated in the Audiokinetic deployment software.
We had previously ensured we were stripping the AkMemoryMgr.lib in final builds and re-implementing the AK::MemoryMgr interface in our client-side code in version 2022.
However, we have now upgraded to 2023 and have noticed there is a new AK::TempAlloc interface that has been implemented in the AkMemoryMgr.lib
C:\Program Files (x86)\Audiokinetic\Wwise 2023.1.0.8367\SDK\source\SoundEngine\AkMemoryMgr\Common\AkTempAllocator.cpp
If we strip out the AkMemoryMgr.lib, to remove rpmalloc from our shipped product as described in the licensing documentation above, we end up with link errors related to the missing AK::TempAlloc implementation.
However the AK::TempAlloc implementation does not appear to depend on rpmalloc, so we wanted to inquire on the best way to utilize the AK::TempAlloc implementation in our client-side code, _without_ linking to AkMemoryMgrl.lib. After reviewing the source code, it looks like this system would be non-trivial to re-implement.
Note that we are currently working with our legal department on whether we are able to ship with rpmalloc, but it feels like the packaging up of critical internal memory management functionality into a library along with open-source code that is intended to be potentially stripped from the final product is not desirable.
Specifically, what is the best practice if we want to strip rpmalloc, but still have access to the AK::TempAlloc functionality.
Any advice on how best to approach this issue would be most appreciated!