Преглед на файлове

+ add linux/i386 start units

git-svn-id: trunk@5183 -
micha преди 19 години
родител
ревизия
6bfff9702e
променени са 14 файла, в които са добавени 806 реда и са изтрити 0 реда
  1. 13 0
      .gitattributes
  2. 104 0
      rtl/linux/i386/si_c.inc
  3. 111 0
      rtl/linux/i386/si_c21.inc
  4. 143 0
      rtl/linux/i386/si_c21g.inc
  5. 94 0
      rtl/linux/i386/si_dll.inc
  6. 100 0
      rtl/linux/i386/si_g.inc
  7. 80 0
      rtl/linux/i386/si_prc.inc
  8. 26 0
      rtl/linux/si_c.pp
  9. 26 0
      rtl/linux/si_c21.pp
  10. 26 0
      rtl/linux/si_c21g.pp
  11. 26 0
      rtl/linux/si_dll.pp
  12. 26 0
      rtl/linux/si_g.pp
  13. 5 0
      rtl/linux/si_intf.inc
  14. 26 0
      rtl/linux/si_prc.pp

+ 13 - 0
.gitattributes

@@ -4541,6 +4541,12 @@ rtl/linux/i386/dllprt0.as -text
 rtl/linux/i386/gprt0.as -text
 rtl/linux/i386/gprt21.as -text
 rtl/linux/i386/prt0.as -text
+rtl/linux/i386/si_c.inc svneol=native#text/plain
+rtl/linux/i386/si_c21.inc svneol=native#text/plain
+rtl/linux/i386/si_c21g.inc svneol=native#text/plain
+rtl/linux/i386/si_dll.inc svneol=native#text/plain
+rtl/linux/i386/si_g.inc svneol=native#text/plain
+rtl/linux/i386/si_prc.inc svneol=native#text/plain
 rtl/linux/i386/sighnd.inc svneol=native#text/plain
 rtl/linux/i386/sighndh.inc svneol=native#text/plain
 rtl/linux/i386/stat.inc svneol=native#text/plain
@@ -4590,6 +4596,13 @@ rtl/linux/powerpc64/syscallh.inc svneol=native#text/plain
 rtl/linux/powerpc64/sysnr.inc svneol=native#text/plain
 rtl/linux/pthread.inc svneol=native#text/plain
 rtl/linux/ptypes.inc svneol=native#text/plain
+rtl/linux/si_c.pp svneol=native#text/plain
+rtl/linux/si_c21.pp svneol=native#text/plain
+rtl/linux/si_c21g.pp svneol=native#text/plain
+rtl/linux/si_dll.pp svneol=native#text/plain
+rtl/linux/si_g.pp svneol=native#text/plain
+rtl/linux/si_intf.inc svneol=native#text/plain
+rtl/linux/si_prc.pp svneol=native#text/plain
 rtl/linux/signal.inc svneol=native#text/plain
 rtl/linux/sparc/bsyscall.inc svneol=native#text/plain
 rtl/linux/sparc/cprt0.as -text

+ 104 - 0
rtl/linux/i386/si_c.inc

@@ -0,0 +1,104 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+ Linux ELF startup code for Free Pascal
+
+
+ Stack layout at program start:
+
+         nil
+         envn
+         ....
+         ....           ENVIRONMENT VARIABLES
+         env1
+         env0
+         nil
+         argn
+         ....
+         ....           COMMAND LINE OPTIONS
+         arg1
+         arg0
+         argc <--- esp
+}
+
+var
+  libc_environ: pchar; external name '__environ';
+  libc_fpu_control: word; external name '__fpu_control';
+  libc_init_proc: procedure; external name '_init';
+  libc_fini_proc: procedure; external name '_fini';
+
+procedure libc_atexit; external name '__libc_atexit';
+procedure libc_exit; external name '__libc_exit';
+procedure libc_init; external name '__libc_init';
+procedure libc_setfpucw; external name '__setfpucw';
+procedure libc_start_main; external name '__libc_start_main';
+
+procedure PASCALMAIN; external name 'PASCALMAIN';
+
+{******************************************************************************
+                          C library start/halt
+ ******************************************************************************}
+
+procedure _FPC_libc_start; assembler; nostackframe; public name '_start';
+asm
+  { First locate the start of the environment variables }
+  popl    %ecx                    { Get argc in ecx }
+  movl    %esp,%ebx               { Esp now points to the arguments }
+  leal    4(%esp,%ecx,4),%eax     { The start of the environment is: esp+4*eax+8 }
+  andl    $0xfffffff8,%esp        { Align stack }
+
+  movl    %eax,operatingsystem_parameter_envp    { Move the environment pointer }
+  movl    %ecx,operatingsystem_parameter_argc    { Move the argument counter    }
+  movl    %ebx,operatingsystem_parameter_argv    { Move the argument pointer    }
+
+  movl    %eax,libc_environ          { libc environ }
+
+  pushl   %eax
+  pushl   %ebx
+  pushl   %ecx
+
+  call    libc_init             { init libc }
+  movzwl  libc_fpu_control,%eax
+  pushl   %eax
+  call    libc_setfpucw
+  popl    %eax
+  pushl   $libc_fini_proc
+  call    libc_atexit
+  popl    %eax
+  call    libc_init_proc
+
+  popl    %eax
+  popl    %eax
+
+  { Save initial stackpointer }
+  movl    %esp,initialstkptr
+
+  xorl    %ebp,%ebp
+  call    PASCALMAIN              { start the program }
+end;
+
+procedure _FPC_libc_haltproc; assembler; nostackframe; public name '_haltproc';
+asm
+.Lhaltproc:
+  movzwl  ExitCode,%ebx
+  pushl   %ebx
+  call    libc_exit
+  xorl    %eax,%eax
+  incl    %eax                    { eax=1, exit call }
+  popl    %ebx
+  int     $0x80
+  jmp     .Lhaltproc
+end;
+

