ada/10670: gcc ignors 'pragma Machine_Attribute' directive

berndtrog@yahoo.com berndtrog@yahoo.com
Wed May 7 20:20:00 GMT 2003


>Number:         10670
>Category:       ada
>Synopsis:       gcc ignors 'pragma Machine_Attribute' directive
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed May 07 20:06:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Bernd Trog
>Release:        gcc version 3.3 20030127 (prerelease)
>Organization:
>Environment:
Linux, i386
Reading specs from /usr/local/gcc330-20030127/lib/gcc-lib/i686-pc-linux-gnu/3.3/specs
Configured with: ../gcc-20030127/configure --prefix=/usr/local/gcc330-20030127 --enable-languages=c,c++,ada
Thread model: posix
gcc version 3.3 20030127 (prerelease)
>Description:
gcc ignors 'pragma Machine_Attribute' directive:

$gnatmake bootloader.adb 
gcc -c bootloader.adb
bootloader.adb: In function `bootloader':
bootloader.adb:7: warning: `section (".bootloader")' attribute directive ignored
gnatbind -x bootloader.ali
gnatlink bootloader.ali

$objdump -h bootloader.o

bootloader.o:     file format elf32-i386

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000003b  00000000  00000000  00000034  2**2
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
  1 .data         00000000  00000000  00000000  00000070  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  00000000  00000000  00000070  2**2
                  ALLOC
  3 .rodata       0000000c  00000000  00000000  00000070  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .comment      00000026  00000000  00000000  0000007c  2**0
                  CONTENTS, READONLY

No .bootloader section!
>How-To-Repeat:
with Ada.Text_Io;

procedure bootloader is
   procedure Boot;

   pragma Machine_Attribute (
                             Entity => Boot,
                             Attribute_Name => "section ("".bootloader"")"
                            );

   procedure Boot
   is
   begin
      Ada.Text_Io.Put_line("Boot");
   end;


begin
   Ada.Text_Io.Put_line("Test");
end;
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list