public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Special ELF section flags vs. linker-specified bfd flags
@ 2006-10-18 13:09 Richard Sandiford
  2006-10-18 14:42 ` H. J. Lu
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Richard Sandiford @ 2006-10-18 13:09 UTC (permalink / raw)
  To: binutils

There seems to be a bad interaction between:

bfd/
2006-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/2593
	* elf.c (_bfd_elf_new_section_hook): Don't set section ELF type
	and flags if its BFD flags have been set.
	(_bfd_elf_init_private_section_data): Don't copy the output ELF
	section type from input if it has been set to something
	different.

and:

ld/
2006-08-01  H.J. Lu  <hongjiu.lu@intel.com>

	* ldlang.c (init_os): Add flags. Replace bfd_make_section with
	bfd_make_section_with_flags.
	(exp_init_os): Updated.
	(lang_add_section): Call init_os with flags.
	(map_input_to_output_sections): Likewise.

The _bfd_elf_new_section_hook hunk was:

   bed = get_elf_backend_data (abfd);
   sec->use_rela_p = bed->default_use_rela_p;
 
-  /* When we read a file, we don't need section type and flags unless
-     it is a linker created section.  They will be overridden in
-     _bfd_elf_make_section_from_shdr anyway.  */
-  if (abfd->direction != read_direction
+  /* When we read a file or section BFD flags have been set, we don't
+     need section type and flags unless it is a linker created section.
+     They will be overridden in _bfd_elf_make_section_from_shdr
+     anyway.  */
+  if ((!sec->flags && abfd->direction != read_direction)
       || (sec->flags & SEC_LINKER_CREATED) != 0)
     {
       ssect = (*bed->get_sec_type_attr) (abfd, sec);

but the later linker change makes init_os propagate the input section's
bfd flags to the new output section.  We therefore skip the get_sec_type_attr
stuff for normal sections, even though the user hasn't overridden the flags.
This in turn means we miss target-specific SHF_* flags that have no
corresponding bfd section flag.

This caused reloc-1-rel.d and reloc-1-n32.d to fail on MIPS.  This loop:

      else if (info->relocatable)
	{
	  bfd_vma lo = MINUS_ONE;

	  /* Find the GP-relative section with the lowest offset.  */
	  for (o = abfd->sections; o != NULL; o = o->next)
	    if (o->vma < lo
		&& (elf_section_data (o)->this_hdr.sh_flags & SHF_MIPS_GPREL))
	      lo = o->vma;

	  /* And calculate GP relative to that.  */
	  elf_gp (abfd) = lo + ELF_MIPS_GP_OFFSET (info);
	}

wouldn't see any SHF_MIPS_GPREL sections, and would use -1 as the
GP value.

I think the fix below is in the spirit of HJ's other changes.
Patch tested on mips{,64}{,el}-{elf,linux-gnu} and mips-sgi-irix6.5.
OK to install?

Richard


bfd/
	* elf.c (_bfd_elf_init_private_section_data): Copy the ELF section
	flags as well as the section type.

Index: bfd/elf.c
===================================================================
RCS file: /cvs/src/src/bfd/elf.c,v
retrieving revision 1.359
diff -u -p -r1.359 elf.c
--- bfd/elf.c	15 Oct 2006 14:22:13 -0000	1.359
+++ bfd/elf.c	18 Oct 2006 10:10:31 -0000
@@ -5954,7 +5954,10 @@ _bfd_elf_init_private_section_data (bfd 
      section flags.  */
   if (osec->flags == isec->flags
       || (osec->flags == 0 && elf_section_type (osec) == SHT_NULL))
-    elf_section_type (osec) = elf_section_type (isec);
+    {
+      elf_section_type (osec) = elf_section_type (isec);
+      elf_section_flags (osec) = elf_section_flags (isec);
+    }
 
   /* Set things up for objcopy and relocatable link.  The output
      SHT_GROUP section will have its elf_next_in_group pointing back

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-18 13:09 Special ELF section flags vs. linker-specified bfd flags Richard Sandiford
@ 2006-10-18 14:42 ` H. J. Lu
  2006-10-18 14:51   ` Richard Sandiford
  2006-10-18 16:20 ` H. J. Lu
  2006-10-19 19:29 ` H. J. Lu
  2 siblings, 1 reply; 12+ messages in thread
From: H. J. Lu @ 2006-10-18 14:42 UTC (permalink / raw)
  To: binutils, richard

On Wed, Oct 18, 2006 at 11:15:32AM +0100, Richard Sandiford wrote:
> There seems to be a bad interaction between:
> 
> bfd/
> 2006-04-26  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR binutils/2593
> 	* elf.c (_bfd_elf_new_section_hook): Don't set section ELF type
> 	and flags if its BFD flags have been set.
> 	(_bfd_elf_init_private_section_data): Don't copy the output ELF
> 	section type from input if it has been set to something
> 	different.
> 
> and:
> 
> ld/
> 2006-08-01  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	* ldlang.c (init_os): Add flags. Replace bfd_make_section with
> 	bfd_make_section_with_flags.
> 	(exp_init_os): Updated.
> 	(lang_add_section): Call init_os with flags.
> 	(map_input_to_output_sections): Likewise.
> 
> The _bfd_elf_new_section_hook hunk was:
> 
>    bed = get_elf_backend_data (abfd);
>    sec->use_rela_p = bed->default_use_rela_p;
>  
> -  /* When we read a file, we don't need section type and flags unless
> -     it is a linker created section.  They will be overridden in
> -     _bfd_elf_make_section_from_shdr anyway.  */
> -  if (abfd->direction != read_direction
> +  /* When we read a file or section BFD flags have been set, we don't
> +     need section type and flags unless it is a linker created section.
> +     They will be overridden in _bfd_elf_make_section_from_shdr
> +     anyway.  */
> +  if ((!sec->flags && abfd->direction != read_direction)
>        || (sec->flags & SEC_LINKER_CREATED) != 0)
>      {
>        ssect = (*bed->get_sec_type_attr) (abfd, sec);
> 
> but the later linker change makes init_os propagate the input section's
> bfd flags to the new output section.  We therefore skip the get_sec_type_attr
> stuff for normal sections, even though the user hasn't overridden the flags.
> This in turn means we miss target-specific SHF_* flags that have no
> corresponding bfd section flag.
> 
> This caused reloc-1-rel.d and reloc-1-n32.d to fail on MIPS.  This loop:

Can I see the failure with a cross binutils?


H.J.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-18 14:42 ` H. J. Lu
@ 2006-10-18 14:51   ` Richard Sandiford
  0 siblings, 0 replies; 12+ messages in thread
From: Richard Sandiford @ 2006-10-18 14:51 UTC (permalink / raw)
  To: H. J. Lu; +Cc: binutils

"H. J. Lu" <hjl@lucon.org> writes:
> On Wed, Oct 18, 2006 at 11:15:32AM +0100, Richard Sandiford wrote:
>> There seems to be a bad interaction between:
>> 
>> bfd/
>> 2006-04-26  H.J. Lu  <hongjiu.lu@intel.com>
>> 
>> 	PR binutils/2593
>> 	* elf.c (_bfd_elf_new_section_hook): Don't set section ELF type
>> 	and flags if its BFD flags have been set.
>> 	(_bfd_elf_init_private_section_data): Don't copy the output ELF
>> 	section type from input if it has been set to something
>> 	different.
>> 
>> and:
>> 
>> ld/
>> 2006-08-01  H.J. Lu  <hongjiu.lu@intel.com>
>> 
>> 	* ldlang.c (init_os): Add flags. Replace bfd_make_section with
>> 	bfd_make_section_with_flags.
>> 	(exp_init_os): Updated.
>> 	(lang_add_section): Call init_os with flags.
>> 	(map_input_to_output_sections): Likewise.
>> 
>> The _bfd_elf_new_section_hook hunk was:
>> 
>>    bed = get_elf_backend_data (abfd);
>>    sec->use_rela_p = bed->default_use_rela_p;
>>  
>> -  /* When we read a file, we don't need section type and flags unless
>> -     it is a linker created section.  They will be overridden in
>> -     _bfd_elf_make_section_from_shdr anyway.  */
>> -  if (abfd->direction != read_direction
>> +  /* When we read a file or section BFD flags have been set, we don't
>> +     need section type and flags unless it is a linker created section.
>> +     They will be overridden in _bfd_elf_make_section_from_shdr
>> +     anyway.  */
>> +  if ((!sec->flags && abfd->direction != read_direction)
>>        || (sec->flags & SEC_LINKER_CREATED) != 0)
>>      {
>>        ssect = (*bed->get_sec_type_attr) (abfd, sec);
>> 
>> but the later linker change makes init_os propagate the input section's
>> bfd flags to the new output section.  We therefore skip the get_sec_type_attr
>> stuff for normal sections, even though the user hasn't overridden the flags.
>> This in turn means we miss target-specific SHF_* flags that have no
>> corresponding bfd section flag.
>> 
>> This caused reloc-1-rel.d and reloc-1-n32.d to fail on MIPS.  This loop:
>
> Can I see the failure with a cross binutils?

Yeah, target mips64-linux-gnu.

Richard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-18 13:09 Special ELF section flags vs. linker-specified bfd flags Richard Sandiford
  2006-10-18 14:42 ` H. J. Lu
@ 2006-10-18 16:20 ` H. J. Lu
  2006-10-19  1:12   ` Richard Sandiford
  2006-10-19 19:29 ` H. J. Lu
  2 siblings, 1 reply; 12+ messages in thread
From: H. J. Lu @ 2006-10-18 16:20 UTC (permalink / raw)
  To: binutils, richard

On Wed, Oct 18, 2006 at 11:15:32AM +0100, Richard Sandiford wrote:
> Index: bfd/elf.c
> ===================================================================
> RCS file: /cvs/src/src/bfd/elf.c,v
> retrieving revision 1.359
> diff -u -p -r1.359 elf.c
> --- bfd/elf.c	15 Oct 2006 14:22:13 -0000	1.359
> +++ bfd/elf.c	18 Oct 2006 10:10:31 -0000
> @@ -5954,7 +5954,10 @@ _bfd_elf_init_private_section_data (bfd 
>       section flags.  */
>    if (osec->flags == isec->flags
>        || (osec->flags == 0 && elf_section_type (osec) == SHT_NULL))
> -    elf_section_type (osec) = elf_section_type (isec);
> +    {
> +      elf_section_type (osec) = elf_section_type (isec);
> +      elf_section_flags (osec) = elf_section_flags (isec);
> +    }

I don't think we need to check elf_section_type (osec) == SHT_NULL.
If elf_section_type (osec) != SHT_NULL, we may have a problem
elsewhere.


H.J.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-18 16:20 ` H. J. Lu
@ 2006-10-19  1:12   ` Richard Sandiford
  0 siblings, 0 replies; 12+ messages in thread
From: Richard Sandiford @ 2006-10-19  1:12 UTC (permalink / raw)
  To: H. J. Lu; +Cc: binutils

"H. J. Lu" <hjl@lucon.org> writes:
> On Wed, Oct 18, 2006 at 11:15:32AM +0100, Richard Sandiford wrote:
>> Index: bfd/elf.c
>> ===================================================================
>> RCS file: /cvs/src/src/bfd/elf.c,v
>> retrieving revision 1.359
>> diff -u -p -r1.359 elf.c
>> --- bfd/elf.c	15 Oct 2006 14:22:13 -0000	1.359
>> +++ bfd/elf.c	18 Oct 2006 10:10:31 -0000
>> @@ -5954,7 +5954,10 @@ _bfd_elf_init_private_section_data (bfd 
>>       section flags.  */
>>    if (osec->flags == isec->flags
>>        || (osec->flags == 0 && elf_section_type (osec) == SHT_NULL))
>> -    elf_section_type (osec) = elf_section_type (isec);
>> +    {
>> +      elf_section_type (osec) = elf_section_type (isec);
>> +      elf_section_flags (osec) = elf_section_flags (isec);
>> +    }
>
> I don't think we need to check elf_section_type (osec) == SHT_NULL.
> If elf_section_type (osec) != SHT_NULL, we may have a problem
> elsewhere.

I don't see how that's related to my patch though.  I'd rather just
change this one thing.  I don't object to someone changing the condition
too, but I think it should be done separately.

Richard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-18 13:09 Special ELF section flags vs. linker-specified bfd flags Richard Sandiford
  2006-10-18 14:42 ` H. J. Lu
  2006-10-18 16:20 ` H. J. Lu
@ 2006-10-19 19:29 ` H. J. Lu
  2006-10-19 21:40   ` Richard Sandiford
  2 siblings, 1 reply; 12+ messages in thread
From: H. J. Lu @ 2006-10-19 19:29 UTC (permalink / raw)
  To: binutils, richard

On Wed, Oct 18, 2006 at 11:15:32AM +0100, Richard Sandiford wrote:
> There seems to be a bad interaction between:
> 
> bfd/
> 2006-04-26  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR binutils/2593
> 	* elf.c (_bfd_elf_new_section_hook): Don't set section ELF type
> 	and flags if its BFD flags have been set.
> 	(_bfd_elf_init_private_section_data): Don't copy the output ELF
> 	section type from input if it has been set to something
> 	different.
> 
> and:
> 
> ld/
> 2006-08-01  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	* ldlang.c (init_os): Add flags. Replace bfd_make_section with
> 	bfd_make_section_with_flags.
> 	(exp_init_os): Updated.
> 	(lang_add_section): Call init_os with flags.
> 	(map_input_to_output_sections): Likewise.
> 
> The _bfd_elf_new_section_hook hunk was:
> 
>    bed = get_elf_backend_data (abfd);
>    sec->use_rela_p = bed->default_use_rela_p;
>  
> -  /* When we read a file, we don't need section type and flags unless
> -     it is a linker created section.  They will be overridden in
> -     _bfd_elf_make_section_from_shdr anyway.  */
> -  if (abfd->direction != read_direction
> +  /* When we read a file or section BFD flags have been set, we don't
> +     need section type and flags unless it is a linker created section.
> +     They will be overridden in _bfd_elf_make_section_from_shdr
> +     anyway.  */
> +  if ((!sec->flags && abfd->direction != read_direction)
>        || (sec->flags & SEC_LINKER_CREATED) != 0)
>      {
>        ssect = (*bed->get_sec_type_attr) (abfd, sec);
> 
> but the later linker change makes init_os propagate the input section's
> bfd flags to the new output section.  We therefore skip the get_sec_type_attr
> stuff for normal sections, even though the user hasn't overridden the flags.
> This in turn means we miss target-specific SHF_* flags that have no
> corresponding bfd section flag.
> 
> This caused reloc-1-rel.d and reloc-1-n32.d to fail on MIPS.  This loop:
> 
>       else if (info->relocatable)
> 	{
> 	  bfd_vma lo = MINUS_ONE;
> 
> 	  /* Find the GP-relative section with the lowest offset.  */
> 	  for (o = abfd->sections; o != NULL; o = o->next)
> 	    if (o->vma < lo
> 		&& (elf_section_data (o)->this_hdr.sh_flags & SHF_MIPS_GPREL))
> 	      lo = o->vma;
> 
> 	  /* And calculate GP relative to that.  */
> 	  elf_gp (abfd) = lo + ELF_MIPS_GP_OFFSET (info);
> 	}
> 
> wouldn't see any SHF_MIPS_GPREL sections, and would use -1 as the
> GP value.
> 
> I think the fix below is in the spirit of HJ's other changes.
> Patch tested on mips{,64}{,el}-{elf,linux-gnu} and mips-sgi-irix6.5.
> OK to install?
> 

"makec check" failed in ld on Linux/x86-64:

FAIL: Run with libdl3a.so
FAIL: Run with libdl3b.so
FAIL: Run with libdl3c.so
...
ERROR: tmpdir/3.x: nm failed
ERROR: tmpdir/4.x: nm failed
ERROR: tmpdir/5.x: nm failed


H.J.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-19 19:29 ` H. J. Lu
@ 2006-10-19 21:40   ` Richard Sandiford
  2006-10-19 21:43     ` H. J. Lu
  0 siblings, 1 reply; 12+ messages in thread
