[[!meta copyright="Copyright © 2011, 2012 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 I've found the remaining problem with gnat backtrace for Hurd! Related to the stack frame. This version does not work: one relying on static assumptions about the frame layout Causing segfaults. Any interest to create a test case out of that piece of code, taken from gcc/ada/tracebak.c? gnu_srs: sure ### IRC, freenode, #hurd, 2012-07-18 "Digging further revealed that the GNU/Hurd stack frame does not seem to be static enough to define USE_GENERIC_UNWINDER in gcc/ada/tracebak.c. " what do you mean by a "stack frame does not seem to be static enough" ? I can qoute from the source file if you want. Otherwise look at the code yourself: gcc/ada/tracebak,c 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. Remember? more or less ah, "static assumptions" all right, i don't think anything is "wrong" with stack frames but if you use a recent version of gcc, as indicated in the code, -fomit-frame-pointer is enabled by default so your stack frame won't look like it used to be without the option hence the need for USE_GCC_UNWINDER http://en.wikipedia.org/wiki/Call_stack explains this very well However, kfreebsd does not seem to need USE_GCC_UNWINDER, how come? i guess they don't omit the frame pointer your fix is good btw thanks ### IRC, freenode, #hurd, 2012-07-19 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. --- # 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]]