make/common/Program.gmk

Print this page




 213   ifeq ($(PLATFORM), macosx)
 214     THREADLIBS = -pthread
 215     # Needed for linking the various launchers
 216     LDFLAGS += -framework Cocoa -framework Security \
 217                -framework ApplicationServices
 218     OTHER_CPPFLAGS += -DPACKAGE_PATH='"$(PACKAGE_PATH)"'
 219 
 220     # Default Info.plist file for the command line tools. This gets overridden by
 221     # some of the jvmstat tools so that they have task_for_pid() privileges
 222     ifndef INFO_PLIST_FILE
 223       INFO_PLIST_FILE = Info-cmdline.plist
 224     endif
 225     LDFLAGS += -sectcreate __TEXT __info_plist $(LAUNCHER_PLATFORM_SRC)/lib/$(INFO_PLIST_FILE)
 226   else 
 227     INFO_PLIST_FILE=
 228   endif
 229 
 230   #
 231   # This rule only applies on unix.  It supports quantify and its ilk.
 232   #







 233   $(ACTUAL_PROGRAM):: $(FILES_o)
 234         @$(prep-target)
 235         @set -- $?; \
 236         $(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
 237         @$(MKDIR) -p $(TEMPDIR)
 238         $(LINK_PRE_CMD) $(CC) $(CC_OBJECT_OUTPUT_FLAG)$@ $(LDFLAGS) \
 239         $(FILES_o) $(THREADLIBS) $(LDLIBS)
 240   ifeq ($(findstring privileged, $(INFO_PLIST_FILE)), privileged)
 241         -codesign -s openjdk_codesign $@
 242   endif
 243         @$(call binary_file_verification,$@)
 244   ifneq ($(PLATFORM), macosx)
 245     ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 246       ifeq ($(PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS),1)










 247         (set -e ; \
 248          $(CD) $(@D) ; \

 249          $(OBJCOPY) --only-keep-debug $(@F) $(@F).debuginfo ; \






 250          $(OBJCOPY) --add-gnu-debuglink=$(@F).debuginfo $(@F) ; \
 251         )

 252         ifeq ($(STRIP_POLICY),all_strip)
 253           $(STRIP) $@
 254         else
 255           ifeq ($(STRIP_POLICY),min_strip)
 256             ifeq ($(PLATFORM), solaris)
 257               $(STRIP) -x $@
 258             else
 259               # assume Linux
 260               $(STRIP) -g $@
 261             endif
 262           # implied else here is no stripping at all
 263           endif
 264         endif
 265         ifeq ($(ZIP_DEBUGINFO_FILES),1)
 266           (set -e ; \
 267            $(CD) $(@D) ; \
 268            $(ZIPEXE) -q $(@F).diz $(@F).debuginfo ; \
 269            $(RM) $(@F).debuginfo ; \
 270           )
 271           # save ZIP'ed debug info with rest of the program's build artifacts




 213   ifeq ($(PLATFORM), macosx)
 214     THREADLIBS = -pthread
 215     # Needed for linking the various launchers
 216     LDFLAGS += -framework Cocoa -framework Security \
 217                -framework ApplicationServices
 218     OTHER_CPPFLAGS += -DPACKAGE_PATH='"$(PACKAGE_PATH)"'
 219 
 220     # Default Info.plist file for the command line tools. This gets overridden by
 221     # some of the jvmstat tools so that they have task_for_pid() privileges
 222     ifndef INFO_PLIST_FILE
 223       INFO_PLIST_FILE = Info-cmdline.plist
 224     endif
 225     LDFLAGS += -sectcreate __TEXT __info_plist $(LAUNCHER_PLATFORM_SRC)/lib/$(INFO_PLIST_FILE)
 226   else 
 227     INFO_PLIST_FILE=
 228   endif
 229 
 230   #
 231   # This rule only applies on unix.  It supports quantify and its ilk.
 232   #
 233 
 234   ifeq ($(PLATFORM), solaris)
 235     ifeq ($(PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS),1)
 236   $(ACTUAL_PROGRAM):: $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS)
 237     endif
 238   endif
 239 
 240   $(ACTUAL_PROGRAM):: $(FILES_o)
 241         @$(prep-target)
 242         @set -- $?; \
 243         $(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
 244         @$(MKDIR) -p $(TEMPDIR)
 245         $(LINK_PRE_CMD) $(CC) $(CC_OBJECT_OUTPUT_FLAG)$@ $(LDFLAGS) \
 246         $(FILES_o) $(THREADLIBS) $(LDLIBS)
 247   ifeq ($(findstring privileged, $(INFO_PLIST_FILE)), privileged)
 248         -codesign -s openjdk_codesign $@
 249   endif
 250         @$(call binary_file_verification,$@)
 251   ifneq ($(PLATFORM), macosx)
 252     ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 253       ifeq ($(PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS),1)
 254         ifeq ($(PLATFORM), solaris)
 255 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
 256 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from
 257 # empty section headers until a fixed $(OBJCOPY) is available.
 258 # An empty section header has sh_addr == 0 and sh_size == 0.
 259 # This problem has only been seen on Solaris X64, but we call this tool
 260 # on all Solaris builds just in case.
 261 #
 262 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
 263 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
 264         (set -e ; \
 265          $(CD) $(@D) ; \
 266          $(FIX_EMPTY_SEC_HDR_FLAGS) $(@F) ; \
 267          $(OBJCOPY) --only-keep-debug $(@F) $(@F).debuginfo ; \
 268          $(ADD_GNU_DEBUGLINK) $(@F).debuginfo $(@F) ; \
 269         )
 270         else # PLATFORM != solaris
 271         (set -e ; \
 272          $(CD) $(@D) ; \
 273          $(OBJCOPY) --only-keep-debug $(@F) $(@F).debuginfo ; \
 274          $(OBJCOPY) --add-gnu-debuglink=$(@F).debuginfo $(@F) ; \
 275         )
 276         endif # PLATFORM == solaris
 277         ifeq ($(STRIP_POLICY),all_strip)
 278           $(STRIP) $@
 279         else
 280           ifeq ($(STRIP_POLICY),min_strip)
 281             ifeq ($(PLATFORM), solaris)
 282               $(STRIP) -x $@
 283             else
 284               # assume Linux
 285               $(STRIP) -g $@
 286             endif
 287           # implied else here is no stripping at all
 288           endif
 289         endif
 290         ifeq ($(ZIP_DEBUGINFO_FILES),1)
 291           (set -e ; \
 292            $(CD) $(@D) ; \
 293            $(ZIPEXE) -q $(@F).diz $(@F).debuginfo ; \
 294            $(RM) $(@F).debuginfo ; \
 295           )
 296           # save ZIP'ed debug info with rest of the program's build artifacts