Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 35576
Product:  
Component:  
Status: RESOLVED
Resolution: FIXED
Assigned To: Not yet assigned to anyone <unassigned@gcc.gnu.org>
Host:
Reported against  
Priority:  
Severity:  
Target Milestone:  
 
 
Target:
Reporter: Joel Sherrill <joel@gcc.gnu.org>
Add CC:
CC:
Remove selected CCs
Build:
URL:
Summary:
Keywords:
Known to work:
Known to fail:

Attachment Description Type Created Size Actions
gcc-svn-ada-20080306a.diff Ada HW Interrupt Task Enhancement patch 2008-03-13 18:47 18.23 KB Edit | Diff
gcc-ada-hwint-20080421.diff Updated to 4.4.0 20080421 (experimental) [trunk revision 134514] patch 2008-04-21 22:37 9.93 KB Edit | Diff
gcc-4.3.0-ada-hwint-20080507.diff hwint patch for gcc 4.3 branch patch 2008-05-07 18:08 19.65 KB Edit | Diff
gcc-svn-ada-hwint-20080528.diff Latest version patch 2008-05-28 16:29 17.48 KB Edit | Diff
gcc-svn-ada-hwint-20080605.diff updated patch patch 2008-06-05 23:32 76 bytes Edit | Diff
gcc-svn-ada-hwint-20080606.diff Actual patch against svn (this time) patch 2008-06-06 13:12 9.88 KB Edit | Diff
hwint-20080806.diff Lastest version of patch (against rev 138553) patch 2008-08-06 19:37 1.72 KB Edit | Diff
s-interr-hwint.adb New file not in 20080806 diff. text/x-adasrc 2008-08-06 19:40 8.10 KB Edit
hwint-20080806a.diff Latest version against revision 138553 patch 2008-08-06 19:47 1.97 KB Edit | Diff
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 35576 depends on: Show dependency tree
Show dependency graph
Bug 35576 blocks:

Additional Comments:






View Bug Activity   |   Format For Printing   |   Clone This Bug


Description:   Last confirmed: Opened: 2008-03-13 18:45
Currently VxWorks is the only target in gcc to support Ada interrupt tasks
which are tied to hardware interrupt sources.  The code in gcc currently is
VxWorks specific.  The patch attached generalizes this code by adding an
adapter layer consisting of binary semaphores and interrupt management methods.
These are generalized names for the routines currently used in the VxWorks
code.  A diff of the existing s-interr-vxworks.adb and the new
s-interr-hwint.adb will show the largely mechanical changes.  

Both VxWorks and RTEMS targets have been modified to use this code.  It has
been tested on RTEMS.

The code was first posted to gcc-patches in December 2007 against the 4.2
branch and SVN trunk.  All comments were addressed and the code was reposted
again in early March 2008 to gcc-patches.  It received only comments on
mistakes in the comments which were inherited directly from the original
VxWorks code.  I am filing this as a PR in the hopes that this will result in
it finally getting merged.

------- Comment #1 From Joel Sherrill 2008-03-13 18:47 -------
Created an attachment (id=15309) [edit]
Ada HW Interrupt Task Enhancement

------- Comment #2 From Joel Sherrill 2008-03-13 18:47 -------
2007-12-06  Joel Sherrill <joel.sherrill@oarcorp.com>

        * Makefile.in: Switch RTEMS and VxWorks to s-interr-hwint.adb.
        * s-interr-hwint.adb: New file with portable implementation.
        * s-interr-vxworks.adb: Removed.
        * s-osinte-rtems.adb, s-osinte-rtems.ads, s-osinte-vxworks.adb,
        s-osinte-vxworks.ads: Add shared hardware interrupt adapter layer.

------- Comment #3 From Joel Sherrill 2008-04-04 14:32 -------
Patch is still valid against 3 April SVN trunk.  Confirmed on SPARC.

sparc-rtems4.9-gcc (GCC) 4.4.0 20080403 (experimental) [trunk revision 133868]

------- Comment #4 From Joel Sherrill 2008-04-21 22:37 -------
Created an attachment (id=15505) [edit]
Updated to 4.4.0 20080421 (experimental) [trunk revision 134514]

Requires patch in http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01581.html to
even compile Ada targeting RTEMS on the trunk.  

------- Comment #5 From Joel Sherrill 2008-04-21 22:39 -------
Tested against this GCC using gcc-ada-hwint-20080421.diff and patch in 
http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01581.html 

sparc-rtems4.9-gcc (GCC) 4.4.0 20080421 (experimental) [trunk revision 134514]

------- Comment #6 From Joel Sherrill 2008-05-07 18:03 -------
Tested against this GCC using gcc-ada-hwint-20080421.diff and patch in 
http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01581.html 

sparc-rtems4.9-gcc (GCC) 4.4.0 20080502 (experimental) [trunk revision 134885]

------- Comment #7 From Joel Sherrill 2008-05-07 18:08 -------
Created an attachment (id=15612) [edit]
hwint patch for gcc 4.3 branch

This has been tested against sparc-rtems4.9 for interrupt functionality.  ACATS
results reported for mips, i386, powerpc, and sparc.

------- Comment #8 From Joel Sherrill 2008-05-20 16:59 -------
Patch against SVN trunk still OK using

20080519 (experimental) [trunk revision 135528]

------- Comment #9 From Joel Sherrill 2008-05-28 16:29 -------
Created an attachment (id=15692) [edit]
Latest version

Previous patch did not include s-interr-hwint.adb.

There is no patch to s-osinte-rtems.adb since the .ads binds directly to
OS provided routines.

------- Comment #10 From Joel Sherrill 2008-05-28 16:33 -------
Updated changelog entry.  I missed adding the s-hwint-interr.adb file
when I replaced my svn tree a while back.  There are no modifications
to s-osinte-rtems.adb.  The .ads just binds to more routines provided
by RTEMS.

2008-05-28  Joel Sherrill <joel.sherrill@oarcorp.com>

        * Makefile.in: Switch RTEMS and VxWorks to s-interr-hwint.adb.
        * s-interr-hwint.adb: New file with portable implementation.
        * s-interr-vxworks.adb: Removed.
        * s-osinte-rtems.ads, s-osinte-vxworks.adb, s-osinte-vxworks.ads: Add
        shared hardware interrupt adapter layer. RTEMS binds to OS provided
        adapter routines so there are no modifications to s-osinte-rtems.adb.

------- Comment #11 From Joel Sherrill 2008-06-05 23:32 -------
Created an attachment (id=15723) [edit]
updated patch

Updated to account for changes to s-osinte-vxworks.adb while this PR has
lingered in the queue.

------- Comment #12 From Joel Sherrill 2008-06-05 23:34 -------
s-osinte-vxworks.adb is not removed by the patch.  For review purposes, you
should diff s-osinte-vxworks.adb to s-osinte-hwint.adb to see what the changes
were.

2008-05-28  Joel Sherrill <joel.sherrill@oarcorp.com>

        * Makefile.in: Switch RTEMS and VxWorks to s-interr-hwint.adb.
        * s-interr-hwint.adb: New file with portable implementation.  This
        is a mechanical change of s-interr-vxworks.adb to use the new OS
        provided adapter.
        * s-interr-vxworks.adb: Removed.
        * s-osinte-rtems.ads, s-osinte-vxworks.adb, s-osinte-vxworks.ads: Add
        shared hardware interrupt adapter layer. RTEMS binds to OS provided
        adapter routines so there are no modifications to s-osinte-rtems.adb.

------- Comment #13 From Joel Sherrill 2008-06-06 13:12 -------
Created an attachment (id=15724) [edit]
Actual patch against svn (this time) 

------- Comment #14 From Joel Sherrill 2008-06-06 13:16 -------
ChangeLog entry for gcc-svn-ada-hwint-20080606.diff.  Patch does not
remove s-interr-vxworks.adb.  As part of review please 
"diff -u s-interr-vxworks.adb s-interr-hwint.adb"  You should only
see changes to eliminate references to VxWorks specific packages and
to use the adapter routines instead of VxWorks specific ones.

2008-06-06  Joel Sherrill <joel.sherrill@oarcorp.com>

        * Makefile.in: Switch RTEMS and VxWorks to s-interr-hwint.adb.
        * s-interr-hwint.adb: New file with portable implementation.  This
        is a mechanical change of s-interr-vxworks.adb to use the new
        OS provided adapter.
        * s-interr-vxworks.adb: Removed.
        * s-osinte-rtems.ads, s-osinte-vxworks.adb, s-osinte-vxworks.ads: Add
        shared hardware interrupt adapter layer. RTEMS binds to OS provided
        adapter routines so there are no modifications to s-osinte-rtems.adb.

------- Comment #15 From Joel Sherrill 2008-08-06 19:37 -------
Created an attachment (id=16032) [edit]
Lastest version of patch (against rev 138553)

hwint tested on sparc. ACATS results posted for sparc, mips, i386, powerpc, and
arm

------- Comment #16 From Joel Sherrill 2008-08-06 19:38 -------
(From update of attachment 15724 [edit])
Obsoleted by 20080806 patch

------- Comment #17 From Joel Sherrill 2008-08-06 19:40 -------
Created an attachment (id=16033) [edit]
New file not in 20080806 diff.

Must go with http://gcc.gnu.org/bugzilla/attachment.cgi?id=16032

------- Comment #18 From Joel Sherrill 2008-08-06 19:47 -------
Created an attachment (id=16034) [edit]
Latest version against revision 138553

Goes with http://gcc.gnu.org/bugzilla/attachment.cgi?id=16033

s-interr-hwint.adb can be diffed against s-interr-vxworks.adb to see what was
done to make it generic.

------- Comment #19 From Joel Sherrill 2008-09-11 20:08 -------
Now merged on SVN trunk.  Closing.  Thanks Arnaud.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug