1 # |
1 # |
2 # Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. |
2 # Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. |
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 # |
4 # |
5 # This code is free software; you can redistribute it and/or modify it |
5 # This code is free software; you can redistribute it and/or modify it |
6 # under the terms of the GNU General Public License version 2 only, as |
6 # under the terms of the GNU General Public License version 2 only, as |
7 # published by the Free Software Foundation. |
7 # published by the Free Software Foundation. |
479 # C++ Interpreter |
479 # C++ Interpreter |
480 CFLAGS += -DCC_INTERP |
480 CFLAGS += -DCC_INTERP |
481 endif |
481 endif |
482 |
482 |
483 # Flags for Debugging |
483 # Flags for Debugging |
|
484 # The -g0 setting allows the C++ frontend to inline, which is a big win. |
|
485 # The -xs setting disables 'lazy debug info' which puts everything in |
|
486 # the .so instead of requiring the '.o' files. |
|
487 ifneq ($(OBJCOPY),) |
|
488 OPT_CFLAGS += -g0 -xs |
|
489 endif |
484 DEBUG_CFLAGS = -g |
490 DEBUG_CFLAGS = -g |
485 FASTDEBUG_CFLAGS = -g0 |
491 FASTDEBUG_CFLAGS = -g0 |
486 # The -g0 setting allows the C++ frontend to inline, which is a big win. |
492 ifneq ($(OBJCOPY),) |
|
493 DEBUG_CFLAGS += -xs |
|
494 FASTDEBUG_CFLAGS += -xs |
|
495 endif |
487 |
496 |
488 # Special global options for SS12 |
497 # Special global options for SS12 |
489 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1) |
498 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1) |
490 # There appears to be multiple issues with the new Dwarf2 debug format, so |
499 # There appears to be multiple issues with the new Dwarf2 debug format, so |
491 # we tell the compiler to use the older 'stabs' debug format all the time. |
500 # we tell the compiler to use the older 'stabs' debug format all the time. |
500 # The -g option makes static data global and the "-Qoption ccfe |
509 # The -g option makes static data global and the "-Qoption ccfe |
501 # -xglobalstatic" option tells the compiler to not globalize static |
510 # -xglobalstatic" option tells the compiler to not globalize static |
502 # data using a unique globalization prefix. Instead force the use of |
511 # data using a unique globalization prefix. Instead force the use of |
503 # a static globalization prefix based on the source filepath so the |
512 # a static globalization prefix based on the source filepath so the |
504 # objects from two identical compilations are the same. |
513 # objects from two identical compilations are the same. |
|
514 # EXTRA_CFLAGS only covers vm_version.cpp for some reason |
|
515 #EXTRA_CFLAGS += -Qoption ccfe -xglobalstatic |
|
516 #OPT_CFLAGS += -Qoption ccfe -xglobalstatic |
505 #DEBUG_CFLAGS += -Qoption ccfe -xglobalstatic |
517 #DEBUG_CFLAGS += -Qoption ccfe -xglobalstatic |
506 #FASTDEBUG_CFLAGS += -Qoption ccfe -xglobalstatic |
518 #FASTDEBUG_CFLAGS += -Qoption ccfe -xglobalstatic |
507 |
519 |
508 ifeq (${COMPILER_REV_NUMERIC}, 502) |
520 ifeq (${COMPILER_REV_NUMERIC}, 502) |
509 COMPILER_DATE := $(shell $(CPP) -V 2>&1 | sed -n '/^.*[ ]C++[ ]\([1-9]\.[0-9][0-9]*\)/p' | awk '{ print $$NF; }') |
521 COMPILER_DATE := $(shell $(CPP) -V 2>&1 | sed -n '/^.*[ ]C++[ ]\([1-9]\.[0-9][0-9]*\)/p' | awk '{ print $$NF; }') |
560 # (The exit 1 is necessary to cause a build failure if the command fails and |
572 # (The exit 1 is necessary to cause a build failure if the command fails and |
561 # multiple commands are strung together, and the final semicolon is necessary |
573 # multiple commands are strung together, and the final semicolon is necessary |
562 # since the hook must terminate itself as a valid command.) |
574 # since the hook must terminate itself as a valid command.) |
563 |
575 |
564 # Also, strip debug and line number information (worth about 1.7Mb). |
576 # Also, strip debug and line number information (worth about 1.7Mb). |
|
577 # If we can create .debuginfo files, then the VM is stripped in vm.make |
|
578 # and this macro is not used. |
565 STRIP_LIB.CC/POST_HOOK = $(STRIP) -x $@ || exit 1; |
579 STRIP_LIB.CC/POST_HOOK = $(STRIP) -x $@ || exit 1; |
566 # STRIP_LIB.CC/POST_HOOK is incorporated into LINK_LIB.CC/POST_HOOK |
580 # STRIP_LIB.CC/POST_HOOK is incorporated into LINK_LIB.CC/POST_HOOK |
567 # in certain configurations, such as product.make. Other configurations, |
581 # in certain configurations, such as product.make. Other configurations, |
568 # such as debug.make, do not include the strip operation. |
582 # such as debug.make, do not include the strip operation. |