make/windows/makefiles/sa.make

Fri, 09 Nov 2018 12:39:09 +0100

author
sgehwolf
date
Fri, 09 Nov 2018 12:39:09 +0100
changeset 9602
adc49d072b7c
parent 9601
21884257c797
child 9637
eef07cd490d4
permissions
-rw-r--r--

8212110: Build of saproc.dll broken on Windows 32 bit after JDK-8210647
Reviewed-by: erikj, akasko

     1 #
     2 # Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4 #
     5 # This code is free software; you can redistribute it and/or modify it
     6 # under the terms of the GNU General Public License version 2 only, as
     7 # published by the Free Software Foundation.
     8 #
     9 # This code is distributed in the hope that it will be useful, but WITHOUT
    10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12 # version 2 for more details (a copy is included in the LICENSE file that
    13 # accompanied this code).
    14 #
    15 # You should have received a copy of the GNU General Public License version
    16 # 2 along with this work; if not, write to the Free Software Foundation,
    17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18 #
    19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20 # or visit www.oracle.com if you need additional information or have any
    21 # questions.
    22 #  
    23 #
    25 # This makefile is used to build Serviceability Agent code
    26 # and generate JNI header file for native methods.
    28 AGENT_DIR = $(WorkSpace)/agent
    29 checkAndBuildSA::
    31 !if "$(BUILD_WIN_SA)" != "1"
    32 # Already warned about this in build.make
    33 !else
    35 # This first part is used to build sa-jdi.jar
    36 !include $(WorkSpace)/make/windows/makefiles/rules.make
    37 !include $(WorkSpace)/make/sa.files
    39 GENERATED = ../generated
    41 HS_COMMON_SRC_REL = src
    43 !if "$(OPENJDK)" != "true"
    44 HS_ALT_SRC_REL=src/closed
    45 HS_ALT_SRC = $(WorkSpace)/$(HS_ALT_SRC_REL)
    46 !ifndef HS_ALT_MAKE
    47 !if exist($(WorkSpace)/make/closed)
    48 HS_ALT_MAKE=$(WorkSpace)/make/closed
    49 !endif
    50 !endif
    51 !endif
    53 HS_COMMON_SRC = $(WorkSpace)/$(HS_COMMON_SRC_REL)
    55 !ifdef HS_ALT_MAKE
    56 !include $(HS_ALT_MAKE)/windows/makefiles/sa.make
    57 !endif
    59 # tools.jar is needed by the JDI - SA binding
    60 SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
    62 SA_CLASSDIR = $(GENERATED)/saclasses
    64 SA_BUILD_VERSION_PROP = sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)
    66 SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
    68 default::  $(GENERATED)/sa-jdi.jar
    70 # Remove the space between $(SA_BUILD_VERSION_PROP) and > below as it adds a white space
    71 # at the end of SA version string and causes a version mismatch with the target VM version.
    73 $(GENERATED)/sa-jdi.jar: $(AGENT_FILES)
    74 	$(QUIETLY) mkdir -p $(SA_CLASSDIR)
    75 	@echo ...Building sa-jdi.jar into $(SA_CLASSDIR)
    76 	@echo ...$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) ....
    77 	@$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES)
    78 	$(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
    79 	$(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES)
    80 	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
    81 	$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
    82 	$(QUIETLY) rm -rf $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
    83 	$(QUIETLY) mkdir $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
    84 	$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
    85 	$(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)
    86 	$(RUN_JAR) cf $@ -C $(SA_CLASSDIR) .
    87 	$(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
    88 	$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal
    89 	$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext 
    90 	$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext 
    91 	$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.asm.Disassembler
    95 # This second part is used to build sawindbg.dll
    96 # We currently build it the same way for product, debug, and fastdebug.
    98 SAWINDBG=sawindbg.dll
   100 checkAndBuildSA:: $(SAWINDBG)
   102 !if "$(BUILD_FLAVOR)" == "debug"
   103 SA_EXTRA_CFLAGS = -Od -D "_DEBUG"
   104 !if "$(BUILDARCH)" == "i486"
   105 SA_EXTRA_CFLAGS = $(SA_EXTRA_CFLAGS) -RTC1
   106 !endif
   107 !elseif "$(BUILD_FLAVOR)" == "fastdebug"
   108 SA_EXTRA_CFLAGS = -O2 -D "_DEBUG"
   109 !else
   110 SA_EXTRA_CFLAGS = -O2
   111 !endif
   113 !if "$(BUILDARCH)" == "ia64"
   114 SA_CFLAGS = -nologo $(MS_RUNTIME_OPTION) -W3 $(GX_OPTION) -D "WIN32" -D "WIN64" -D "_WINDOWS"  -D "_CONSOLE" -D "_MBCS" -YX -FD -c
   115 !elseif "$(BUILDARCH)" == "amd64"
   116 SA_CFLAGS = -nologo $(MS_RUNTIME_OPTION) -W3 $(GX_OPTION) -D "WIN32" -D "WIN64" -D "_WINDOWS" -D "_CONSOLE" -D "_MBCS" -YX -FD -c
   117 !if "$(COMPILER_NAME)" == "VS2005"
   118 # On amd64, VS2005 compiler requires bufferoverflowU.lib on the link command line, 
   119 # otherwise we get missing __security_check_cookie externals at link time. 
   120 SA_LD_FLAGS = bufferoverflowU.lib
   121 !endif
   122 !else
   123 SA_CFLAGS = -nologo $(MS_RUNTIME_OPTION) -W3 -Gm $(GX_OPTION) -D "WIN32" -D "_WINDOWS" -D "_CONSOLE" -D "_MBCS" -YX -FD -c
   124 !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
   125 # -ZI is incompatible with -O2 used for release/fastdebug builds.
   126 # Using -Zi instead.
   127 SA_CFLAGS = $(SA_CFLAGS) -Zi
   128 !endif
   129 !endif
   130 !if "$(MT)" != ""
   131 SA_LD_FLAGS = -manifest $(SA_LD_FLAGS)
   132 !endif
   133 SA_CFLAGS = $(SA_CFLAGS) $(SA_EXTRA_CFLAGS)
   135 SASRCFILES = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp \
   136 		$(AGENT_DIR)/src/share/native/sadis.c
   138 SA_LFLAGS = $(SA_LD_FLAGS) -nologo -subsystem:console -machine:$(MACHINE)
   139 !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
   140 SA_LFLAGS = $(SA_LFLAGS) -map -debug
   141 !endif
   142 !if "$(BUILDARCH)" == "i486"
   143 SA_LFLAGS = /SAFESEH $(SA_LFLAGS)
   144 !endif
   146 SA_CFLAGS = $(SA_CFLAGS) $(MP_FLAG)
   148 # Note that we do not keep sawindbj.obj around as it would then
   149 # get included in the dumpbin command in build_vm_def.sh
   151 # In VS2005 or VS2008 the link command creates a .manifest file that we want
   152 # to insert into the linked artifact so we do not need to track it separately.
   153 # Use ";#2" for .dll and ";#1" for .exe in the MT command below:
   154 $(SAWINDBG): $(SASRCFILES)
   155 	set INCLUDE=$(SA_INCLUDE)$(INCLUDE)
   156 	$(CXX) @<<
   157 	  -I"$(BootStrapDir)/include" -I"$(BootStrapDir)/include/win32" 
   158 	  -I"$(GENERATED)" $(SA_CFLAGS)
   159 	  $(SASRCFILES)
   160 	  -out:$*.obj
   161 <<
   162 	set LIB=$(SA_LIB)$(LIB)
   163 	$(LD) -out:$@ -DLL sawindbg.obj sadis.obj dbgeng.lib $(SA_LFLAGS)
   164 !if "$(MT)" != ""
   165 	$(MT) -manifest $(@F).manifest -outputresource:$(@F);#2
   166 !endif
   167 !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
   168 !if "$(ZIP_DEBUGINFO_FILES)" == "1"
   169 	$(ZIPEXE) -q $*.diz $*.map $*.pdb
   170 	$(RM) $*.map $*.pdb
   171 !endif
   172 !endif
   173 	-@rm -f $*.obj
   175 cleanall :
   176 	rm -rf $(GENERATED)/saclasses
   177 	rm -rf $(GENERATED)/sa-jdi.jar
   178 !endif

mercurial