433 ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) |
433 ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) |
434 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% |
434 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% |
435 $(CP) $$< $$@ |
435 $(CP) $$< $$@ |
436 endif |
436 endif |
437 |
437 |
438 ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X |
438 ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X |
439 ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows |
439 ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows |
440 ifeq ($(OPENJDK_TARGET_OS), solaris) |
440 ifeq ($(OPENJDK_TARGET_OS), solaris) |
441 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. |
441 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. |
442 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from |
442 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from |
443 # empty section headers until a fixed $(OBJCOPY) is available. |
443 # empty section headers until a fixed $(OBJCOPY) is available. |
444 # An empty section header has sh_addr == 0 and sh_size == 0. |
444 # An empty section header has sh_addr == 0 and sh_size == 0. |
445 # This problem has only been seen on Solaris X64, but we call this tool |
445 # This problem has only been seen on Solaris X64, but we call this tool |
446 # on all Solaris builds just in case. |
446 # on all Solaris builds just in case. |
447 # |
447 # |
448 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
448 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
449 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. |
449 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. |
450 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) \ |
450 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) \ |
451 $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) |
451 $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) |
452 $(RM) $$@ |
452 $(RM) $$@ |
453 $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$< |
453 $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$< |
454 $(OBJCOPY) --only-keep-debug $$< $$@ |
454 $(OBJCOPY) --only-keep-debug $$< $$@ |
455 $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$< |
455 $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$< |
456 else # not solaris |
456 else # not solaris |
457 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) |
457 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) |
458 $(RM) $$@ |
458 $(RM) $$@ |
459 $(OBJCOPY) --only-keep-debug $$< $$@ |
459 $(OBJCOPY) --only-keep-debug $$< $$@ |
460 $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< |
460 $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< |
461 endif # Touch to not retrigger rule on rebuild |
461 endif # Touch to not retrigger rule on rebuild |
462 $(TOUCH) $$@ |
462 $(TOUCH) $$@ |
463 endif # !windows |
463 endif # !windows |
464 endif # !macosx |
464 endif # !macosx |
465 |
465 |
466 ifeq ($(ZIP_DEBUGINFO_FILES), true) |
466 ifeq ($(ZIP_DEBUGINFO_FILES), true) |
467 ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet |
467 ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet |
468 $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz |
468 $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz |
469 |
469 |
470 ifeq ($(OPENJDK_TARGET_OS), windows) |
470 ifeq ($(OPENJDK_TARGET_OS), windows) |
471 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) |
471 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) |
472 $(CD) $$($1_OBJECT_DIR) \ |
472 $(CD) $$($1_OBJECT_DIR) \ |
475 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) \ |
475 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) \ |
476 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo |
476 $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo |
477 $(CD) $$($1_OBJECT_DIR) \ |
477 $(CD) $$($1_OBJECT_DIR) \ |
478 && $(ZIP) -q $$@ $$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo |
478 && $(ZIP) -q $$@ $$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo |
479 endif |
479 endif |
480 endif # no MacOS X support yet |
480 endif # no MacOS X support yet |
481 else |
481 else |
482 ifeq ($(OPENJDK_TARGET_OS), windows) |
482 ifeq ($(OPENJDK_TARGET_OS), windows) |
483 $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \ |
483 $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \ |
484 $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb |
484 $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb |
485 else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files |
485 else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files |
486 $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo |
486 $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo |
487 endif |
487 endif |
488 endif |
488 endif |
489 endif |
489 endif |
490 endif |
490 endif |
517 ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) |
517 ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) |
518 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% |
518 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% |
519 $(CP) $$< $$@ |
519 $(CP) $$< $$@ |
520 endif |
520 endif |
521 |
521 |
522 ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X |
522 ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X |
523 ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows |
523 ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows |
524 ifeq ($(OPENJDK_TARGET_OS), solaris) |
524 ifeq ($(OPENJDK_TARGET_OS), solaris) |
525 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. |
525 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. |
526 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from |
526 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from |
527 # empty section headers until a fixed $(OBJCOPY) is available. |
527 # empty section headers until a fixed $(OBJCOPY) is available. |
528 # An empty section header has sh_addr == 0 and sh_size == 0. |
528 # An empty section header has sh_addr == 0 and sh_size == 0. |
529 # This problem has only been seen on Solaris X64, but we call this tool |
529 # This problem has only been seen on Solaris X64, but we call this tool |
530 # on all Solaris builds just in case. |
530 # on all Solaris builds just in case. |
531 # |
531 # |
532 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
532 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
533 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. |
533 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. |
534 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \ |
534 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \ |
535 $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) |
535 $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) |
536 $(RM) $$@ |
536 $(RM) $$@ |
537 $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$< |
537 $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$< |
538 $(OBJCOPY) --only-keep-debug $$< $$@ |
538 $(OBJCOPY) --only-keep-debug $$< $$@ |
539 $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$< |
539 $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$< |
540 else # not solaris |
540 else # not solaris |
541 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) |
541 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) |
542 $(RM) $$@ |
542 $(RM) $$@ |
543 $(OBJCOPY) --only-keep-debug $$< $$@ |
543 $(OBJCOPY) --only-keep-debug $$< $$@ |
544 $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< |
544 $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< |
545 endif |
545 endif |
546 $(TOUCH) $$@ |
546 $(TOUCH) $$@ |
547 endif # !windows |
547 endif # !windows |
548 endif # !macosx |
548 endif # !macosx |
549 |
549 |
550 ifeq ($(ZIP_DEBUGINFO_FILES), true) |
550 ifeq ($(ZIP_DEBUGINFO_FILES), true) |
551 ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet |
551 ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet |
552 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).diz |
552 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).diz |
553 |
553 |
554 ifeq ($(OPENJDK_TARGET_OS), windows) |
554 ifeq ($(OPENJDK_TARGET_OS), windows) |
555 $$($1_OBJECT_DIR)/$$($1_PROGRAM).diz : $$($1_TARGET) |
555 $$($1_OBJECT_DIR)/$$($1_PROGRAM).diz : $$($1_TARGET) |
556 $(CD) $$($1_OBJECT_DIR) \ |
556 $(CD) $$($1_OBJECT_DIR) \ |
559 $$($1_OBJECT_DIR)/$$(PROGRAM_PREFIX)$$($1_PROGRAM).diz : $$($1_TARGET) \ |
559 $$($1_OBJECT_DIR)/$$(PROGRAM_PREFIX)$$($1_PROGRAM).diz : $$($1_TARGET) \ |
560 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo |
560 $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo |
561 $(CD) $$($1_OBJECT_DIR) \ |
561 $(CD) $$($1_OBJECT_DIR) \ |
562 && $(ZIP) -q $$@ $$($1_PROGRAM).debuginfo |
562 && $(ZIP) -q $$@ $$($1_PROGRAM).debuginfo |
563 endif |
563 endif |
564 endif # no MacOS X support yet |
564 endif # no MacOS X support yet |
565 else |
565 else |
566 ifeq ($(OPENJDK_TARGET_OS), windows) |
566 ifeq ($(OPENJDK_TARGET_OS), windows) |
567 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \ |
567 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \ |
568 $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb |
568 $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb |
569 else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files |
569 else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files |
570 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo |
570 $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo |
571 endif |
571 endif |
572 endif |
572 endif |
573 endif |
573 endif |
574 endif |
574 endif |