Opened 13 years ago
Closed 10 years ago
#864 closed task (fixed)
Upgrade Windows libraries
Reported by: | Philip Taylor | Owned by: | |
---|---|---|---|
Priority: | Nice to Have | Milestone: | Alpha 17 |
Component: | Core engine | Keywords: | |
Cc: | Patch: |
Description
Currently the Windows build uses precompiled libraries, some of which were built with VC6, some with VC2005 (mozjs zlib1 nvtt jpeg-6b libpng zlib1 libcurl enet). Two problems:
- Some are very old (as far back as 2004), so there are probably new versions with security fixes and bug fixes and performance improvements etc.
- The VC2005 CRT requires sometimes-painful manifest stuff.
It might be nice to rebuild the libraries with their latest versions, and the latest compiler (VC2010 unless you're reading this in the future) which hopefully doesn't have the manifest problems.
Need to make sure that the libraries are still compatible with the oldest compiler version that we want the game to support (currently probably VC2008; upgrading everyone and everything to VC2010 would be nice but will not be trivial).
Change History (19)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
Replying to Philip:
It might be nice to rebuild the libraries with their latest versions, and the latest compiler (VC2010 unless you're reading this in the future) which hopefully doesn't have the manifest problems.
Would this break Windows 2000 compatibility and pre-XP SP3? (I'm not sure if the runtime library or only the application binary breaks that) The VC 2010 redistributable package claims to only support XP SP3 and later. If so, we need to decide if that's an acceptable loss.
I noticed this issue when building libxml 2.8.0 which only includes a VC 2010 project. We'd also need to bundle the runtime dlls. On a related note, should we be distributing the non-redistributable debug runtime dlls? (it's convenient but seemingly not permitted by their license)
comment:7 by , 11 years ago
r13436 updated Boost to 1.53.0 and added VC2012 libs.
Also I discovered a tool for Boost called bcp that will generate a subset of Boost libs. I used it to find the Boost subset needed for our source code, of course it takes into account all compilers and build paths, likely more than we need, but better safe than sorry. Still, it cut the size of our bundled win32 Boost by more than half!
comment:15 by , 10 years ago
We are now down to two remaining old libraries:
- libjpeg v6b - The game doesn't even use JPEG. Philip was of the opinion that we should remove it, but I think it would be more effort if we later want to use JPEG for anything, we'll have to add all the texture support back again.
- miniupnpc v1.8 - Update to 1.9 is planned (see #2552), win32 libs should be built with VC++ 2010 for consistency.
There is also SDL, which is currently 1.2.15 and unused on Windows. That can be replaced by a freshly built SDL 2 following completion of #2041.
After that, we can delete old unsupported MSVC runtimes that we bundle (6, 7, and 8).
follow-up: 18 comment:16 by , 10 years ago
About libjpeg the code using it could be ifdeffed out, so that we can remove the dependency and the dll, but be able to quickly reenable it if needed.
comment:18 by , 10 years ago
Replying to fabio:
About libjpeg the code using it could be ifdeffed out, so that we can remove the dependency and the dll, but be able to quickly reenable it if needed.
That might work, but it's quite easy to break code that's not compiled, then the value of keeping it around is lessened. I guess it won't become too broken in any case, but I would rather keep it as-is or delete it. Now I'm leaning toward removing it, so we can reduce our dependencies by one.
comment:19 by , 10 years ago
Milestone: | Backlog → Alpha 17 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
This ticket is mostly resolved, I will open a new one for JPEG support.
In 11561: