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: cleanup PT_GNU_STACK size handling


On Mon, Oct 22, 2012 at 01:02:59PM +0100, Nathan Sidwell wrote:
> On 10/22/12 03:04, Alan Modra wrote:
> >On Tue, Oct 16, 2012 at 03:45:37PM +0100, Nathan Sidwell wrote:
> >>+ 		  /* For default_execstack to trigger without an explicit
> >>+ 		     stack size, there must be an input note section.  */
> >Nope.  The default triggers on the *absence* of a note section.  Also,
> >why scan object files when given an explicit -z execstack?  I find
> >your "clean up" here quite the opposite.  The rest of the patch looks
> 
> Ah, I see I'd got confused by default_execstack's semantics.  For it
> to apply there has to be one input bfd with a note and one section
> without a note.  I've fixed that up, using the existing algorithm.
> As for the scanning with an explicit execstack, I can't recall what
> I was thinking there, so I've changed that part to not scan.

This part of your patch still looks unnecessarily convoluted to me,
and I'm not sure it is correct yet.  I prefer if you leave this code
as is (but moved), making just the following change to ensure
stack_flags is set when stack size is given.  That's really what you
want, isn't it?

-      if (notesec)
-	{
-	  elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | exec;
-	  if (exec && info->relocatable
-	      && notesec->output_section != bfd_abs_section_ptr)
-	    notesec->output_section->flags |= SEC_CODE;
-	}
+      if (notesec || info->stacksize > 0)
+	elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | exec;
+      if (notesec && exec && info->relocatable
+	  && notesec->output_section != bfd_abs_section_ptr)
+	notesec->output_section->flags |= SEC_CODE;

-- 
Alan Modra
Australia Development Lab, IBM


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