public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ada/41419]  New: [450 regression] many new ACATs failures (breakpoint instruction in object)
@ 2009-09-20 15:15 joel at gcc dot gnu dot org
  2009-09-20 15:21 ` [Bug ada/41419] " joel at gcc dot gnu dot org
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: joel at gcc dot gnu dot org @ 2009-09-20 15:15 UTC (permalink / raw)
  To: gcc-bugs

Starting program:
/users/joel/test-gcc/gcc-svn/gcc/testsuite/ada/acats/work-jmr3904/tests/a/a85013b/a85013b 

,.,. A85013B ACATS 2.5 88-01-01 00:00:00
---- A85013B CHECK THAT A SUBPROGRAM CAN BE RENAMED WITHIN ITS OWN BODY 
                AND THAT THE NEW NAME CAN BE USED IN A RENAMING
                DECLARATION.

Program received signal SIGTRAP, Trace/breakpoint trap.
0x88004be8 in system.task_primitives.operations.create_task (t=0x881a2e90, 
    wrapper=(system.address) 0x8800c7c8, stack_size=<value optimized out>, 
    priority=122) at s-taprop.adb:962
962             Adjusted_Stack_Size - Adjusted_Stack_Size mod Page_Size;
Current language:  auto
The current source language is "auto; currently ada".
(gdb) bt
#0  0x88004be8 in system.task_primitives.operations.create_task (t=0x881a2e90, 
    wrapper=(system.address) 0x8800c7c8, stack_size=<value optimized out>, 
    priority=122) at s-taprop.adb:962
#1  0x8800bbe0 in system.tasking.stages.activate_tasks (
    chain_access=<value optimized out>) at s-tassta.adb:291
#2  0x8800390c in _ada_a85013b ()
(gdb) 

When I disassemble at 0x88004be8, I see this:

0x88004be0 <system__task_primitives__operations__create_task+136>:      bnez   
s4,0x88004bec <system__task_primitives__operations__create_task+148>
0x88004be4 <system__task_primitives__operations__create_task+140>:      divu   
zero,s5,s4
0x88004be8 <system__task_primitives__operations__create_task+144>:      break  
0x7

To confirm this was actually in the program executable, I objdump'ed it.
88004be0:       16800002        bnez    s4,88004bec
<system__task_primitives__operations__create_task+0x94>
88004be4:       02b4001b        divu    zero,s5,s4
88004be8:       0007000d        break   0x7


-- 
           Summary: [450 regression] many new ACATs failures (breakpoint
                    instruction in object)
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ada
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: joel at gcc dot gnu dot org
GCC target triplet: mips-rtems4.10


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
@ 2009-09-20 15:21 ` joel at gcc dot gnu dot org
  2009-09-20 15:33 ` laurent at guerby dot net
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: joel at gcc dot gnu dot org @ 2009-09-20 15:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from joel at gcc dot gnu dot org  2009-09-20 15:20 -------
Should have included command line.  This is for arch=r3900.

mips-rtems4.10-gnatmake --RTS=. -fstack-check -v -O -gnatws -O2
-I/users/joel/test-gcc/gcc-svn/gcc/testsuite/ada/acats/work-jmr3904/support
a85013b.adb -bargs -Mgnat_main -largs
-B/users/joel/test-gcc/install-svn/mips-rtems4.10/jmr3904/lib/ -specs bsp_specs
-qrtems -march=r3900 -Wa,-xgot -G0
/users/joel/test-gcc/gcc-svn/gcc/testsuite/ada/acats/work-jmr3904/rtems_init.o


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
  2009-09-20 15:21 ` [Bug ada/41419] " joel at gcc dot gnu dot org
@ 2009-09-20 15:33 ` laurent at guerby dot net
  2009-09-20 15:56 ` joel at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: laurent at guerby dot net @ 2009-09-20 15:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from laurent at guerby dot net  2009-09-20 15:33 -------