From: Richard Sandiford @ 2006-10-19 21:40 UTC (permalink / raw)
  To: H. J. Lu; +Cc: binutils

"H. J. Lu" <hjl@lucon.org> writes:
> "makec check" failed in ld on Linux/x86-64:
>
> FAIL: Run with libdl3a.so
> FAIL: Run with libdl3b.so
> FAIL: Run with libdl3c.so
> ...
> ERROR: tmpdir/3.x: nm failed
> ERROR: tmpdir/4.x: nm failed
> ERROR: tmpdir/5.x: nm failed

Hmm, it works fine for me on the same target.  What do the logs say?

Richard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-19 21:40   ` Richard Sandiford
@ 2006-10-19 21:43     ` H. J. Lu
  2006-10-19 21:47       ` H. J. Lu
  0 siblings, 1 reply; 12+ messages in thread
From: H. J. Lu @ 2006-10-19 21:43 UTC (permalink / raw)
  To: binutils, richard

On Thu, Oct 19, 2006 at 07:12:33PM +0100, Richard Sandiford wrote:
> "H. J. Lu" <hjl@lucon.org> writes:
> > "makec check" failed in ld on Linux/x86-64:
> >
> > FAIL: Run with libdl3a.so
> > FAIL: Run with libdl3b.so
> > FAIL: Run with libdl3c.so
> > ...
> > ERROR: tmpdir/3.x: nm failed
> > ERROR: tmpdir/4.x: nm failed
> > ERROR: tmpdir/5.x: nm failed
> 
> Hmm, it works fine for me on the same target.  What do the logs say?
> 

I see those on the current FC5/x86-64. I got

/export/build/gnu/binutils-last/build-x86_64-linux/ld/../binutils/nm-new
--demangle tmpdir/3.x >tmpdir/nm.out BFD: tmpdir/3.x: no group info for
section .rodata
ERROR: tmpdir/3.x: nm failed
UNRESOLVED: selective4

H.J.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-19 21:43     ` H. J. Lu
@ 2006-10-19 21:47       ` H. J. Lu
  2006-10-19 21:51         ` H. J. Lu
  0 siblings, 1 reply; 12+ messages in thread
