View Single Post
Old 30th April 2018, 19:58   #1
Itms
Junior Member
 
Join Date: Apr 2018
Posts: 3
Hitting the 2GB file limit when creating an installer

Hello,
We have been using NSIS for packaging our software for Windows, but we are having trouble for packaging our latest version. We are hitting the "Internal compiler error #12345" because a file that we package has grown past the size of 2GB. This file is big because it is not compressed at all: we use the lzma compression in NSIS, so the final installer is around 600MB.

As a workaround, we tried compressing the file first, and then running NSIS, but the result is less good because two successive compressions is suboptimal (the final installer ends up around 900MB). So we'd really like to work around the limitation on single input files.

I successfully built NSIS and managed to pass the large-address-aware flag to the linker, but that doesn't solve the issue. I read that other thread, but the hack detailed by arwa is not supposed to work with large input files like we have.
As far as I can see,
code:
MMapFile::resize
is not called when the large file is about to be parsed, which explains why the mmap is not large enough, but I don't know why the resize doesn't happen exactly.

Would you have any input about how to fix the issue? I am competent in C++ even though I'm just discovering the NSIS codebase, so I should be able to hack together the ideas you might have.
Thank you very much for your help
Itms is offline   Reply With Quote