tools: Support GNU objdump (from MSYS2) on defcheck.py

This commit is contained in:
Bruno Lopes 2026-03-17 12:56:34 -03:00
parent a03ccc91da
commit 6ec98fac00

View file

@ -29,7 +29,7 @@ Needs the tool "nm", "objdump" or "dumpbin" to work
"""
import os, sys, subprocess, shutil
import os, sys, subprocess, shutil, glob
from os import getenv, path
@ -72,6 +72,9 @@ for df in def_files:
basename, extension = name.split (".")
libname = path.join(os.getcwd(), directory, libprefix + basename + "-*" + libextension)
matches = glob.glob(libname)
if matches:
libname = matches[0]
#FIXME: This leaks to ninja stdout, which should not happen
#print ("platform: " + sys.platform + " - extracting symbols from " + libname)
@ -119,10 +122,13 @@ for df in def_files:
found = False
nmsymbols = ""
for s in objnm:
if s == " Ordinal RVA Name":
if "Ordinal Hint Name" in s or " Ordinal RVA Name" in s:
found = True
elif found:
nmsymbols += s
s = s.strip()
if not s:
break
nmsymbols += " 0 0 " + s.split()[-1] # Keep the [2::3] logic happy
# else: skip this line
else: # Windows MSVC