From: H. J. Lu @ 2006-10-19 21:47 UTC (permalink / raw)
  To: binutils, richard

On Thu, Oct 19, 2006 at 12:20:35PM -0700, H. J. Lu wrote:
> On Thu, Oct 19, 2006 at 07:12:33PM +0100, Richard Sandiford wrote:
> > "H. J. Lu" <hjl@lucon.org> writes:
> > > "makec check" failed in ld on Linux/x86-64:
> > >
> > > FAIL: Run with libdl3a.so
> > > FAIL: Run with libdl3b.so
> > > FAIL: Run with libdl3c.so
> > > ...
> > > ERROR: tmpdir/3.x: nm failed
> > > ERROR: tmpdir/4.x: nm failed
> > > ERROR: tmpdir/5.x: nm failed
> > 
> > Hmm, it works fine for me on the same target.  What do the logs say?
> > 
> 
> I see those on the current FC5/x86-64. I got
> 
> /export/build/gnu/binutils-last/build-x86_64-linux/ld/../binutils/nm-new
> --demangle tmpdir/3.x >tmpdir/nm.out BFD: tmpdir/3.x: no group info for
> section .rodata
> ERROR: tmpdir/3.x: nm failed
> UNRESOLVED: selective4

We don't want to copy all input section flags to output section.
For example, we don't want SHF_GROUP in output section in a DSO
or an executable.