Ada code in s-taprop-posix.adb

      Result := pthread_attr_init (Attributes'Access);
      pragma Assert (Result = 0 or else Result = ENOMEM);

      if Result /= 0 then
         Succeeded := False;
         return;
      end if;

Could you breakpoint on pthread_attr_init and see what's going on from there
(what is passed to and returned by RTEMS)? May be the "break 07" is just what
pragma Assert does.


-- 

laurent at guerby dot net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |laurent at guerby dot net


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
  2009-09-20 15:21 ` [Bug ada/41419] " joel at gcc dot gnu dot org
  2009-09-20 15:33 ` laurent at guerby dot net
@ 2009-09-20 15:56 ` joel at gcc dot gnu dot org
  2009-09-20 16:28 ` laurent at guerby dot net
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: joel at gcc dot gnu dot org @ 2009-09-20 15:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from joel at gcc dot gnu dot org  2009-09-20 15:56 -------
The debug information is weak since optimization hides a lot.  But it looks
like Page_Size might be 0.


(gdb) c
Continuing.

,.,. A85013B ACATS 2.5 88-01-01 00:00:00
---- A85013B CHECK THAT A SUBPROGRAM CAN BE RENAMED WITHIN ITS OWN BODY 
                AND THAT THE NEW NAME CAN BE USED IN A RENAMING
                DECLARATION.

Breakpoint 3, pthread_attr_init (attr=0x880b6c78) at
/users/joel/test-gcc/rtems/c/src/../../cpukit/posix/src/pthreadattrinit.c:28
28        if ( !attr )
(gdb) s
31        *attr = _POSIX_Threads_Default_attributes;
(gdb) 
32         return 0;
(gdb) 
system.task_primitives.operations.create_task (t=0x881a2e90,
wrapper=(system.address) 0x8800c7c8, stack_size=<value optimized out>,
priority=122) at s-taprop.adb:967
967           if Result /= 0 then
Current language:  auto
The current source language is "auto; currently ada".
(gdb) p Result
$1 = <value optimized out>
(gdb) s
960           Adjusted_Stack_Size := Adjusted_Stack_Size + Page_Size - 1;
(gdb) p Adjusted_Stack_Size
$2 = <value optimized out>
(gdb) s
974               (Attributes'Access, PTHREAD_CREATE_DETACHED);
(gdb) s
pthread_attr_setdetachstate (attr=0x880b6c78, detachstate=0) at
/users/joel/test-gcc/rtems/c/src/../../cpukit/posix/src/pthreadattrsetdetachstate.c:26
26        if ( !attr || !attr->is_initialized )
Current language:  auto
The current source language is "auto; currently c".
(gdb) s
29        switch ( detachstate ) {
(gdb) 
32            attr->detachstate = detachstate;
(gdb) 
33            return 0;
(gdb) 
system.task_primitives.operations.create_task (t=0x881a2e90,
wrapper=(system.address) 0x8800c7c8, stack_size=<value optimized out>,
priority=122) at s-taprop.adb:962
962             Adjusted_Stack_Size - Adjusted_Stack_Size mod Page_Size;
Current language:  auto
The current source language is "auto; currently ada".
(gdb) 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2009-09-20 15:56 ` joel at gcc dot gnu dot org
@ 2009-09-20 16:28 ` laurent at guerby dot net
  2009-09-20 16:40 ` joel at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: laurent at guerby dot net @ 2009-09-20 16:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from laurent at guerby dot net  2009-09-20 16:28 -------
from s-osinte-rtems.adb:

   function Get_Page_Size return size_t is
   begin
      return 0;
   end Get_Page_Size;

May be this value wasn't used before...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2009-09-20 16:28 ` laurent at guerby dot net
@ 2009-09-20 16:40 ` joel at gcc dot gnu dot org
  2009-09-20 16:46 ` joel at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: joel at gcc dot gnu dot org @ 2009-09-20 16:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from joel at gcc dot gnu dot org  2009-09-20 16:40 -------
The LynxOS s-osinte-lynxos.ads has this:

   function Get_Page_Size return size_t;
   function Get_Page_Size return Address;
   pragma Import (C, Get_Page_Size, "getpagesize");
   --  Returns the size of a page, or 0 if this is not relevant on this
   --  target

I can't find any reference in the GNU/Linux man pages or at opengroup.org on 0
being allowed or not allowed.  But apparently whoever worked on that port
thought 0 was a valid thing to return also.

Doesn't matter much. RTEMS has PAGE_SIZE defined and the support for
sysconf(_SC_PAGESIZE) so I will just add a wrapper to that for the legacy 
getpagesize().


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2009-09-20 16:40 ` joel at gcc dot gnu dot org
@ 2009-09-20 16:46 ` joel at gcc dot gnu dot org
  2009-09-20 16:58 ` charlet at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: joel at gcc dot gnu dot org @ 2009-09-20 16:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from joel at gcc dot gnu dot org  2009-09-20 16:46 -------
Every s-osinte*.ads which has Get_Page_Size includes a comment about 0 being
valid to return and indicate that Page_Size does not matter.

   --  Returns the size of a page, or 0 if this is not relevant on this target

Either every OS's interface has a wrong claim in its comments or someone
violated this assumption.

Before I paper over this on RTEMS, I would appreciate someone making a comment
on the general requirements.  


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2009-09-20 16:46 ` joel at gcc dot gnu dot org
@ 2009-09-20 16:58 ` charlet at gcc dot gnu dot org
  2009-09-20 16:59 ` laurent at guerby dot net
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: charlet at gcc dot gnu dot org @ 2009-09-20 16:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from charlet at gcc dot gnu dot org  2009-09-20 16:58 -------
Get_Page_Size should indeed now not be a dummy value and cannot be 0.
I'll take care of updating the comments in s-osinte*.ads when I get a chance


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2009-09-20 16:58 ` charlet at gcc dot gnu dot org
@ 2009-09-20 16:59 ` laurent at guerby dot net
  2009-09-20 17:12 ` joel at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: laurent at guerby dot net @ 2009-09-20 16:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from laurent at guerby dot net  2009-09-20 16:59 -------
Given s-taprop-posix code it's obvious that Page_Size cannot be zero:

      --  Round stack size as this is required by some OSes (Darwin)

      Adjusted_Stack_Size := Adjusted_Stack_Size + Page_Size - 1;
      Adjusted_Stack_Size :=
        Adjusted_Stack_Size - Adjusted_Stack_Size mod Page_Size;


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2009-09-20 16:59 ` laurent at guerby dot net
@ 2009-09-20 17:12 ` joel at gcc dot gnu dot org
  2009-09-20 19:40 ` joel at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: joel at gcc dot gnu dot org @ 2009-09-20 17:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from joel at gcc dot gnu dot org  2009-09-20 17:12 -------
Thanks for the quick response.  I am in the process of adding getpagesize() to
RTEMS.  We already had sysconf(_SC_PAGESIZE) and returned 4096.  I will change
the s-osinte-rtems.ad* to use that and post a patch when it is tested.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [450 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2009-09-20 17:12 ` joel at gcc dot gnu dot org
@ 2009-09-20 19:40 ` joel at gcc dot gnu dot org
  2009-09-20 21:00 ` [Bug ada/41419] [4.5 " pinskia at gcc dot gnu dot org
  2009-09-22 13:07 ` joel at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: joel at gcc dot gnu dot org @ 2009-09-20 19:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from joel at gcc dot gnu dot org  2009-09-20 19:40 -------
Created an attachment (id=18619)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18619&action=view)
RTEMS Get_Page_Size should no longer return 0

With this patch only 1 ACATS failed.  Is it OK to commit?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [4.5 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2009-09-20 19:40 ` joel at gcc dot gnu dot org
@ 2009-09-20 21:00 ` pinskia at gcc dot gnu dot org
  2009-09-22 13:07 ` joel at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2009-09-20 21:00 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[450 regression] many new   |[4.5 regression] many new
                   |ACATs failures (breakpoint  |ACATs failures (breakpoint
                   |instruction in object)      |instruction in object)
   Target Milestone|---                         |4.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

* [Bug ada/41419] [4.5 regression] many new ACATs failures (breakpoint instruction in object)
  2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2009-09-20 21:00 ` [Bug ada/41419] [4.5 " pinskia at gcc dot gnu dot org
@ 2009-09-22 13:07 ` joel at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: joel at gcc dot gnu dot org @ 2009-09-22 13:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from joel at gcc dot gnu dot org  2009-09-22 13:07 -------
Patch applied to head.  GNAT/RTEMS for the mips has 1 failure now and that is a
blown stack.  c380004 takes a lot of stack.

Thanks.


-- 

joel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41419


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

end of thread, other threads:[~2009-09-22 13:07 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-20 15:15 [Bug ada/41419] New: [450 regression] many new ACATs failures (breakpoint instruction in object) joel at gcc dot gnu dot org
2009-09-20 15:21 ` [Bug ada/41419] " joel at gcc dot gnu dot org
2009-09-20 15:33 ` laurent at guerby dot net
2009-09-20 15:56 ` joel at gcc dot gnu dot org
2009-09-20 16:28 ` laurent at guerby dot net
2009-09-20 16:40 ` joel at gcc dot gnu dot org
2009-09-20 16:46 ` joel at gcc dot gnu dot org
2009-09-20 16:58 ` charlet at gcc dot gnu dot org
2009-09-20 16:59 ` laurent at guerby dot net
2009-09-20 17:12 ` joel at gcc dot gnu dot org
2009-09-20 19:40 ` joel at gcc dot gnu dot org
2009-09-20 21:00 ` [Bug ada/41419] [4.5 " pinskia at gcc dot gnu dot org
2009-09-22 13:07 ` joel at gcc dot gnu dot org

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).