peter 24 роки тому
батько
коміт
34a674c6a1
3 змінених файлів з 66 додано та 3 видалено
  1. 4 2
      rtl/linux/Makefile
  2. 4 1
      rtl/linux/Makefile.fpc
  3. 58 0
      rtl/linux/i386/dllprt0.as

+ 4 - 2
rtl/linux/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by fpcmake v1.99.0 [2001/05/30]
+# Don't edit, this file is generated by fpcmake v1.99.0 [2001/06/02]
 #
 #
 default: all
 default: all
 override PATH:=$(subst \,/,$(PATH))
 override PATH:=$(subst \,/,$(PATH))
@@ -141,7 +141,7 @@ ifndef USELIBGGI
 USELIBGGI=NO
 USELIBGGI=NO
 endif
 endif
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings $(LINUXUNIT) unix ports initc dos crt objects printer graph ggigraph sysutils typinfo math varutils cpu mmx getopts heaptrc lineinfo errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings $(LINUXUNIT) unix ports initc dos crt objects printer graph ggigraph sysutils typinfo math varutils cpu mmx getopts heaptrc lineinfo errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard
-override TARGET_LOADERS+=prt0 cprt0 gprt0 cprt21 gprt21
+override TARGET_LOADERS+=prt0 dllprt0 cprt0 gprt0 cprt21 gprt21
 override TARGET_RSTS+=math varutils
 override TARGET_RSTS+=math varutils
 override CLEAN_UNITS+=syslinux linux
 override CLEAN_UNITS+=syslinux linux
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
@@ -832,6 +832,8 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
 prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
 	$(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
 	$(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
+dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
+	$(AS) -o dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
 gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
 gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
 	$(AS) -o gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
 	$(AS) -o gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
 cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
 cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as

+ 4 - 1
rtl/linux/Makefile.fpc

@@ -6,7 +6,7 @@
 main=rtl
 main=rtl
 
 
 [target]
 [target]
-loaders=prt0 cprt0 gprt0 cprt21 gprt21
+loaders=prt0 dllprt0 cprt0 gprt0 cprt21 gprt21
 units=$(SYSTEMUNIT) objpas strings \
 units=$(SYSTEMUNIT) objpas strings \
       $(LINUXUNIT) unix ports initc \
       $(LINUXUNIT) unix ports initc \
       dos crt objects printer graph ggigraph \
       dos crt objects printer graph ggigraph \
@@ -101,6 +101,9 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
 prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
         $(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
         $(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
 
 
+dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
+        $(AS) -o dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
+
 gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
 gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
         $(AS) -o gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
         $(AS) -o gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
 
 

+ 58 - 0
rtl/linux/i386/dllprt0.as

@@ -0,0 +1,58 @@
+#
+#   $Id$
+#   This file is part of the Free Pascal run time library.
+#   Copyright (c) 2001 by Peter Vreman
+#
+#   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 shared library startup code for Free Pascal
+#
+
+        .file   "dllprt0.as"
+        .text
+        .globl  _startlib
+        .type   _startlib,@function
+_startlib:
+        .globl  FPC_LIB_START
+        .type   FPC_LIB_START,@function
+FPC_LIB_START:
+        pushl   %ebp
+        movl    %esp,%ebp
+
+        movl    8(%ebp),%eax
+        movl    12(%ebp),%ecx
+        movl    16(%ebp),%edx
+
+        movl    %eax,U_SYSTEM_ARGC    /* Move the argument counter    */
+        movl    %ecx,U_SYSTEM_ARGV    /* Move the argument pointer    */
+        movl    %edx,U_SYSTEM_ENVP    /* Move the environment pointer */
+
+        movb    $1,U_SYSTEM_ISLIBRARY
+
+        call    PASCALMAIN
+
+        leave
+        ret
+
+        .globl  _haltproc
+        .type   _haltproc,@function
+_haltproc:
+        movl    $1,%eax                 /* exit call */
+        xorl    %ebx,%ebx
+        movw    U_SYSTEM_EXITCODE,%bx
+        int     $0x80
+        jmp     _haltproc
+
+#
+# $Log$
+# Revision 1.1  2001-06-03 15:13:43  peter
+#   * dllprt0 stub added
+#
+#