8016845: SA is unable to use hsdis on windows
Added sadis.c to the build to provide missing symbols in sawindbg.dll. Added code to use the correct hsdisXXX.dll filename on different windows platforms. Reviewed-by: sla, mgerdin
This commit is contained in:
parent
1afb02e222
commit
738af149a2
@ -67,6 +67,13 @@ public class Disassembler {
|
||||
String libname = "hsdis";
|
||||
String arch = System.getProperty("os.arch");
|
||||
if (os.lastIndexOf("Windows", 0) != -1) {
|
||||
if (arch.equals("x86")) {
|
||||
libname += "-i386";
|
||||
} else if (arch.equals("amd64")) {
|
||||
libname += "-amd64";
|
||||
} else {
|
||||
libname += "-" + arch;
|
||||
}
|
||||
path.append(sep + "bin" + sep);
|
||||
libname += ".dll";
|
||||
} else if (os.lastIndexOf("SunOS", 0) != -1) {
|
||||
|
@ -102,7 +102,10 @@ SA_CFLAGS = $(SA_CFLAGS) -ZI
|
||||
!if "$(MT)" != ""
|
||||
SA_LD_FLAGS = -manifest $(SA_LD_FLAGS)
|
||||
!endif
|
||||
SASRCFILE = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp
|
||||
|
||||
SASRCFILES = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp \
|
||||
$(AGENT_DIR)/src/share/native/sadis.c
|
||||
|
||||
SA_LFLAGS = $(SA_LD_FLAGS) -nologo -subsystem:console -machine:$(MACHINE)
|
||||
!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
|
||||
SA_LFLAGS = $(SA_LFLAGS) -map -debug
|
||||
@ -116,16 +119,16 @@ SA_CFLAGS = $(SA_CFLAGS) $(MP_FLAG)
|
||||
# In VS2005 or VS2008 the link command creates a .manifest file that we want
|
||||
# to insert into the linked artifact so we do not need to track it separately.
|
||||
# Use ";#2" for .dll and ";#1" for .exe in the MT command below:
|
||||
$(SAWINDBG): $(SASRCFILE)
|
||||
$(SAWINDBG): $(SASRCFILES)
|
||||
set INCLUDE=$(SA_INCLUDE)$(INCLUDE)
|
||||
$(CXX) @<<
|
||||
-I"$(BootStrapDir)/include" -I"$(BootStrapDir)/include/win32"
|
||||
-I"$(GENERATED)" $(SA_CFLAGS)
|
||||
$(SASRCFILE)
|
||||
$(SASRCFILES)
|
||||
-out:$*.obj
|
||||
<<
|
||||
set LIB=$(SA_LIB)$(LIB)
|
||||
$(LD) -out:$@ -DLL $*.obj dbgeng.lib $(SA_LFLAGS)
|
||||
$(LD) -out:$@ -DLL sawindbg.obj sadis.obj dbgeng.lib $(SA_LFLAGS)
|
||||
!if "$(MT)" != ""
|
||||
$(MT) -manifest $(@F).manifest -outputresource:$(@F);#2
|
||||
!endif
|
||||
|
Loading…
Reference in New Issue
Block a user