+ 111 - 0
rtl/linux/i386/si_c21.inc

@@ -0,0 +1,111 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+ Linux ELF startup code for Free Pascal
+
+
+ Stack layout at program start:
+
+         nil
+         envn
+         ....
+         ....           ENVIRONMENT VARIABLES
+         env1
+         env0
+         nil
+         argn
+         ....
+         ....           COMMAND LINE OPTIONS
+         arg1
+         arg0
+         argc <--- esp
+}
+
+var
+  libc21_fpc_ret, libc21_fpc_ret_ebx, libc21_fpc_ret_ebp: ptrint; { return address to libc }
+
+procedure libc_atexit; external name '__libc_atexit';
+procedure libc_exit; external name '__libc_exit';
+procedure libc_init; external name '__libc_init';
+procedure libc_setfpucw; external name '__setfpucw';
+procedure libc_start_main; external name '__libc_start_main';
+
+procedure PASCALMAIN; external name 'PASCALMAIN';
+
+{******************************************************************************
+                         glibc 2.1 library start/halt
+ ******************************************************************************}
+
+procedure _FPC_libc21_start; assembler; nostackframe; public name '_start';
+asm
+  { First locate the start of the environment variables }
+
+  popl    %esi
+  movl    %eax,%edi
+
+  movl    %esp,%ebx               { Points to the arguments }
+  movl    %esi,%eax
+  incl    %eax
+  shll    $2,%eax
+  addl    %esp,%eax
+  andl    $0xfffffff8,%esp        { Align stack }
+
+  movl    %eax,operatingsystem_parameter_envp    { Move the environment pointer }
+  movl    %esi,operatingsystem_parameter_argc    { Move the argument counter    }
+  movl    %ebx,operatingsystem_parameter_argv    { Move the argument pointer    }
+
+  xorl    %ebp,%ebp
+  pushl   %edi
+  pushl   %esp
+  pushl   %edx
+  pushl   $.Lfini_dummy
+  pushl   $.Linit_dummy
+  pushl   %ebx
+  pushl   %esi
+  pushl   $.Lmain
+  call    libc_start_main
+.Linit_dummy:
+.Lfini_dummy:
+  ret
+
+{ fake main routine which will be run from libc }
+.Lmain:
+  { save return address }
+  popl    %eax
+  movl    %eax,libc21_fpc_ret
+  movl    %ebx,libc21_fpc_ret_ebx
+  movl    %ebp,libc21_fpc_ret_ebp
+  pushl   %eax
+
+  { Save initial stackpointer }
+  movl    %esp,initialstkptr
+
+  { start the program }
+  xorl    %ebp,%ebp
+  call    PASCALMAIN
+  hlt
+end;
+
+procedure _FPC_libc21_haltproc; assembler; nostackframe; public name '_haltproc';
+asm
+  movzwl  ExitCode,%eax
+
+  movl    libc21_fpc_ret,%edx         { return to libc }
+  movl    libc21_fpc_ret_ebp,%ebp
+  movl    libc21_fpc_ret_ebx,%ebx
+  push    %edx
+  ret
+end;
+

+ 143 - 0
rtl/linux/i386/si_c21g.inc

