diff options
author | Geoffrey Keating <geoffk@apple.com> | 2004-10-26 06:09:05 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2004-10-26 06:09:05 +0000 |
commit | f1a66265195781c7f0cc6c627706bdf33a313657 (patch) | |
tree | 55b7af27d9c57fd804dcf7cea7736d928a9d995d /gcc/dwarf2out.c | |
parent | 595961fccbefdeb23a17856f78026f7b15efb67b (diff) | |
download | gcc-f1a66265195781c7f0cc6c627706bdf33a313657.zip gcc-f1a66265195781c7f0cc6c627706bdf33a313657.tar.gz gcc-f1a66265195781c7f0cc6c627706bdf33a313657.tar.bz2 |
Index: gcc/gcc/ChangeLog
2004-10-25 Geoffrey Keating <geoffk@apple.com>
* config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
to 'non-weak'.
(MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
(ASM_MAKE_LABEL_LINKONCE): Delete.
(ASM_WEAKEN_DECL): New.
(ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
(ASM_DECLARE_FUNCTION_NAME): Likewise.
(TEXT_SECTION_ASM_OP): Add a tab.
(DATA_SECTION_ASM_OP): Likewise.
(SECTION_FUNCTION): Add a tab. Use fputs. Don't call
data_section on every section change.
(EXTRA_SECTIONS): Add a bunch of new extra sections.
(EXTRA_SECTION_FUNCTIONS): Likewise.
(USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
(JCR_SECTION_NAME): Define.
(TARGET_SECTION_TYPE_FLAGS): Don't define.
* config/darwin.c (darwin_encode_section_info): A symbol is defined
in this file if it is not weak.
(textcoal_section): Delete.
(datacoal_section): Delete.
(darwin_make_decl_one_only): Delete.
(machopic_select_section): Handle functions.
(darwin_asm_named_section): Add a tab.
(darwin_section_type_flags): Delete.
(darwin_unique_section): Delete contents.
(darwin_emit_unwind_label): Add a tab. Make decls weak if
DECL_WEAK is set.
* config/darwin-protos.h (darwin_section_type_flags): Delete.
(darwin_make_decl_one_only): Delete.
(text_coal_section): New.
(text_unlikely_section): New.
(text_unlikely_coal_section): New.
(const_coal_section): New.
(data_coal_section): New.
(const_data_coal_section): New.
* varasm.c (function_section): Honour
USE_SELECT_SECTION_FOR_FUNCTIONS.
* dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
TARGET_USES_WEAK_UNWIND_INFO is in effect.
* dbxout.c (dbxout_source_file): Don't change sections while
a function is being output.
Index: gcc/testsuite/ChangeLog
2004-10-25 Geoffrey Keating <geoffk@apple.com>
* objc.dg/image-info.m: Update for changes to section selection.
Index: libjava/ChangeLog
2004-10-25 Geoffrey Keating <geoffk@apple.com>
* Makefile.am (DARWIN_CRT_SRC): New.
(libgcj_la_SOURCES): Use it.
* configure.ac: Define USING_DARWIN_CRT when on Darwin.
* darwin.cc: New file.
* include/jvm.h (_Jv_RegisterClasses): Constify.
(_Jv_RegisterClasses_Counted): New prototype.
* java/lang/Class.h: Include stddef.h.
(_Jv_RegisterClasses): Constify.
(_Jv_RegisterClasses_Counted): New prototype.
(Object): Make '_Jv_RegisterClasses_Counted' a friend.
* java/lang/natClassLoader.cc (_Jv_RegisterClasses): Constify.
(_Jv_RegisterClasses_Counted): New function.
* configure: Regenerate.
* Makefile.in: Regenerate.
* gcj/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
Index: libstdc++-v3/ChangeLog
2004-10-25 Geoffrey Keating <geoffk@apple.com>
* libsupc++/new_op.cc (new): Make weak.
* libsupc++/new_opnt.cc (new): Make weak.
* libsupc++/new_opv.cc (new): Make weak.
* libsupc++/new_opvnt.cc (new): Make weak.
* libsupc++/delete_op.cc (delete): Make weak.
* libsupc++/delete_opnt.cc (delete): Make weak.
* libsupc++/delete_opv.cc (delete): Make weak.
* libsupc++/delete_opvnt.cc (delete): Make weak.
From-SVN: r89572
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index a6b923c..63a4614 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -2050,7 +2050,7 @@ output_call_frame_info (int for_eh) /* If we make FDEs linkonce, we may have to emit an empty label for an FDE that wouldn't otherwise be emitted. We want to avoid having an FDE kept around when the function it refers to is - discarded. (Example where this matters: a primary function + discarded. Example where this matters: a primary function template in C++ requires EH information, but an explicit specialization doesn't. */ if (TARGET_USES_WEAK_UNWIND_INFO @@ -2059,7 +2059,7 @@ output_call_frame_info (int for_eh) for (i = 0; i < fde_table_in_use; i++) if ((fde_table[i].nothrow || fde_table[i].all_throwers_are_sibcalls) && !fde_table[i].uses_eh_lsda - && ! DECL_ONE_ONLY (fde_table[i].decl)) + && ! DECL_WEAK (fde_table[i].decl)) targetm.asm_out.unwind_label (asm_out_file, fde_table[i].decl, for_eh, /* empty */ 1); @@ -2074,8 +2074,7 @@ output_call_frame_info (int for_eh) for (i = 0; i < fde_table_in_use; i++) if (fde_table[i].uses_eh_lsda) any_eh_needed = any_lsda_needed = true; - else if (TARGET_USES_WEAK_UNWIND_INFO - && DECL_ONE_ONLY (fde_table[i].decl)) + else if (TARGET_USES_WEAK_UNWIND_INFO && DECL_WEAK (fde_table[i].decl)) any_eh_needed = true; else if (! fde_table[i].nothrow && ! fde_table[i].all_throwers_are_sibcalls) @@ -2222,7 +2221,7 @@ output_call_frame_info (int for_eh) /* Don't emit EH unwind info for leaf functions that don't need it. */ if (for_eh && !flag_asynchronous_unwind_tables && flag_exceptions && (fde->nothrow || fde->all_throwers_are_sibcalls) - && (! TARGET_USES_WEAK_UNWIND_INFO || ! DECL_ONE_ONLY (fde->decl)) + && ! (TARGET_USES_WEAK_UNWIND_INFO && DECL_WEAK (fde_table[i].decl)) && !fde->uses_eh_lsda) continue; |