Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Alan Modra <amodra@gmail.com>
To: Sergio Durigan Junior <sergiodj@redhat.com>
Cc: binutils@sourceware.org, gdb-patches@sourceware.org,
	Pedro Alves <palves@redhat.com>
Subject: Re: [RFC/PATCH] Fix `bfd_{get,set}_*' macros
Date: Thu, 03 May 2012 07:54:00 -0000	[thread overview]
Message-ID: <20120503075305.GJ635@bubble.grove.modra.org> (raw)
In-Reply-To: <m3mx5pyjzq.fsf@redhat.com>

On Thu, May 03, 2012 at 01:19:21AM -0300, Sergio Durigan Junior wrote:
> 	* bfd-in2.h (bfd_get_section_name, bfd_get_section_vma,
> 	bfd_get_section_lma, bfd_get_section_alignment, bfd_section_name,
> 	bfd_section_size, bfd_get_section_flags,
> 	bfd_get_section_userdata): Rewrite macros in order to use the
> 	`bfd' argument.
> 	* elf-vxworks.c (elf_vxworks_finish_dynamic_entry): Pass proper `bfd'
> 	as the first argument for `bfd_get_section_alignment'.
> 	* elf32-arm.c (create_ifunc_sections): Likewise, for
> 	`bfd_set_section_alignment'.

The above is OK.  You guessed wrongly for all the bfd args below,
except in elf64-ppc.c.  I suggest expanding the macros instead.  I've
noted the correct bfds below but IMO these macros serve no useful
purpose.

> 	* elf32-m32r.c (m32r_elf_relocate_section): Likewise, for
> 	`bfd_get_section_name'.
> 	* elf32-microblaze.c (microblaze_elf_relocate_section): Likewise.
> 	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
> 	(ppc_elf_relocate_section): Likewise.
> 	* elf64-mmix.c (mmix_final_link_relocate): Declaring proper `bfd'
> 	variable.
> 	* elf64-ppc.c (create_linkage_sections): Pass proper `bfd' as the
> 	first argument for `bfd_set_section_alignment'.

> --- a/bfd/elf32-m32r.c
> +++ b/bfd/elf32-m32r.c
> @@ -3007,7 +3007,7 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
>  		const char *name;
>  
>  		BFD_ASSERT (sec != NULL);
> -		name = bfd_get_section_name (abfd, sec);
> +		name = bfd_get_section_name (input_bfd, sec);

sec->owner

> --- a/bfd/elf32-microblaze.c
> +++ b/bfd/elf32-microblaze.c
> @@ -839,7 +839,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
>  		/* Only relocate if the symbol is defined.  */
>  		if (sec)
>  		  {
> -		    name = bfd_get_section_name (abfd, sec);
> +		    name = bfd_get_section_name (input_bfd, sec);

sec->owner

> @@ -868,7 +868,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
>  					       bfd_get_filename (input_bfd),
>  					       sym_name,
>  					       microblaze_elf_howto_table[(int) r_type]->name,
> -					       bfd_get_section_name (abfd, sec));
> +					       bfd_get_section_name (input_bfd, sec));

sec->owner

> @@ -884,7 +884,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
>  		/* Only relocate if the symbol is defined.  */
>  		if (sec)
>  		  {
> -		    name = bfd_get_section_name (abfd, sec);
> +		    name = bfd_get_section_name (input_bfd, sec);

sec->owner

> @@ -913,7 +913,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
>  					       bfd_get_filename (input_bfd),
>  					       sym_name,
>  					       microblaze_elf_howto_table[(int) r_type]->name,
> -					       bfd_get_section_name (abfd, sec));
> +					       bfd_get_section_name (input_bfd, sec));

sec->owner

> --- a/bfd/elf32-ppc.c
> +++ b/bfd/elf32-ppc.c
> @@ -5867,7 +5867,7 @@ ppc_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
>  	{
>  	  /* Strip these too.  */
>  	}
> -      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
> +      else if (CONST_STRNEQ (bfd_get_section_name (ibfd, s), ".rela"))

htab->elf.dynobj

> @@ -7886,8 +7886,10 @@ ppc_elf_relocate_section (bfd *output_bfd,
>  	      unresolved_reloc = TRUE;
>  	      break;
>  	    }
> -	  BFD_ASSERT (strcmp (bfd_get_section_name (abfd, sec), ".got") == 0
> -		      || strcmp (bfd_get_section_name (abfd, sec), ".cgot") == 0);
> +	  BFD_ASSERT (strcmp (bfd_get_section_name (input_bfd, sec),
> +			      ".got") == 0
> +		      || strcmp (bfd_get_section_name (input_bfd, sec),
> +				 ".cgot") == 0);

sec->owner twice

> @@ -7937,7 +7939,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
>  	      }
>  	    addend -= SYM_VAL (sda);
>  
> -	    name = bfd_get_section_name (abfd, sec->output_section);
> +	    name = bfd_get_section_name (input_bfd, sec->output_section);

output_bfd

> @@ -7969,7 +7971,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
>  	      }
>  	    addend -= SYM_VAL (sda);
>  
> -	    name = bfd_get_section_name (abfd, sec->output_section);
> +	    name = bfd_get_section_name (input_bfd, sec->output_section);

output_bfd

> @@ -7998,7 +8000,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
>  		break;
>  	      }
>  
> -	    name = bfd_get_section_name (abfd, sec->output_section);
> +	    name = bfd_get_section_name (input_bfd, sec->output_section);

output_bfd

> --- a/bfd/elf64-mmix.c
> +++ b/bfd/elf64-mmix.c
> @@ -1771,6 +1771,8 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
>  	first_global = 255;
>        else
>  	{
> +	  bfd *abfd = NULL;
> +
>  	  first_global = bfd_get_section_vma (abfd, regsec) / 8;

input_section->output_section->owner

-- 
Alan Modra
Australia Development Lab, IBM


  reply	other threads:[~2012-05-03  7:54 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-03  4:19 Sergio Durigan Junior
2012-05-03  7:54 ` Alan Modra [this message]
2012-05-03 16:01   ` Pedro Alves
2012-05-03 16:22   ` Sergio Durigan Junior
2012-05-04 21:46     ` Sergio Durigan Junior
2012-05-10  1:54       ` Sergio Durigan Junior
2012-05-16 18:28       ` nick clifton
2012-05-16 19:48         ` Sergio Durigan Junior
2012-05-03 13:17 ` Doug Evans

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120503075305.GJ635@bubble.grove.modra.org \
    --to=amodra@gmail.com \
    --cc=binutils@sourceware.org \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    --cc=sergiodj@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox