From 8da3dbc59acb44f417fef548b4015fb4f538a8c8 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 12 Feb 2007 11:14:01 +0000 Subject: [PATCH] * elflink.c (bfd_elf_discard_info): Tidy setting of "eh". --- bfd/ChangeLog | 4 ++++ bfd/elflink.c | 15 +++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3c64c6a11eb..5dcf47be343 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2007-02-12 Alan Modra + + * elflink.c (bfd_elf_discard_info): Tidy setting of "eh". + 2007-02-05 Dave Brolley Stan Cox diff --git a/bfd/elflink.c b/bfd/elflink.c index b4dfcebae91..0b4064189fb 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -1,6 +1,6 @@ /* ELF linking support for BFD. Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006 Free Software Foundation, Inc. + 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -10938,12 +10938,15 @@ bfd_elf_discard_info (bfd *output_bfd, struct bfd_link_info *info) if ((abfd->flags & DYNAMIC) != 0) continue; - eh = bfd_get_section_by_name (abfd, ".eh_frame"); - if (info->relocatable - || (eh != NULL + eh = NULL; + if (!info->relocatable) + { + eh = bfd_get_section_by_name (abfd, ".eh_frame"); + if (eh != NULL && (eh->size == 0 - || bfd_is_abs_section (eh->output_section)))) - eh = NULL; + || bfd_is_abs_section (eh->output_section))) + eh = NULL; + } stab = bfd_get_section_by_name (abfd, ".stab"); if (stab != NULL -- 2.30.2