434 435 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% 436 $(CP) $$< $$@ 437 438 439 ifeq ($(OPENJDK_TARGET_OS), solaris) 440 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. 441 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from 442 # empty section headers until a fixed $(OBJCOPY) is available. 443 # An empty section header has sh_addr == 0 and sh_size == 0. 444 # This problem has only been seen on Solaris X64, but we call this tool 445 # on all Solaris builds just in case. 446 # 447 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. 448 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. 449 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) \ 450 $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) 451 $(RM) $$@ 452 $(FIX_EMPTY_SEC_HDR_FLAGS) $$< 453 $(OBJCOPY) --only-keep-debug $$< $$@ 454 $(ADD_GNU_DEBUGLINK) $$@ $$< 455 else # not solaris 456 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) 457 $(RM) $$@ 458 $(OBJCOPY) --only-keep-debug $$< $$@ 459 $(OBJCOPY) --add-gnu-debuglink=$$@ $$< 460 endif 461 462 ifeq ($(ZIP_DEBUGINFO_FILES), 1) 463 $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz 464 465 ifeq ($(OPENJDK_TARGET_OS), windows) 466 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) 467 $(CD) $$($1_OBJECT_DIR) \ 468 && $(ZIP) -q $$@ $$($1_LIBRARY).map $$($1_LIBRARY).pdb 469 else 470 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) \ 471 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo 472 $(CD) $$($1_OBJECT_DIR) \ 473 && $(ZIP) -q $$@ $$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo 474 endif 475 else 476 ifeq ($(OPENJDK_TARGET_OS), windows) 477 $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \ 478 $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb 479 else 480 $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo 509 endif 510 511 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% 512 $(CP) $$< $$@ 513 514 ifeq ($(OPENJDK_TARGET_OS), solaris) 515 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. 516 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from 517 # empty section headers until a fixed $(OBJCOPY) is available. 518 # An empty section header has sh_addr == 0 and sh_size == 0. 519 # This problem has only been seen on Solaris X64, but we call this tool 520 # on all Solaris builds just in case. 521 # 522 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. 523 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. 524 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \ 525 $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) 526 $(RM) $$@ 527 $(FIX_EMPTY_SEC_HDR_FLAGS) $$< 528 $(OBJCOPY) --only-keep-debug $$< $$@ 529 $(ADD_GNU_DEBUGLINK) $$@ $$< 530 else # not solaris 531 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) 532 $(RM) $$@ 533 $(OBJCOPY) --only-keep-debug $$< $$@ 534 $(OBJCOPY) --add-gnu-debuglink=$$@ $$< 535 endif 536 537 ifeq ($(ZIP_DEBUGINFO_FILES), 1) 538 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).diz 539 540 ifeq ($(OPENJDK_TARGET_OS), windows) 541 $$($1_OBJECT_DIR)/$$($1_PROGRAM).diz : $$($1_TARGET) 542 $(CD) $$($1_OBJECT_DIR) \ 543 && $(ZIP) -q $$@ $$($1_PROGRAM).map $$($1_PROGRAM).pdb 544 else 545 $$($1_OBJECT_DIR)/$$(PROGRAM_PREFIX)$$($1_PROGRAM).diz : $$($1_TARGET) \ 546 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo 547 $(CD) $$($1_OBJECT_DIR) \ 548 && $(ZIP) -q $$@ $$($1_PROGRAM).debuginfo 549 endif 550 else 551 ifeq ($(OPENJDK_TARGET_OS), windows) 552 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \ 553 $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb 554 else 555 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo | 434 435 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% 436 $(CP) $$< $$@ 437 438 439 ifeq ($(OPENJDK_TARGET_OS), solaris) 440 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. 441 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from 442 # empty section headers until a fixed $(OBJCOPY) is available. 443 # An empty section header has sh_addr == 0 and sh_size == 0. 444 # This problem has only been seen on Solaris X64, but we call this tool 445 # on all Solaris builds just in case. 446 # 447 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. 448 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. 449 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) \ 450 $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) 451 $(RM) $$@ 452 $(FIX_EMPTY_SEC_HDR_FLAGS) $$< 453 $(OBJCOPY) --only-keep-debug $$< $$@ 454 $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $$(@F) $$< 455 else # not solaris 456 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) 457 $(RM) $$@ 458 $(OBJCOPY) --only-keep-debug $$< $$@ 459 $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< 460 endif # Touch to not retrigger rule on rebuild 461 $(TOUCH) $$@ 462 463 ifeq ($(ZIP_DEBUGINFO_FILES), 1) 464 $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz 465 466 ifeq ($(OPENJDK_TARGET_OS), windows) 467 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) 468 $(CD) $$($1_OBJECT_DIR) \ 469 && $(ZIP) -q $$@ $$($1_LIBRARY).map $$($1_LIBRARY).pdb 470 else 471 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) \ 472 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo 473 $(CD) $$($1_OBJECT_DIR) \ 474 && $(ZIP) -q $$@ $$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo 475 endif 476 else 477 ifeq ($(OPENJDK_TARGET_OS), windows) 478 $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \ 479 $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb 480 else 481 $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo 510 endif 511 512 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% 513 $(CP) $$< $$@ 514 515 ifeq ($(OPENJDK_TARGET_OS), solaris) 516 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. 517 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from 518 # empty section headers until a fixed $(OBJCOPY) is available. 519 # An empty section header has sh_addr == 0 and sh_size == 0. 520 # This problem has only been seen on Solaris X64, but we call this tool 521 # on all Solaris builds just in case. 522 # 523 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. 524 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. 525 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \ 526 $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) 527 $(RM) $$@ 528 $(FIX_EMPTY_SEC_HDR_FLAGS) $$< 529 $(OBJCOPY) --only-keep-debug $$< $$@ 530 $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $$(@F) $$< 531 else # not solaris 532 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) 533 $(RM) $$@ 534 $(OBJCOPY) --only-keep-debug $$< $$@ 535 $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< 536 endif 537 $(TOUCH) $$@ 538 539 ifeq ($(ZIP_DEBUGINFO_FILES), 1) 540 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).diz 541 542 ifeq ($(OPENJDK_TARGET_OS), windows) 543 $$($1_OBJECT_DIR)/$$($1_PROGRAM).diz : $$($1_TARGET) 544 $(CD) $$($1_OBJECT_DIR) \ 545 && $(ZIP) -q $$@ $$($1_PROGRAM).map $$($1_PROGRAM).pdb 546 else 547 $$($1_OBJECT_DIR)/$$(PROGRAM_PREFIX)$$($1_PROGRAM).diz : $$($1_TARGET) \ 548 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo 549 $(CD) $$($1_OBJECT_DIR) \ 550 && $(ZIP) -q $$@ $$($1_PROGRAM).debuginfo 551 endif 552 else 553 ifeq ($(OPENJDK_TARGET_OS), windows) 554 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \ 555 $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb 556 else 557 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo |