This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] [BFD] Fix override of COMMON symbols for a.out


Hello,

Am Fri, 12 Jan 2018 21:20:43 +1030 schrieb Alan Modra
<amodra@gmail.com>:
> On Thu, Jan 11, 2018 at 07:54:54PM +0100, gnikl@users.sourceforge.net
> wrote:
> > 2018-01-12  Gunther Nikl  <gnikl@users.sourceforge.net>
> > 
> > 	* bfd/aoutx.h (aout_link_check_ar_symbols): Add
> > 	  bfd_link_common_skip_none and make it the switch default.
> 
> Applied with a slight variation.
> 
> 	* aoutx.h (aout_link_check_ar_symbols): Remove default and
> handle bfd_link_common_skip_none in switch.

Thank you for the quick response.

I looked at the code since I need similar code in the generic linker.
Does the code below for bfd/linker.c/generic_link_check_archive_element
look ok? It has one additional case for absolute symbols.

Regards,
Gunther Nikl

+	  if (h->type == bfd_link_hash_common)
+	    {
+	      int skip = 0;
+
+	      switch (info->common_skip_ar_symbols)
+		{
+		case bfd_link_common_skip_none:
+		  break;
+		case bfd_link_common_skip_text:
+		  skip = p->section->flags & SEC_CODE ? 1 : 0;
+		  break; 
+		case bfd_link_common_skip_data:
+		  skip = p->section->flags & SEC_DATA ? 1 : 0;
+		  break;
+		case bfd_link_common_skip_abs:
+		  skip = bfd_is_abs_section (p->section) ? 1 : 0;
+		  break;
+		case bfd_link_common_skip_all:
+		  skip = 1;
+		  break;
+		}
+
+	      if (skip)
+		continue;
+	    }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]