@@ -0,0 +1,143 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+ Linux ELF startup code for Free Pascal
+
+
+ Stack layout at program start:
+
+         nil
+         envn
+         ....
+         ....           ENVIRONMENT VARIABLES
+         env1
+         env0
+         nil
+         argn
+         ....
+         ....           COMMAND LINE OPTIONS
+         arg1
+         arg0
+         argc <--- esp
+}
+
+var
+  gmon_etext: longint; external name '_etext';
+  gmon_start: longint; external name '_start';
+  gmon_mcleanup: procedure; external name '_mcleanup';
+  libc21_fpc_ret, libc21_fpc_ret_ebx: ptrint; { return address to libc }
+  libc21_fpc_ret_esi, libc21_fpc_ret_edi: ptrint;
+  gmon_monstarted: longint = 0;
+
+procedure gmon_monstartup; external name 'monstartup';
+
+procedure libc_atexit; external name '__libc_atexit';
+procedure libc_exit; external name '__libc_exit';
+procedure libc_init; external name '__libc_init';
+procedure libc_setfpucw; external name '__setfpucw';
+procedure libc_start_main; external name '__libc_start_main';
+
+procedure PASCALMAIN; external name 'PASCALMAIN';
+
+{******************************************************************************
+                       glibc 2.1 lib + profiling start/halt
+ ******************************************************************************}
+
+procedure _FPC_libc21_gprof_gmon_start; assembler; nostackframe;
+asm
+  pushl   %ebp
+  movl    gmon_monstarted,%eax
+  leal    0x1(%eax),%edx
+  movl    %esp,%ebp
+  movl    %edx,gmon_monstarted
+  testl   %eax,%eax
+  jnz     .Lnomonstart
+  pushl   $gmon_etext                  { Initialize gmon }
+  pushl   $gmon_start
+  call    gmon_monstartup
+  addl    $8,%esp
+  pushl   $gmon_mcleanup
+  call    libc_atexit
+  addl    $4,%esp
+.Lnomonstart:
+  movl   %ebp,%esp
+  popl   %ebp
+  ret
+end;
+
+procedure _FPC_libc21_gprof_start; assembler; nostackframe; public name '_start';
+asm
+  { First locate the start of the environment variables }
+  popl    %esi
+  movl    %eax,%edi
+
+  movl    %esp,%ebx               { Points to the arguments }
+  movl    %esi,%eax
+  incl    %eax
+  shll    $2,%eax
+  addl    %esp,%eax
+  andl    $0xfffffff8,%esp        { Align stack }
+
+  movl    %eax,operatingsystem_parameter_envp    { Move the environment pointer }
+  movl    %esi,operatingsystem_parameter_argc    { Move the argument counter    }
+  movl    %ebx,operatingsystem_parameter_argv    { Move the argument pointer    }
+
+  movl    %edi,%eax
+  xorl    %ebp,%ebp
+  pushl   %eax
+  pushl   %esp
+  pushl   %edx
+  pushl   $.Lfini_dummy
+  pushl   $.Linit_dummy
+  pushl   %ebx
+  pushl   %esi
+  pushl   $.Lcmain
+  call    libc_start_main
+.Linit_dummy:
+.Lfini_dummy:
+  ret
+
+{ fake main routine which will be run from libc }
+.Lcmain:
+  { save return address }
+  popl    %eax
+  movl    %eax,libc21_fpc_ret
+  movl    %ebx,libc21_fpc_ret_ebx
+  movl    %esi,libc21_fpc_ret_esi
+  movl    %edi,libc21_fpc_ret_edi
+  pushl   %eax
+
+  call    _FPC_libc21_gprof_gmon_start
+
+  { Save initial stackpointer }
+  movl    %esp,initialstkptr
+
+  { start the program }
+  call    PASCALMAIN
+  hlt
+end;
+
+procedure _FPC_libc21_gprof_haltproc; assembler; nostackframe; public name '_haltproc';
+asm
+  movzwl  ExitCode,%eax
+
+  movl    libc21_fpc_ret,%edx         { return to libc }
+  movl    libc21_fpc_ret_ebx,%ebx
+  movl    libc21_fpc_ret_esi,%esi
+  movl    libc21_fpc_ret_edi,%edi
+  push    %edx
+  ret
+end;
+

+ 94 - 0
rtl/linux/i386/si_dll.inc

