comp.lang.ada
 help / color / mirror / Atom feed
From: Fernando Oleo Blanco <irvise_ml@irvise.xyz>
Subject: Re: Help: Ada in NetBSD
Date: Wed, 1 Sep 2021 16:58:47 +0200	[thread overview]
Message-ID: <sgo4f7$lri$1@gioia.aioe.org> (raw)
In-Reply-To: 646f270d-0e65-46a5-b40a-02afab608f1en@googlegroups.com

Hi John,

continuing our chat over on IRC and repeating a few things so that you 
can refer to this message.

My work is mostly based on your gcc6-aux port. So you will not find many 
new things here.

So, what have I actually done?

- Copied your s-osinte__netbsd.ad{s,b} patches. I initially used the 
patched __freebsd one. However, as you already know, NetBSD changed the 
symbols of some of its libc and sys/* functions.

- I also ended up reproducing parts of the patches you created, such as 
adding defined (__NetBSD__) where it was missing.

- Patched the Makefile.rtl to support NetBSD x86_64.

- Patched the symbols of _nanosleep and __gettimeofday50 in 
s-osprim__posix.adb.


This is where I am right now. Most of the ACATS tests that use Tasks, 
fail due to time out. Everything else pretty much "just works" (there 
are a few more failed tests).

So, what now? I am pretty sure that since gcc6-aux came out and today, 
some functions have been changed, see _nanosleep and __gettimeofday50. 
These two functions specifically, are my suspects. Maybe the input 
variables/structures got changed and I have not updated them. There are 
also a couple of other symbols in some GNAT libraries that need updating.

A few more things:
- The patches I have done are of very bad quality: modifying __posix 
files directly so that they will work only on NetBSD, for example.

- These patches and are not satisfactory. Since interfacing with the 
NetBSD ABI is now dependent on the C preprocessor to correctly generate 
the symbols, the current approach of hardcoding new symbols is fragile 
and a loosing battle.

- I think the long term solution is the one proposed by Simon. Creating 
some _gnat__*** C functions that wrap the NetBSD ABI. This is better, 
but does not save us from future functions breaking. A complete fix 
would be to completely _gnat__* all the C functions, which, in my humble 
opinion is just too much.

On 01.09.21 15:28, John R. Marino wrote:

> Which reminds me: I'd only do this for x86_64 platform.
> Regards,
> John

My goal would be to at the very least give support to ARM, ARM64 and 
RISC-V. To be honest with you, I would like it to work on any piece of 
hardware that can be currently bought. Also, not just NetBSD, also 
FreeBSD, DragonflyBSD (already done by you), improved OpenBSD support 
and Haiku. I would also like to see gcc-ada added to Guix, the GNU 
package manager, but that is a completely different story.

Regards,
-- 
Fernando Oleo Blanco
https://irvise.xyz

  reply	other threads:[~2021-09-01 14:58 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-29 11:06 Help: Ada in NetBSD Fernando Oleo Blanco
2021-08-29 13:19 ` Stephane Carrez
2021-08-29 18:08   ` Fernando Oleo Blanco
2021-08-29 18:25     ` Simon Wright
2021-08-29 20:36       ` Fernando Oleo Blanco
2021-08-29 22:08         ` Stephane Carrez
2021-08-30  7:37           ` Simon Wright
2021-08-30  8:14           ` Fernando Oleo Blanco
2021-08-30 10:24             ` Fernando Oleo Blanco
2021-08-30 12:15               ` Fernando Oleo Blanco
2021-08-30 18:49                 ` Fernando Oleo Blanco
2021-08-30 19:23                   ` Simon Wright
2021-09-01  9:44                     ` Fernando Oleo Blanco
2021-09-01 21:41                       ` Simon Wright
2021-09-02 22:16                       ` Randy Brukardt
2021-09-03 20:18                         ` Simon Wright
2021-08-29 17:34 ` Simon Wright
2021-08-29 17:45   ` Fernando Oleo Blanco
2021-09-01 13:28 ` John R. Marino
2021-09-01 14:58   ` Fernando Oleo Blanco [this message]
2021-09-17 17:36     ` Fernando Oleo Blanco
2021-09-18 16:39       ` Fernando Oleo Blanco
2021-09-22 20:05         ` Fernando Oleo Blanco
2021-09-22 20:57           ` Simon Wright
2021-09-23  8:04           ` Luke A. Guest
2021-09-23 10:48             ` Kevin Chadwick
2021-09-23 17:01               ` Fernando Oleo Blanco
2021-09-23 17:04             ` Fernando Oleo Blanco
2021-09-23 19:53           ` Fernando Oleo Blanco
2021-09-24  7:48             ` Simon Wright
2021-09-24  9:44               ` Fernando Oleo Blanco
2021-09-13 18:49   ` Fernando Oleo Blanco
2021-09-13 22:24     ` Dennis Lee Bieber
2021-09-17 17:19       ` Fernando Oleo Blanco
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox