1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
[[!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.
---
# 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]]
|