@@ -0,0 +1,94 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+ Linux ELF startup code for Free Pascal
+
+
+ Stack layout at program start:
+
+         nil
+         envn
+         ....
+         ....           ENVIRONMENT VARIABLES
+         env1
+         env0
+         nil
+         argn
+         ....
+         ....           COMMAND LINE OPTIONS
+         arg1
+         arg0
+         argc <--- esp
+}
+
+procedure PASCALMAIN; external name 'PASCALMAIN';
+
+{******************************************************************************
+                        Shared library start/halt
+ ******************************************************************************}
+
+procedure _FPC_shared_lib_start; assembler; nostackframe; public name '_start';
+asm
+  pushl   %ebp
+  movl    %esp,%ebp
+
+{$ifdef FPC_PIC}
+  call    fpc_geteipasebx
+  addl    $_GLOBAL_OFFSET_TABLE_,%ebx
+{$endif}
+
+  movl    8(%ebp),%eax
+  movl    12(%ebp),%ecx
+  movl    16(%ebp),%edx
+
+  movl    %eax,operatingsystem_parameter_argc    { Copy the argument count      }
+  movl    %ecx,operatingsystem_parameter_argv    { Copy the argument pointer    }
+  movl    %edx,operatingsystem_parameter_envp    { Copy the environment pointer }
+
+{$ifdef FPC_PIC}
+  movl    ISLIBRARY@GOT(%ebx),%eax
+  movb    $1,(%eax)
+{$else}
+  movb    $1,ISLIBRARY
+{$endif}  
+
+  { Save initial stackpointer }
+  movl    %esp,initialstkptr
+
+  call    PASCALMAIN
+
+  leave
+  ret
+end;
+
+procedure _FPC_shared_lib_haltproc; assembler; nostackframe; public name '_haltproc';
+asm
+{$ifdef FPC_PIC}
+  call    fpc_geteipasebx
+  addl    $_GLOBAL_OFFSET_TABLE_,%ebx
+{$endif}
+.Lhaltproc:
+  xorl    %eax,%eax
+  incl    %eax                    { eax=1, exit call }
+{$ifdef FPC_PIC}
+  pushl   %ebx       
+  movl    ExitCode@GOT(%ebx),%ebx
+  movzwl  (%ebx),%ebx
+{$endif}  
+  int     $0x80
+  jmp     .Lhaltproc
+  popl    %ebx
+end;
+

+ 100 - 0
rtl/linux/i386/si_g.inc

@@ -0,0 +1,100 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+ Linux ELF startup code for Free Pascal
+
+
+ Stack layout at program start:
+
+         nil
+         envn
+         ....
+         ....           ENVIRONMENT VARIABLES
+         env1
+         env0
+         nil
+         argn
+         ....
+         ....           COMMAND LINE OPTIONS
+         arg1
+         arg0
+         argc <--- esp
+}
+
+var
+  gmon_etext: pointer; external name '_etext';
+  gmon_monstarted: longint = 0;
+
+procedure gmon_monstartup; external name 'monstartup';
+procedure gmon_mcleanup; external name '_mcleanup';
+
+procedure libc_atexit; external name '__libc_atexit';
+procedure libc_exit; external name '__libc_exit';
+procedure libc_init; external name '__libc_init';
+procedure libc_setfpucw; external name '__setfpucw';
+procedure libc_start_main; external name '__libc_start_main';
+
+procedure PASCALMAIN; external name 'PASCALMAIN';
+
+{******************************************************************************
+                       Process + profiling start/halt
+ ******************************************************************************}
+
+procedure _FPC_proc_gprof_start; assembler; nostackframe; public name '_start';
+asm
+  { First locate the start of the environment variables }
+  popl    %ecx
+  movl    %esp,%ebx               { Points to the arguments }
+  movl    %ecx,%eax
+  incl    %eax
+  shll    $2,%eax
+  addl    %esp,%eax
+  andl    $0xfffffff8,%esp        { Align stack }
+
+  movl    %eax,operatingsystem_parameter_envp    { Move the environment pointer }
+  movl    %ecx,operatingsystem_parameter_argc    { Move the argument counter    }
+  movl    %ebx,operatingsystem_parameter_argv    { Move the argument pointer    }
+
+  finit                           { initialize fpu }
+  fwait
+  fldcw   Default8087CW 
+
+  pushl   $gmon_etext                 { Initialize gmon }
+  pushl   $_FPC_proc_gprof_start
+  call    gmon_monstartup
+  addl    $8,%esp
+  pushl   $gmon_mcleanup
+  call    libc_atexit
+  addl    $4,%esp
+
+  { Save initial stackpointer }
+  movl    %esp,initialstkptr
+
+  xorl    %ebp,%ebp
+  call    PASCALMAIN
+end;
+
+procedure _FPC_proc_gprof_haltproc; assembler; nostackframe; public name '_haltproc';
+asm
+.Lhaltproc:
+  movzwl  ExitCode,%ebx
+  pushl   %ebx
+  call    libc_exit     { call libc exit, this will  write the gmon.out }
+  movl    syscall_nr_exit_group,%eax
+  popl    %ebx
+  int     $0x80
+  jmp     .Lhaltproc
+end;
+

