Browse Source

* dllprt0 stub added

peter 24 years ago
parent
commit
34a674c6a1
3 changed files with 66 additions and 3 deletions
  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
 override PATH:=$(subst \,/,$(PATH))
@@ -141,7 +141,7 @@ ifndef USELIBGGI
 USELIBGGI=NO
 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_LOADERS+=prt0 cprt0 gprt0 cprt21 gprt21
+override TARGET_LOADERS+=prt0 dllprt0 cprt0 gprt0 cprt21 gprt21
 override TARGET_RSTS+=math varutils
 override CLEAN_UNITS+=syslinux linux
 override INSTALL_FPCPACKAGE=y
@@ -832,6 +832,8 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 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
 	$(AS) -o gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
 cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as

+ 4 - 1
rtl/linux/Makefile.fpc

@@ -6,7 +6,7 @@
 main=rtl
 
 [target]
-loaders=prt0 cprt0 gprt0 cprt21 gprt21
+loaders=prt0 dllprt0 cprt0 gprt0 cprt21 gprt21
 units=$(SYSTEMUNIT) objpas strings \
       $(LINUXUNIT) unix ports initc \
       dos crt objects printer graph ggigraph \
@@ -101,6 +101,9 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 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
         $(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
+#
+#