mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.41k stars 1.12k forks source link

MSVS2013-built PE files have no DIRECTORY_ENTRY_DEBUG #1214

Closed mkrautz closed 2 years ago

mkrautz commented 10 years ago

Causes plugin_replacement.py (from mumble-releng) to fail.

Not sure if DIRECTORY_ENTRY_DEBUG has been removed, or we're doing something wrong during the build.

Script output:

C:\dev\jenkins\workspace\Mumble Windows x86 (static)>"C:\dev\mumble-releng\tools\plugin_replacement.py" --version "1.2.5-268-gc897c56" --repo . release\plugins 
INFO:root:Collecting plugin creation dates
INFO:root:Retrieving 'aoc.dll'
INFO:root:Retrieving 'arma2.dll'
INFO:root:Retrieving 'bf1942.dll'
INFO:root:Retrieving 'bf2.dll'
INFO:root:Retrieving 'bf2142.dll'
INFO:root:Retrieving 'bf3.dll'
INFO:root:Retrieving 'bfbc2.dll'
INFO:root:Retrieving 'bfheroes.dll'
INFO:root:Retrieving 'blacklight.dll'
INFO:root:Retrieving 'borderlands.dll'
INFO:root:Retrieving 'borderlands2.dll'
INFO:root:Retrieving 'breach.dll'
INFO:root:Retrieving 'cod2.dll'
INFO:root:Retrieving 'cod4.dll'
INFO:root:Retrieving 'cod5.dll'
INFO:root:Retrieving 'codmw2.dll'
INFO:root:Retrieving 'codmw2so.dll'
INFO:root:Retrieving 'cs.dll'
INFO:root:Retrieving 'css.dll'
INFO:root:Retrieving 'dods.dll'
INFO:root:Retrieving 'dys.dll'
INFO:root:Retrieving 'etqw.dll'
INFO:root:Retrieving 'gmod.dll'
INFO:root:Retrieving 'gtaiv.dll'
INFO:root:Retrieving 'gw.dll'
INFO:root:Retrieving 'hl2dm.dll'
INFO:root:Retrieving 'insurgency.dll'
INFO:root:Retrieving 'jc2.dll'
INFO:root:Retrieving 'l4d.dll'
INFO:root:Retrieving 'l4d2.dll'
INFO:root:Retrieving 'link.dll'
INFO:root:Retrieving 'lol.dll'
INFO:root:Retrieving 'lotro.dll'
INFO:root:Retrieving 'manual.dll'
INFO:root:Retrieving 'sr.dll'
INFO:root:Retrieving 'sto.dll'
INFO:root:Retrieving 'tf2.dll'
INFO:root:Retrieving 'ut2004.dll'
INFO:root:Retrieving 'ut3.dll'
INFO:root:Retrieving 'ut99.dll'
INFO:root:Retrieving 'wolfet.dll'
INFO:root:Retrieving 'wow.dll'
INFO:root:Checking repo for new revisions
INFO:root:Re-using 'aoc.dll' created on 2014-04-05 19:24:37
Traceback (most recent call last):
  File "C:\dev\mumble-releng\tools\plugin_replacement.py", line 367, in <module>
    copyUnchangedPluginsToBuild(old_plugins)
  File "C:\dev\mumble-releng\tools\plugin_replacement.py", line 302, in copyUnchangedPluginsToBuild
    guid = getSymbolserverPdbGUID(dll)
  File "C:\dev\mumble-releng\tools\plugin_replacement.py", line 120, in getSymbolserverPdbGUID
    header = pe.DIRECTORY_ENTRY_DEBUG[0].struct
AttributeError: PE instance has no attribute 'DIRECTORY_ENTRY_DEBUG'
mkrautz commented 10 years ago

CONFIG+=symbols seems to fix the issue.

However, this was not needed previously (when using the win32-msvc2013 mkspec).

My hunch is that we probably had some C(XX)FLAGS modifications in mumble-developers-qt for symbols. I know this was the case for -ARCH:SSE, for example.

I will update the builder to pass CONFIG+=symbols for now. However, it would be nice to get to the bottom of this.

mkrautz commented 10 years ago

Here's our win32-msvc2010 changes. And yes, we did indeed add some debug/symbol specific flags (see the last commit in the list):

-ARCH:SSE mumble-voip/mumble-developers-qt@f4125ba0c5fa60597f268fafe971ea7b3bbf6bb4 Debug flags: mumble-voip/mumble-developers-qt@8e876c1200acd4fef8bcbeccd4f61a39b47d5cfd

Maybe this means we aren't getting proper symbols for Qt in the MSVS2013 toolchain? I'll have a look.

ghost commented 2 years ago

@mkrautz - Were there any results for this? Microsoft ended support for MSVC 2013 April 9, 2014. If newer versions of Qt and MSVC no longer have this issue, we could probably close this.

davidebeatrici commented 2 years ago

We switched to MSVC 2015 in 2016 anyway.