+ 80 - 0
rtl/linux/i386/si_prc.inc

@@ -0,0 +1,80 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+ Linux ELF startup code for Free Pascal
+
+
+ Stack layout at program start:
+
+         nil
+         envn
+         ....
+         ....           ENVIRONMENT VARIABLES
+         env1
+         env0
+         nil
+         argn
+         ....
+         ....           COMMAND LINE OPTIONS
+         arg1
+         arg0
+         argc <--- esp
+}
+
+procedure PASCALMAIN; external name 'PASCALMAIN';
+
+{******************************************************************************
+                          Process start/halt
+ ******************************************************************************}
+
+procedure _FPC_proc_start; assembler; nostackframe; public name '_start';
+asm
+  { First locate the start of the environment variables }
+  popl    %ecx                    { Get argc in ecx }
+  movl    %esp,%ebx               { Esp now points to the arguments }
+  leal    4(%esp,%ecx,4),%eax     { The start of the environment is: esp+4*eax+4 }
+  andl    $0xfffffff8,%esp        { Align stack }
+
+  movl    %eax,operatingsystem_parameter_envp
+  movl    %ecx,operatingsystem_parameter_argc
+  movl    %ebx,operatingsystem_parameter_argv
+
+  fninit                           { initialize fpu }
+  fwait
+  fldcw   Default8087CW
+
+  { Initialize gs for thread local storage }
+  // movw    %ds,%ax 
+  // movw    %ax,%gs
+
+  { Save initial stackpointer }
+  movl    %esp,initialstkptr
+
+  xorl    %ebp,%ebp
+  call    PASCALMAIN
+end;
+
+procedure _FPC_proc_haltproc; assembler; nostackframe; public name '_haltproc';
+asm
+.Lhaltproc:
+  movl    syscall_nr_exit_group,%eax
+  movzwl  ExitCode,%ebx
+  int     $0x80
+  movl    syscall_nr_exit,%eax
+  movzwl  ExitCode,%ebx
+  int     $0x80
+  jmp     .Lhaltproc
+end;
+

+ 26 - 0
rtl/linux/si_c.pp

@@ -0,0 +1,26 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit si_c;
+
+interface
+
+{$i si_intf.inc}
+
+implementation
+
+{$i sysnr.inc}
+{$i si_c.inc}
+
+end.

+ 26 - 0
rtl/linux/si_c21.pp

@@ -0,0 +1,26 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit si_c21;
+
+interface
+
+{$i si_intf.inc}
+
+implementation
+
+{$i sysnr.inc}
+{$i si_c21.inc}
+
+end.

+ 26 - 0
rtl/linux/si_c21g.pp

@@ -0,0 +1,26 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit si_c21g;
+
+interface
+
+{$i si_intf.inc}
+
+implementation
+
+{$i sysnr.inc}
+{$i si_c21g.inc}
+
+end.

+ 26 - 0
rtl/linux/si_dll.pp

@@ -0,0 +1,26 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit si_dll;
+
+interface
+
+{$i si_intf.inc}
+
+implementation
+
+{$i sysnr.inc}
+{$i si_dll.inc}
+
+end.

+ 26 - 0
rtl/linux/si_g.pp

@@ -0,0 +1,26 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit si_g;
+
+interface
+
+{$i si_intf.inc}
+
+implementation
+
+{$i sysnr.inc}
+{$i si_g.inc}
+
+end.

+ 5 - 0
rtl/linux/si_intf.inc

@@ -0,0 +1,5 @@
+var
+  initialstkptr: pointer; public name '__stkptr';
+  operatingsystem_parameter_envp: ppchar; public name 'operatingsystem_parameter_envp';
+  operatingsystem_parameter_argc: ptruint; public name 'operatingsystem_parameter_argc';
+  operatingsystem_parameter_argv: ppchar; public name 'operatingsystem_parameter_argv';

+ 26 - 0
rtl/linux/si_prc.pp

@@ -0,0 +1,26 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+    & Daniel Mantione, members of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit si_prc;
+
+interface
+
+{$i si_intf.inc}
+
+implementation
+
+{$i sysnr.inc}
+{$i si_prc.inc}
+
+end.