On Fri, 2008-03-28 at 12:45 +0100, Laurent GUERBY wrote:
> On Fri, 2008-03-28 at 08:56 +0100, Arnaud Charlet wrote:
> > > Is there a replacement for it?
> > 
> > You can configure manually a self made run-time by setting flags
> > (e.g. Configurable_Run_Time and Suppress_Standard_Library) in system.ads
> 
> Thanks! Is there a list of the minimal set of "run-time" files
> one has to keep around when building such a run-time (apart
> from system.ads)?

Answering my own question after a few experimentation, assuming an Ada
compiler in PATH (tested with 4.3.0 on x86_64-linux):

$ mkdir build
$ cd build
# copy gcc/src/ada/system.ads and s-maccod.ads locally, chmod 644
# edit system.ads
$ diff -U 0 system.ads_orig system.ads
--- system.ads_orig     2008-03-28 21:23:35.000000000 +0100
+++ system.ads  2008-03-28 21:23:27.000000000 +0100
@@ -131 +131 @@
-   Configurable_Run_Time     : constant Boolean := False;
+   Configurable_Run_Time     : constant Boolean := True;
@@ -150 +150 @@
-   Suppress_Standard_Library : constant Boolean := False;
+   Suppress_Standard_Library : constant Boolean := True;
$ cat > a.ads
procedure A;
pragma Export (C, A, "_start");
$ cat > a.adb
with System.Machine_Code; use System.Machine_Code;
procedure A is
   NL : constant String := ASCII.LF & ASCII.HT;
begin
   Asm (Template => "movl $1,%%eax" & NL
        & "movl $42,%%ebx" & NL
        & "int $0x80",
        Outputs => No_Output_Operands,
        Inputs => No_Input_Operands,
        Clobber => "",
        Volatile => True);
end A;
$ cat > gnat.adc
pragma Restrictions (No_Elaboration_Code, No_Exception_Handlers);
$ gnatmake -f -a -c -nostdinc -nostdlib -g -Os  a 
$ gcc -g -nodefaultlibs -nostdlib -nostartfiles -o a a.o
$ objdump -S a
$ ./a
$ echo $?

Laurent


Reply via email to