summaryrefslogtreecommitdiff
path: root/open_issues/gnat.mdwn
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-18 00:58:35 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-18 00:58:35 +0100
commit49a086299e047b18280457b654790ef4a2e5abfa (patch)
treec2b29e0734d560ce4f58c6945390650b5cac8a1b /open_issues/gnat.mdwn
parente2b3602ea241cd0f6bc3db88bf055bee459028b6 (diff)
Revert "rename open_issues.mdwn to service_solahart_jakarta_selatan__082122541663.mdwn"
This reverts commit 95878586ec7611791f4001a4ee17abf943fae3c1.
Diffstat (limited to 'open_issues/gnat.mdwn')
-rw-r--r--open_issues/gnat.mdwn167
1 files changed, 167 insertions, 0 deletions
diff --git a/open_issues/gnat.mdwn b/open_issues/gnat.mdwn
new file mode 100644
index 00000000..84e8f60b
--- /dev/null
+++ b/open_issues/gnat.mdwn
@@ -0,0 +1,167 @@
+[[!meta copyright="Copyright © 2011, 2012, 2013 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="Enable Ada programming (GCC: GNAT)"]]
+
+[[!tag open_issue_gcc]]
+
+Make the Ada programming language available on GNU/Hurd in its [[GCC]] GNAT
+implementation, and enable Hurd-specific features.
+
+There is a [[!FF_project 259]][[!tag bounty]] on this task.
+
+---
+
+
+# Part I
+
+First, make the language functional, have its test suite pass without errors.
+
+
+## Original [[community/GSoC]] Task Description
+
+[[!inline pages=community/gsoc/project_ideas/gnat feeds=no]]
+
+
+## Debian GCC
+
+There has a patch been added for GNU/kFreeBSD:
+`bfe081336914729fc0180c07ab4afa41965100f2`, `git-svn-id:
+svn://svn.debian.org/gcccvs/branches/sid@5638
+6ca36cf4-e1d1-0310-8c6f-e303bb2178ca'
+
+
+## IRC, freenode, #hurd, 2012-07-17
+
+ <gnu_srs> I've found the remaining problem with gnat backtrace for Hurd!
+ Related to the stack frame.
+ <gnu_srs> This version does not work: one relying on static assumptions
+ about the frame layout
+ <gnu_srs> Causing segfaults.
+ <gnu_srs> Any interest to create a test case out of that piece of code,
+ taken from gcc/ada/tracebak.c?
+ <braunr> gnu_srs: sure
+
+
+### IRC, freenode, #hurd, 2012-07-18
+
+ <braunr> "Digging further revealed that the GNU/Hurd stack frame does not
+ seem to
+ <braunr> be static enough to define USE_GENERIC_UNWINDER in
+ gcc/ada/tracebak.c.
+ <braunr> "
+ <braunr> what do you mean by a "stack frame does not seem to be static
+ enough" ?
+ <gnu_srs> I can qoute from the source file if you want. Otherwise look at
+ the code yourself: gcc/ada/tracebak,c
+ <gnu_srs> I mean that something is wrong with the stack frame for
+ Hurd. This is the code I wanted to use as a test case for the stack.
+ <gnu_srs> Remember?
+ <braunr> more or less
+ <braunr> ah, "static assumptions"
+ <braunr> all right, i don't think anything is "wrong" with stack frames
+ <braunr> but if you use a recent version of gcc, as indicated in the code,
+ -fomit-frame-pointer is enabled by default
+ <braunr> so your stack frame won't look like it used to be without the
+ option
+ <braunr> hence the need for USE_GCC_UNWINDER
+ <braunr> http://en.wikipedia.org/wiki/Call_stack explains this very well
+ <gnu_srs> However, kfreebsd does not seem to need USE_GCC_UNWINDER, how
+ come?
+ <braunr> i guess they don't omit the frame pointer
+ <braunr> your fix is good btw
+ <gnu_srs> thanks
+
+
+### IRC, freenode, #hurd, 2012-07-19
+
+ <gnu_srs> tschwinge: The bug in #681998 should go upstream. Applied in
+ Debian already. Hopefully this is the last patch needed for the port of
+ GNAT to Hurd.
+
+
+## Svante's patch
+
+A basic port has been done by Svante, [[!debbug 668425]], [[!debbug 681998]],
+[[!message-id "1333104917.2962.439.camel@s1499.it.kth.se"]], but there's still
+lots of work remaining.
+The port is not yet upstream: the maintainer raised some concerns that
+[[I|tschwinge]] have not yet found the time to follow up on, [[!message-id
+"1339857758-5032-1-git-send-email-thomas@codesourcery.com"]].
+While the test
+results of the GCC/GNAT testsuite don't look bad (but there are a few
+unresolved issues, and the testsuite appears to be a rather small one), I don't
+know if the port has yet seen any real-world usage, such as using it for any
+bigger Ada code bases, or any Ada testsuites.
+
+
+## `getcontext`/`makecontext`/`setcontext`/`swapcontext` usage analysis
+
+In context of [[glibc/t/tls-threadvar]]. Looking at GCC trunk commit
+f6568ea476aa52a6e23c6db43b3e240cde55783a (2013-04-26).
+
+ gcc/ada/init.c: sigaltstack (&stack, NULL);
+ gcc/ada/init.c: sigaltstack (&stack, NULL);
+ gcc/ada/init.c: sigaltstack (&stack, NULL);
+ gcc/ada/s-osinte-aix.ads: function sigaltstack
+ gcc/ada/s-osinte-aix.ads: pragma Import (C, sigaltstack, "sigaltstack");
+ gcc/ada/s-osinte-android.ads: function sigaltstack
+ gcc/ada/s-osinte-android.ads: pragma Import (C, sigaltstack, "sigaltstack");
+ gcc/ada/s-osinte-darwin.ads: function sigaltstack
+ gcc/ada/s-osinte-darwin.ads: pragma Import (C, sigaltstack, "sigaltstack");
+ gcc/ada/s-osinte-freebsd.ads: function sigaltstack
+ gcc/ada/s-osinte-freebsd.ads: pragma Import (C, sigaltstack, "sigaltstack");
+ gcc/ada/s-osinte-hpux.ads: function sigaltstack
+ gcc/ada/s-osinte-hpux.ads: pragma Import (C, sigaltstack, "sigaltstack");
+ gcc/ada/s-osinte-kfreebsd-gnu.ads: function sigaltstack
+ gcc/ada/s-osinte-kfreebsd-gnu.ads: pragma Import (C, sigaltstack, "sigaltstack");
+ gcc/ada/s-osinte-linux.ads: function sigaltstack
+ gcc/ada/s-osinte-linux.ads: pragma Import (C, sigaltstack, "sigaltstack");
+ gcc/ada/s-osinte-rtems.adb: -- sigaltstack --
+ gcc/ada/s-osinte-rtems.adb: function sigaltstack
+ gcc/ada/s-osinte-rtems.adb: end sigaltstack;
+ gcc/ada/s-osinte-rtems.ads: function sigaltstack
+ gcc/ada/s-osinte-solaris-posix.ads: function sigaltstack
+ gcc/ada/s-osinte-solaris-posix.ads: pragma Import (C, sigaltstack, "sigaltstack");
+ gcc/ada/s-taprop-linux.adb: Result := sigaltstack (Stack'Access, null);
+ gcc/ada/s-taprop-posix.adb: Result := sigaltstack (Stack'Access, null);
+ gcc/ada/init.c: stack.ss_sp = __gnat_alternate_stack;
+ gcc/ada/init.c: stack.ss_sp = __gnat_alternate_stack;
+ gcc/ada/init.c: stack.ss_sp = __gnat_alternate_stack;
+ gcc/ada/s-osinte-aix.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-android.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-darwin.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-darwin.ads: uc_stack : stack_t; -- Stack Used By This Context
+ gcc/ada/s-osinte-freebsd.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-hpux.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-kfreebsd-gnu.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-linux.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-rtems.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-solaris-posix.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-solaris.ads: ss_sp : System.Address;
+ gcc/ada/s-osinte-solaris.ads: uc_stack : record_type_2;
+ gcc/ada/s-taprop-linux.adb: Stack.ss_sp := Self_ID.Common.Task_Alternate_Stack;
+ gcc/ada/s-taprop-posix.adb: Stack.ss_sp := Self_ID.Common.Task_Alternate_Stack;
+
+
+---
+
+
+# Part II
+
+Next, Hurd-specific features can be added. Add an interface to the
+language/environment for being able to do [[RPC]] calls, in order to program
+[[hurd/translator]]s natively in Ada.
+
+
+## Original [[community/GSoC]] Task Description
+
+[[!inline pages=community/gsoc/project_ideas/language_bindings feeds=no]]