jdk/make/launcher/Launcher-jdk.runtime.gmk
changeset 28846 b96683be2713
parent 27799 097b1d6f6894
child 28962 e3028445a1ff
equal deleted inserted replaced
28845:fda687f9b986 28846:b96683be2713
    64 
    64 
    65 UNPACKEXE_LANG := C
    65 UNPACKEXE_LANG := C
    66 ifeq ($(OPENJDK_TARGET_OS), solaris)
    66 ifeq ($(OPENJDK_TARGET_OS), solaris)
    67   UNPACKEXE_LANG := C++
    67   UNPACKEXE_LANG := C++
    68 endif
    68 endif
    69 UNPACKEXE_DEBUG_SYMBOLS := true
       
    70 # On windows, unpack200 is linked completely differently to all other
       
    71 # executables, using the compiler with the compiler arguments.
       
    72 # It's also linked incrementally, producing a .ilk file that needs to
       
    73 # be kept away.
       
    74 ifeq ($(OPENJDK_TARGET_OS), windows)
       
    75   BUILD_UNPACKEXE_LDEXE := $(CC)
       
    76   EXE_OUT_OPTION_save := $(EXE_OUT_OPTION)
       
    77   EXE_OUT_OPTION := -Fe
       
    78   # With the current way unpack200 is built, debug symbols aren't supported
       
    79   # anyway.
       
    80   UNPACKEXE_DEBUG_SYMBOLS := false
       
    81 endif
       
    82 
    69 
    83 # The linker on older SuSE distros (e.g. on SLES 10) complains with:
    70 # The linker on older SuSE distros (e.g. on SLES 10) complains with:
    84 # "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable."
    71 # "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable."
    85 # if feeded with a version script which contains named tags.
    72 # if feeded with a version script which contains named tags.
    86 ifeq ($(USING_BROKEN_SUSE_LD), yes)
    73 ifeq ($(USING_BROKEN_SUSE_LD), yes)
    91 
    78 
    92 $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \
    79 $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \
    93     SRC := $(UNPACKEXE_SRC), \
    80     SRC := $(UNPACKEXE_SRC), \
    94     LANG := $(UNPACKEXE_LANG), \
    81     LANG := $(UNPACKEXE_LANG), \
    95     OPTIMIZATION := LOW, \
    82     OPTIMIZATION := LOW, \
    96     CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) \
    83     CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) -DFULL, \
    97         -DFULL, \
       
    98     CFLAGS_release := -DPRODUCT, \
    84     CFLAGS_release := -DPRODUCT, \
    99     CFLAGS_linux := -fPIC, \
    85     CFLAGS_linux := -fPIC, \
   100     CFLAGS_solaris := -KPIC, \
    86     CFLAGS_solaris := -KPIC, \
   101     CFLAGS_macosx := -fPIC, \
    87     CFLAGS_macosx := -fPIC, \
   102     MAPFILE := $(UNPACK_MAPFILE),\
    88     MAPFILE := $(UNPACK_MAPFILE),\
   103     LDFLAGS := $(UNPACKEXE_ZIPOBJS), \
    89     LDFLAGS := $(UNPACKEXE_ZIPOBJS) \
   104     LDFLAGS_windows := $(CXXFLAGS_JDKEXE), \
    90         $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
   105     LDFLAGS_unix := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
       
   106         $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \
    91         $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \
   107         $(call SET_SHARED_LIBRARY_ORIGIN), \
    92         $(call SET_SHARED_LIBRARY_ORIGIN), \
   108     LDFLAGS_linux := -lc, \
    93     LDFLAGS_linux := -lc, \
   109     LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \
    94     LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \
   110     LDFLAGS_SUFFIX := $(LIBCXX), \
    95     LDFLAGS_SUFFIX := $(LIBCXX), \
   111     OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe$(OUTPUT_SUBDIR), \
    96     OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe$(OUTPUT_SUBDIR), \
   112     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe$(OUTPUT_SUBDIR), \
    97     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE), \
   113     PROGRAM := unpack200, \
    98     PROGRAM := unpack200, \
   114     VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
    99     VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
   115     RC_FLAGS := $(RC_FLAGS) \
   100     RC_FLAGS := $(RC_FLAGS) \
   116         -D "JDK_FNAME=unpack200.exe" \
   101         -D "JDK_FNAME=unpack200.exe" \
   117         -D "JDK_INTERNAL_NAME=unpack200" \
   102         -D "JDK_INTERNAL_NAME=unpack200" \
   118         -D "JDK_FTYPE=0x1L", \
   103         -D "JDK_FTYPE=0x1L", \
   119     DEBUG_SYMBOLS := $(UNPACKEXE_DEBUG_SYMBOLS), \
   104     DEBUG_SYMBOLS := true, \
   120     MANIFEST := $(JDK_TOPDIR)/src/jdk.runtime/windows/native/unpack200/unpack200_proto.exe.manifest))
   105     MANIFEST := $(JDK_TOPDIR)/src/jdk.runtime/windows/native/unpack200/unpack200_proto.exe.manifest))
   121 
       
   122 ifeq ($(OPENJDK_TARGET_OS), windows)
       
   123   EXE_OUT_OPTION := $(EXE_OUT_OPTION_save)
       
   124 endif
       
   125 
   106 
   126 ifneq ($(USE_EXTERNAL_LIBZ), true)
   107 ifneq ($(USE_EXTERNAL_LIBZ), true)
   127 
   108 
   128   $(BUILD_UNPACKEXE): $(UNPACKEXE_ZIPOBJS)
   109   $(BUILD_UNPACKEXE): $(UNPACKEXE_ZIPOBJS)
   129 
   110 
   130 endif
   111 endif
   131 
   112 
   132 # Build into object dir and copy executable afterwards to avoid .ilk file in
   113 TARGETS += $(BUILD_UNPACKEXE)
   133 # image. The real fix would be clean up linking of unpack200 using
       
   134 # -link -incremental:no
       
   135 # like all other launchers.
       
   136 $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/unpack200$(EXE_SUFFIX): $(BUILD_UNPACKEXE)
       
   137 	$(call install-file)
       
   138 
       
   139 TARGETS += $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/unpack200$(EXE_SUFFIX)
       
   140 
   114 
   141 ################################################################################
   115 ################################################################################