2008-07-30 Jose Ruiz <ruiz@adacore.com>
authorJose Ruiz <ruiz@adacore.com>
Wed, 30 Jul 2008 13:03:32 +0000 (15:03 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 30 Jul 2008 13:03:32 +0000 (15:03 +0200)
* adaint.c
(__gnat_file_exists): Do not use __gnat_stat for RTX.
(__main for RTX in RTSS mode): Create this dummy procedure symbol to
avoid the use of this symbol from libgcc.a in RTX kernel mode.

* cio.c
(put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
the function RtPrintf for console output.

* argv.c Do not use the environ variable for RTX.

* gnatlink.adb (gnatlink): The part that handles the --RTS option has
been moved before the call to Osint.Add_Default_Search_Dirs in order
to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
from the appropriate run time.

* targparm.ads
(RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
target is a RTSS module for RTX.

* targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
RTX_RTSS_Kernel_Module
(Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.

* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
exception handling mechanism for Windows and RTX in Win32 mode, but
not for RTX in kernel mode (RTSS).
(LIBGNAT_SRCS): Remove ada.h

From-SVN: r138305

gcc/ada/adaint.c
gcc/ada/argv.c
gcc/ada/cio.c
gcc/ada/gcc-interface/Makefile.in
gcc/ada/gnatlink.adb
gcc/ada/targparm.adb
gcc/ada/targparm.ads

index 8f7bcab516fe70153b76a71c995b4873dede0b8d..29f649aa09630736329c4cdaa34a74d0f32770b9 100644 (file)
@@ -1061,6 +1061,7 @@ __gnat_readdir (DIR *dirp, char *buffer, int *len)
   /* Not supported in RTX */
 
   return NULL;
+
 #elif defined (__MINGW32__)
   struct _tdirent *dirent = _treaddir ((_TDIR*)dirp);
 
@@ -1606,7 +1607,7 @@ __gnat_stat (char *name, struct stat *statbuf)
 int
 __gnat_file_exists (char *name)
 {
-#if defined (__MINGW32__) && !defined (RTX)
+#ifdef __MINGW32__
   /*  On Windows do not use __gnat_stat() because a bug in Microsoft
   _stat() routine. When the system time-zone is set with a negative
   offset the _stat() routine fails on specific files like CON:  */
@@ -3048,11 +3049,14 @@ __gnat_sals_init_using_constructors ()
 #endif
 }
 
+#ifdef RTX
+
 /* In RTX mode, the procedure to get the time (as file time) is different
    in RTSS mode and Win32 mode. In order to avoid duplicating an Ada file,
    we introduce an intermediate procedure to link against the corresponding
    one in each situation. */
-#ifdef RTX
+
+extern void GetTimeAsFileTime(LPFILETIME pTime);
 
 void GetTimeAsFileTime(LPFILETIME pTime)
 {
@@ -3062,6 +3066,16 @@ void GetTimeAsFileTime(LPFILETIME pTime)
   GetSystemTimeAsFileTime (pTime); /* w32 interface */
 #endif
 }
+
+#ifdef RTSS
+/* Add symbol that is required to link. It would otherwise be taken from
+   libgcc.a and it would try to use the gcc constructors that are not
+   supported by Microsoft linker. */
+
+extern void __main (void);
+
+void __main (void) {}
+#endif
 #endif
 
 #if defined (linux) || defined(__GLIBC__)
index 276edf7e0f299bbb5f8c860ee7edf1fc3298ae8e..0adfa4ea94894f2b36042181816d49e38d2c4f7f 100644 (file)
@@ -6,7 +6,7 @@
  *                                                                          *
  *                          C Implementation File                           *
  *                                                                          *
- *         Copyright (C) 1992-2007, Free Software Foundation, Inc.           *
+ *         Copyright (C) 1992-2008, Free Software Foundation, Inc.           *
  *                                                                          *
  * GNAT is free software;  you can  redistribute it  and/or modify it under *
  * terms of the  GNU General Public License as published  by the Free Soft- *
@@ -61,7 +61,7 @@ int gnat_argc = 0;
 const char **gnat_argv = (const char **) 0;
 const char **gnat_envp = (const char **) 0;
 
-#ifdef _WIN32
+#if defined (_WIN32) && !defined (RTX)
 /* Note that on Windows environment the environ point to a buffer that could
    be reallocated if needed. It means that gnat_envp needs to be updated
    before using gnat_envp to point to the right environment space */
index 6fba5a0b0cba2e9997530f9a258325911dce9827..67dcfc3dd36bce7e58a358148e8b9fe86116d0aa 100644 (file)
@@ -6,7 +6,7 @@
  *                                                                          *
  *                          C Implementation File                           *
  *                                                                          *
- *          Copyright (C) 1992-2005, Free Software Foundation, Inc.         *
+ *          Copyright (C) 1992-2008, Free Software Foundation, Inc.         *
  *                                                                          *
  * GNAT is free software;  you can  redistribute it  and/or modify it under *
  * terms of the  GNU General Public License as published  by the Free Soft- *
 #undef getchar
 #endif
 
+#ifdef RTX
+#include <windows.h>
+#include <Rtapi.h>
+#endif
+
 int
 get_char (void)
 {
@@ -78,27 +83,43 @@ get_int (void)
 void
 put_int (int x)
 {
+#ifdef RTX
+   RtPrintf ("%d", x);
+#else
    /* Use fprintf rather than printf, since the latter is unbuffered
       on vxworks */
    fprintf (stdout, "%d", x);
+#endif
 }
 
 void
 put_int_stderr (int x)
 {
+#ifdef RTX
+  RtPrintf ("%d", x);
+#else
   fprintf (stderr, "%d", x);
+#endif
 }
 
 void
 put_char (int c)
 {
+#ifdef RTX
+  RtPrintf ("%c", c);
+#else
   putchar (c);
+#endif
 }
 
 void
 put_char_stderr (int c)
 {
+#ifdef RTX
+  RtPrintf ("%c", c);
+#else
   fputc (c, stderr);
+#endif
 }
 
 #ifdef __vxworks
index 020ee2080be73f64aa94d142d427f5fb79890be5..a8c0c1bbb2512691e85ad6ca67811840093ad539 100644 (file)
@@ -1326,13 +1326,20 @@ ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
     s-intman.adb<s-intman-dummy.adb \
     s-osinte.ads<s-osinte-rtx.ads \
     s-osprim.adb<s-osprim-rtx.adb \
-    s-taprop.adb<s-taprop-rtx.adb \
-    system.ads<system-rtx.ads
+    s-taprop.adb<s-taprop-rtx.adb
 
     EXTRA_GNATRTL_NONTASKING_OBJS = s-win32.o
 
-    MISCLIB = -lwsock32 -lrtapi_w32
-    THREADSLIB=-lrtapi_w32
+    ifeq ($(strip $(filter-out rtx_w32,$(THREAD_KIND))),)
+       LIBGNAT_TARGET_PAIRS += system.ads<system-rtx.ads
+
+       EH_MECHANISM=-gcc
+    else
+       LIBGNAT_TARGET_PAIRS += system.ads<system-rtx-rtss.ads
+
+       EH_MECHANISM=
+    endif
+
   else
     LIBGNAT_TARGET_PAIRS += \
     a-exetim.adb<a-exetim-mingw.adb \
@@ -1354,13 +1361,14 @@ ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
     # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
     # auto-import support for array/record will be done.
     GNATLIB_SHARED = gnatlib-shared-win32
+
+    EH_MECHANISM=-gcc
   endif
 
   TOOLS_TARGET_PAIRS= \
   mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \
   indepsw.adb<indepsw-mingw.adb
 
-  EH_MECHANISM=-gcc
   GMEM_LIB = gmemlib
   PREFIX_OBJS = $(PREFIX_REAL_OBJS)
   EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
@@ -1706,7 +1714,7 @@ endif
 # while GNATRTL_OBJS lists the object files compiled from Ada sources that
 # go into the directory.  The pthreads emulation is built in the threads
 # subdirectory and copied.
-LIBGNAT_SRCS = ada.h adaint.c adaint.h argv.c cio.c cstreams.c \
+LIBGNAT_SRCS = adaint.c adaint.h argv.c cio.c cstreams.c \
   errno.c exit.c cal.c ctrl_c.c env.c env.h \
   raise.h raise.c sysdep.c aux-io.c init.c initialize.c seh_init.c \
   final.c tracebak.c tb-alvms.c tb-alvxw.c tb-gcc.c expect.c mkdir.c \
index 99898223cf2fb11ad2f4473052b28dbd05338e95..c9b496c0ee8ad15ca56d3426c989a040444d85c0 100644 (file)
@@ -1484,25 +1484,11 @@ begin
       Exit_Program (E_Fatal);
    end if;
 
-   --  Get target parameters
+   --  Initialize packages to be used
 
    Namet.Initialize;
    Csets.Initialize;
    Snames.Initialize;
-   Osint.Add_Default_Search_Dirs;
-   Targparm.Get_Target_Parameters;
-
-   if VM_Target /= No_VM then
-      case VM_Target is
-         when JVM_Target => Gcc := new String'("jgnat");
-         when CLI_Target => Gcc := new String'("dotnet-gnatcompile");
-         when No_VM      => raise Program_Error;
-      end case;
-
-      Ada_Bind_File := True;
-      Begin_Info := "--  BEGIN Object file/option list";
-      End_Info   := "--  END Object file/option list   ";
-   end if;
 
    --  We always compile with -c
 
@@ -1510,50 +1496,6 @@ begin
    Binder_Options_From_ALI.Table (Binder_Options_From_ALI.Last) :=
      new String'("-c");
 
-   --  If the main program is in Ada it is compiled with the following
-   --  switches:
-
-   --    -gnatA   stops reading gnat.adc, since we don't know what
-   --             pragmas would work, and we do not need it anyway.
-
-   --    -gnatWb  allows brackets coding for wide characters
-
-   --    -gnatiw  allows wide characters in identifiers. This is needed
-   --             because bindgen uses brackets encoding for all upper
-   --             half and wide characters in identifier names.
-
-   if Ada_Bind_File then
-      Binder_Options_From_ALI.Increment_Last;
-      Binder_Options_From_ALI.Table (Binder_Options_From_ALI.Last) :=
-        new String'("-gnatA");
-      Binder_Options_From_ALI.Increment_Last;
-      Binder_Options_From_ALI.Table (Binder_Options_From_ALI.Last) :=
-        new String'("-gnatWb");
-      Binder_Options_From_ALI.Increment_Last;
-      Binder_Options_From_ALI.Table (Binder_Options_From_ALI.Last) :=
-        new String'("-gnatiw");
-   end if;
-
-   --  Locate all the necessary programs and verify required files are present
-
-   Gcc_Path := System.OS_Lib.Locate_Exec_On_Path (Gcc.all);
-
-   if Gcc_Path = null then
-      Exit_With_Error ("Couldn't locate " & Gcc.all);
-   end if;
-
-   if Linker_Path = null then
-      if VM_Target = CLI_Target then
-         Linker_Path := System.OS_Lib.Locate_Exec_On_Path ("ilasm");
-
-         if Linker_Path = null then
-            Exit_With_Error ("Couldn't locate ilasm");
-         end if;
-      else
-         Linker_Path := Gcc_Path;
-      end if;
-   end if;
-
    if Ali_File_Name = null then
       Exit_With_Error ("no ali file given for link");
    end if;
@@ -1624,6 +1566,18 @@ begin
                             := String_Access (Arg);
                      end if;
 
+                     --  Set the RTS_*_Path_Name variables, so that the
+                     --  correct directories will be set when
+                     --  Osint.Add_Default_Search_Dirs will be called later.
+
+                     Opt.RTS_Src_Path_Name :=
+                       Get_RTS_Search_Dir
+                         (Arg (Arg'First + 6 .. Arg'Last), Include);
+
+                     Opt.RTS_Lib_Path_Name :=
+                       Get_RTS_Search_Dir
+                         (Arg (Arg'First + 6 .. Arg'Last), Objects);
+
                      --  GNAT doesn't support the GCC multilib mechanism.
                      --  This means that, when a multilib switch is used
                      --  to request a particular compilation mode, the
@@ -1635,8 +1589,7 @@ begin
 
                      --  Pass -mrtp to the linker if --RTS=rtp was passed
 
-                     if Linker_Path = Gcc_Path
-                       and then Arg'Length > 8
+                     if Arg'Length > 8
                        and then Arg (Arg'First + 6 .. Arg'First + 8) = "rtp"
                      then
                         Linker_Options.Increment_Last;
@@ -1645,8 +1598,7 @@ begin
 
                      --  Pass -fsjlj to the linker if --RTS=sjlj was passed
 
-                     elsif Linker_Path = Gcc_Path
-                       and then Arg'Length > 9
+                     elsif Arg'Length > 9
                        and then Arg (Arg'First + 6 .. Arg'First + 9) = "sjlj"
                      then
                         Linker_Options.Increment_Last;
@@ -1660,6 +1612,77 @@ begin
       end;
    end if;
 
+   --  Get target parameters
+
+   Osint.Add_Default_Search_Dirs;
+   Targparm.Get_Target_Parameters;
+
+   if VM_Target /= No_VM then
+      case VM_Target is
+         when JVM_Target => Gcc := new String'("jgnat");
+         when CLI_Target => Gcc := new String'("dotnet-gnatcompile");
+         when No_VM      => raise Program_Error;
+      end case;
+
+      Ada_Bind_File := True;
+      Begin_Info := "--  BEGIN Object file/option list";
+      End_Info   := "--  END Object file/option list   ";
+   end if;
+
+   --  If the main program is in Ada it is compiled with the following
+   --  switches:
+
+   --    -gnatA   stops reading gnat.adc, since we don't know what
+   --             pragmas would work, and we do not need it anyway.
+
+   --    -gnatWb  allows brackets coding for wide characters
+
+   --    -gnatiw  allows wide characters in identifiers. This is needed
+   --             because bindgen uses brackets encoding for all upper
+   --             half and wide characters in identifier names.
+
+   if Ada_Bind_File then
+      Binder_Options_From_ALI.Increment_Last;
+      Binder_Options_From_ALI.Table (Binder_Options_From_ALI.Last) :=
+        new String'("-gnatA");
+      Binder_Options_From_ALI.Increment_Last;
+      Binder_Options_From_ALI.Table (Binder_Options_From_ALI.Last) :=
+        new String'("-gnatWb");
+      Binder_Options_From_ALI.Increment_Last;
+      Binder_Options_From_ALI.Table (Binder_Options_From_ALI.Last) :=
+        new String'("-gnatiw");
+   end if;
+
+   --  Locate all the necessary programs and verify required files are present
+
+   Gcc_Path := System.OS_Lib.Locate_Exec_On_Path (Gcc.all);
+
+   if Gcc_Path = null then
+      Exit_With_Error ("Couldn't locate " & Gcc.all);
+   end if;
+
+   if Linker_Path = null then
+      if VM_Target = CLI_Target then
+         Linker_Path := System.OS_Lib.Locate_Exec_On_Path ("ilasm");
+
+         if Linker_Path = null then
+            Exit_With_Error ("Couldn't locate ilasm");
+         end if;
+
+      elsif RTX_RTSS_Kernel_Module_On_Target then
+         --  Use Microsoft linker for RTSS modules
+
+         Linker_Path := System.OS_Lib.Locate_Exec_On_Path ("link");
+
+         if Linker_Path = null then
+            Exit_With_Error ("Couldn't locate link");
+         end if;
+
+      else
+         Linker_Path := Gcc_Path;
+      end if;
+   end if;
+
    Write_Header;
 
    --  If no output name specified, then use the base name of .ali file name
@@ -1680,6 +1703,11 @@ begin
          Linker_Options.Table (Linker_Options.Last) :=
            new String'("/OUTPUT=" & Output_File_Name.all);
 
+      elsif RTX_RTSS_Kernel_Module_On_Target then
+         Linker_Options.Increment_Last;
+         Linker_Options.Table (Linker_Options.Last) :=
+           new String'("/OUT:" & Output_File_Name.all);
+
       else
          Linker_Options.Increment_Last;
          Linker_Options.Table (Linker_Options.Last) := new String'("-o");
@@ -1869,6 +1897,119 @@ begin
                   Num_Args := Num_Args - 1;
                end if;
             end loop;
+
+         elsif RTX_RTSS_Kernel_Module_On_Target then
+            --  Remove flags not relevant for Microsoft linker and adapt some
+            --  others.
+
+            for J in reverse Linker_Options.First .. Linker_Options.Last loop
+
+               --  Remove flags that are not accepted
+               if Linker_Options.Table (J)'Length = 0
+                 or else Linker_Options.Table (J) (1 .. 2) = "-l"
+                 or else Linker_Options.Table (J) (1 .. 3) = "-Wl"
+                 or else Linker_Options.Table (J) (1 .. 3) = "-sh"
+                 or else Linker_Options.Table (J) (1 .. 8) = "-Xlinker"
+                 or else Linker_Options.Table (J) (1 .. 9) = "-mthreads"
+               then
+                  Linker_Options.Table (J .. Linker_Options.Last - 1) :=
+                    Linker_Options.Table (J + 1 .. Linker_Options.Last);
+                  Linker_Options.Decrement_Last;
+                  Num_Args := Num_Args - 1;
+
+               --  Replace "-L" by its counterpart "/LIBPATH:" and UNIX "/" by
+               --  Windows "\".
+               elsif Linker_Options.Table (J) (1 .. 2) = "-L" then
+                  declare
+                     Libpath_Option : constant String_Access := new String'
+                       ("/LIBPATH:" &
+                        Linker_Options.Table (J)
+                          (3 .. Linker_Options.Table (J).all'Last));
+                  begin
+                     for Index in 10 .. Libpath_Option'Last loop
+                        if Libpath_Option (Index) = '/' then
+                           Libpath_Option (Index) := '\';
+                        end if;
+                     end loop;
+
+                     Linker_Options.Table (J) := Libpath_Option;
+                  end;
+
+               --  Replace "-g" by "/DEBUG"
+               elsif Linker_Options.Table (J) (1 .. 2) = "-g" then
+                  Linker_Options.Table (J) := new String'("/DEBUG");
+
+               --  Replace "-o" by "/OUT:"
+               elsif Linker_Options.Table (J) (1 .. 2) = "-o" then
+                  Linker_Options.Table (J + 1) := new String'
+                    ("/OUT:" & Linker_Options.Table (J + 1).all);
+
+                  Linker_Options.Table (J .. Linker_Options.Last - 1) :=
+                    Linker_Options.Table (J + 1 .. Linker_Options.Last);
+                  Linker_Options.Decrement_Last;
+                  Num_Args := Num_Args - 1;
+
+               --  Replace "--stack=" by "/STACK:"
+               elsif Linker_Options.Table (J) (1 .. 8) = "--stack=" then
+                  Linker_Options.Table (J) := new String'
+                    ("/STACK:" &
+                     Linker_Options.Table (J)
+                       (9 .. Linker_Options.Table (J).all'Last));
+
+               --  Replace "-v" by its counterpart "/VERBOSE"
+               elsif Linker_Options.Table (J) (1 .. 2) = "-v" then
+                  Linker_Options.Table (J) := new String'("/VERBOSE");
+               end if;
+            end loop;
+
+            --  Add some required flags to create RTSS modules
+
+            declare
+               Flags_For_Linker : constant array (1 .. 17) of String_Access :=
+                 (new String'("/NODEFAULTLIB"),
+                  new String'("/INCREMENTAL:NO"),
+                  new String'("/NOLOGO"),
+                  new String'("/DRIVER"),
+                  new String'("/ALIGN:0x20"),
+                  new String'("/SUBSYSTEM:NATIVE"),
+                  new String'("/ENTRY:_RtapiProcessEntryCRT@8"),
+                  new String'("/RELEASE"),
+                  new String'("startupCRT.obj"),
+                  new String'("rtxlibcmt.lib"),
+                  new String'("oldnames.lib"),
+                  new String'("rtapi_rtss.lib"),
+                  new String'("Rtx_Rtss.lib"),
+                  new String'("libkernel32.a"),
+                  new String'("libws2_32.a"),
+                  new String'("libmswsock.a"),
+                  new String'("libadvapi32.a"));
+               --  These flags need to be passed to Microsoft linker. They
+               --  come from the RTX documentation.
+
+               Gcc_Lib_Path : constant String_Access := new String'
+                 ("/LIBPATH:" & Include_Dir_Default_Prefix & "\..\");
+               --  Place to look for gcc related libraries, such as libgcc
+
+            begin
+               --  Replace UNIX "/" by Windows "\" in the path
+
+               for Index in 10 .. Gcc_Lib_Path.all'Last loop
+                  if Gcc_Lib_Path (Index) = '/' then
+                     Gcc_Lib_Path (Index) := '\';
+                  end if;
+               end loop;
+
+               Linker_Options.Increment_Last;
+               Linker_Options.Table (Linker_Options.Last) := Gcc_Lib_Path;
+               Num_Args := Num_Args + 1;
+
+               for Index in Flags_For_Linker'Range loop
+                  Linker_Options.Increment_Last;
+                  Linker_Options.Table (Linker_Options.Last) :=
+                    Flags_For_Linker (Index);
+                  Num_Args := Num_Args + 1;
+               end loop;
+            end;
          end if;
 
          --  Remove duplicate stack size setting from the Linker_Options
@@ -1978,6 +2119,15 @@ begin
                   Linker_Options.Table (Linker_Options.Last) := Static_Libgcc;
                   Num_Args := Num_Args + 1;
                end if;
+
+            elsif RTX_RTSS_Kernel_Module_On_Target then
+
+               --  Force the use of the static libgcc for RTSS modules
+
+               Linker_Options.Increment_Last;
+               Linker_Options.Table (Linker_Options.Last) :=
+                 new String'("libgcc.a");
+               Num_Args := Num_Args + 1;
             end if;
 
          end Clean_Link_Option_Set;
index 6039cf7406bc8e2efc8583b99ba7214f143428eb..52bbbcb953cfe7144189693eb90e3f442180aae2 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1999-2007, Free Software Foundation, Inc.         --
+--          Copyright (C) 1999-2008, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -54,6 +54,7 @@ package body Targparm is
       MOV,  --   Machine_Overflows
       MRN,  --   Machine_Rounds
       PAS,  --   Preallocated_Stacks
+      RTX,  --   RTX_RTSS_Kernel_Module
       S64,  --   Support_64_Bit_Divides
       SAG,  --   Support_Aggregates
       SCA,  --   Support_Composite_Assign
@@ -90,6 +91,7 @@ package body Targparm is
    MOV_Str : aliased constant Source_Buffer := "Machine_Overflows";
    MRN_Str : aliased constant Source_Buffer := "Machine_Rounds";
    PAS_Str : aliased constant Source_Buffer := "Preallocated_Stacks";
+   RTX_Str : aliased constant Source_Buffer := "RTX_RTSS_Kernel_Module";
    S64_Str : aliased constant Source_Buffer := "Support_64_Bit_Divides";
    SAG_Str : aliased constant Source_Buffer := "Support_Aggregates";
    SCA_Str : aliased constant Source_Buffer := "Support_Composite_Assign";
@@ -126,6 +128,7 @@ package body Targparm is
       MOV_Str'Access,
       MRN_Str'Access,
       PAS_Str'Access,
+      RTX_Str'Access,
       S64_Str'Access,
       SAG_Str'Access,
       SCA_Str'Access,
@@ -573,6 +576,7 @@ package body Targparm is
                      when MOV => Machine_Overflows_On_Target         := Result;
                      when MRN => Machine_Rounds_On_Target            := Result;
                      when PAS => Preallocated_Stacks_On_Target       := Result;
+                     when RTX => RTX_RTSS_Kernel_Module_On_Target    := Result;
                      when S64 => Support_64_Bit_Divides_On_Target    := Result;
                      when SAG => Support_Aggregates_On_Target        := Result;
                      when SCA => Support_Composite_Assign_On_Target  := Result;
index c40d6d81adc9610fbf1e80d75078e0b4949b5e17..97192a56143a3bbe8fa878b5aedbc2c2ab078a2c 100644 (file)
@@ -216,6 +216,9 @@ package Targparm is
    OpenVMS_On_Target : Boolean := False;
    --  Set to True if target is OpenVMS
 
+   RTX_RTSS_Kernel_Module_On_Target : Boolean := False;
+   --  Set to True if target is RTSS module for RTX
+
    type Virtual_Machine_Kind is (No_VM, JVM_Target, CLI_Target);
    VM_Target : Virtual_Machine_Kind := No_VM;
    --  Kind of virtual machine targetted