common/makefiles/NativeCompilation.gmk

changeset 874
dfbc93f26f38
parent 855
ac09e62d5e6b
child 972
f3697e0783e2
equal deleted inserted replaced
873:72ef61df77e5 874:dfbc93f26f38
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

mercurial