H.J.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-19 21:47       ` H. J. Lu
@ 2006-10-19 21:51         ` H. J. Lu
  2006-10-20 14:37           ` Richard Sandiford
  2006-10-27 14:56           ` Alan Modra
  0 siblings, 2 replies; 12+ messages in thread
From: H. J. Lu @ 2006-10-19 21:51 UTC (permalink / raw)
  To: binutils, richard

On Thu, Oct 19, 2006 at 12:29:15PM -0700, H. J. Lu wrote:
> On Thu, Oct 19, 2006 at 12:20:35PM -0700, H. J. Lu wrote:
> > On Thu, Oct 19, 2006 at 07:12:33PM +0100, Richard Sandiford wrote:
> > > "H. J. Lu" <hjl@lucon.org> writes:
> > > > "makec check" failed in ld on Linux/x86-64:
> > > >
> > > > FAIL: Run with libdl3a.so
> > > > FAIL: Run with libdl3b.so
> > > > FAIL: Run with libdl3c.so
> > > > ...
> > > > ERROR: tmpdir/3.x: nm failed
> > > > ERROR: tmpdir/4.x: nm failed
> > > > ERROR: tmpdir/5.x: nm failed
> > > 
> > > Hmm, it works fine for me on the same target.  What do the logs say?
> > > 
> > 
> > I see those on the current FC5/x86-64. I got
> > 
> > /export/build/gnu/binutils-last/build-x86_64-linux/ld/../binutils/nm-new
> > --demangle tmpdir/3.x >tmpdir/nm.out BFD: tmpdir/3.x: no group info for
> > section .rodata
> > ERROR: tmpdir/3.x: nm failed
> > UNRESOLVED: selective4
> 
> We don't want to copy all input section flags to output section.
> For example, we don't want SHF_GROUP in output section in a DSO
> or an executable.
> 

