Warning Help: .init_array/.fini_array @progbits

View: New views
2 Messages — Rating Filter:   Alert me  

Warning Help: .init_array/.fini_array @progbits

by rain z :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

hello
everyone

when I was using binutils-2.19.1 to assemble the .s file which is
generated by gcc which contained a instruction (.section .init_array ,
"aw", @progbits), I got a warning like that  "warning: ignoring
incorrect section type for .init_array"

well, I found out that there is a FIXME at  gas/config/obj-elf.c , and
I also have googled it, it did need to fix, and at binutils-2.13.2, it
had already fixed it, I have tested it, but why hasn't it been fixed
at binutis-2.19.1?

Re: Warning Help: .init_array/.fini_array @progbits

by Alan Modra :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Fri, Nov 06, 2009 at 02:49:01PM +0800, rain z wrote:
> when I was using binutils-2.19.1 to assemble the .s file which is
> generated by gcc which contained a instruction (.section .init_array ,
> "aw", @progbits), I got a warning like that  "warning: ignoring
> incorrect section type for .init_array"

That's good.  You are being warning about a bug in gcc.

> well, I found out that there is a FIXME at  gas/config/obj-elf.c , and
> I also have googled it, it did need to fix, and at binutils-2.13.2, it
> had already fixed it, I have tested it, but why hasn't it been fixed
> at binutis-2.19.1?

It has been fixed.  The FIXME dates back to March 2002 and should
been removed a long time ago.

        * config/obj-elf.c (obj_elf_change_section): Remove FIXME from
        comment.

Index: gas/config/obj-elf.c
===================================================================
RCS file: /cvs/src/src/gas/config/obj-elf.c,v
retrieving revision 1.124
diff -u -p -r1.124 obj-elf.c
--- gas/config/obj-elf.c 2 Nov 2009 11:49:48 -0000 1.124
+++ gas/config/obj-elf.c 6 Nov 2009 11:45:36 -0000
@@ -588,13 +588,13 @@ obj_elf_change_section (const char *name
       else if (type != ssect->type)
  {
   if (old_sec == NULL
-      /* FIXME: gcc, as of 2002-10-22, will emit
+      /* Some older versions of gcc will emit
 
  .section .init_array,"aw",@progbits
 
  for __attribute__ ((section (".init_array"))).
  "@progbits" is incorrect.  Also for x86-64 large bss
- sections, gcc, as of 2005-07-06, will emit
+ sections, some older versions of gcc will emit
 
  .section .lbss,"aw",@progbits
 

--
Alan Modra
Australia Development Lab, IBM