This patch copies OS/PROC specific flags from input section to output
section. Is it the best way?

I also changed elf_section_type (osec) == SHT_NULL to assert since
none SHT_NULL type may be a linker error.


H.J.
-----
2006-10-19  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (_bfd_elf_init_private_section_data): Assert output
	section ELF type instead of check if it is SHT_NULL.  Copy
	OS/PROC specific flags from input section to output section.

--- bfd/elf.c.stabs	2006-10-19 09:28:18.000000000 -0700
+++ bfd/elf.c	2006-10-19 12:55:05.000000000 -0700
@@ -5977,9 +5977,17 @@ _bfd_elf_init_private_section_data (bfd 
      output BFD section flags have been set to something different.
      elf_fake_sections will set ELF section type based on BFD
      section flags.  */
-  if (osec->flags == isec->flags
-      || (osec->flags == 0 && elf_section_type (osec) == SHT_NULL))
-    elf_section_type (osec) = elf_section_type (isec);
+  if (osec->flags == isec->flags || !osec->flags)
+    {
+      BFD_ASSERT (osec->flags == isec->flags 
+		  || (!osec->flags
+		      && elf_section_type (osec) == SHT_NULL));
+      elf_section_type (osec) = elf_section_type (isec);
+    }
+
+  /* FIXME: Is this correct for all OS/PROC specific flags?  */
+  elf_section_flags (osec) |= (elf_section_flags (isec)
+			       & (SHF_MASKOS | SHF_MASKPROC));
 
   /* Set things up for objcopy and relocatable link.  The output
      SHT_GROUP section will have its elf_next_in_group pointing back

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-19 21:51         ` H. J. Lu
@ 2006-10-20 14:37           ` Richard Sandiford
  2006-10-27 14:56           ` Alan Modra
  1 sibling, 0 replies; 12+ messages in thread
From: Richard Sandiford @ 2006-10-20 14:37 UTC (permalink / raw)
  To: H. J. Lu; +Cc: binutils

"H. J. Lu" <hjl@lucon.org> writes:
> This patch copies OS/PROC specific flags from input section to output
> section. Is it the best way?

I realise this question probably wasn't directed at me specifically,
but since I was the one that started this thread, I'm happy with
doing the flag merge unconditionally (as you have) or just changing
my patch to only merge OS- and architecture-specific flags.  I don't
think it makes much difference for the MIPS-specific flags, at least
not on sensible objects.  We only use MIPS-specific flags for well-known
section names for which the bfd section flags should have a particular
value.

If there's a reason to prefer one approach over the other though
(i.e. conditional vs. unconditional),  it might be worth expanding the
comment to say what it is.  If it's just a "pick a card" thing, don't
bother. ;)

Richard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Special ELF section flags vs. linker-specified bfd flags
  2006-10-19 21:51         ` H. J. Lu
  2006-10-20 14:37           ` Richard Sandiford
@ 2006-10-27 14:56           ` Alan Modra
  1 sibling, 0 replies; 12+ messages in thread
From: Alan Modra @ 2006-10-27 14:56 UTC (permalink / raw)
  To: H. J. Lu; +Cc: binutils, richard

On Thu, Oct 19, 2006 at 02:23:28PM -0700, H. J. Lu wrote:
> 	* elf.c (_bfd_elf_init_private_section_data): Assert output
> 	section ELF type instead of check if it is SHT_NULL.  Copy
> 	OS/PROC specific flags from input section to output section.

OK.

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2006-10-27  3:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-10-18 13:09 Special ELF section flags vs. linker-specified bfd flags Richard Sandiford
2006-10-18 14:42 ` H. J. Lu
2006-10-18 14:51   ` Richard Sandiford
2006-10-18 16:20 ` H. J. Lu
2006-10-19  1:12   ` Richard Sandiford
2006-10-19 19:29 ` H. J. Lu
2006-10-19 21:40   ` Richard Sandiford
2006-10-19 21:43     ` H. J. Lu
2006-10-19 21:47       ` H. J. Lu
2006-10-19 21:51         ` H. J. Lu
2006-10-20 14:37           ` Richard Sandiford
2006-10-27 14:56           ` Alan Modra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).