mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-21 13:52:35 +02:00
--- Merging r41640 into '.':
U rtl/bsd/ostypes.inc --- Recording mergeinfo for merge of r41640 into '.': U . --- Merging r41642 into '.': G rtl/bsd/ostypes.inc --- Recording mergeinfo for merge of r41642 into '.': G . --- Merging r41643 into '.': G rtl/bsd/ostypes.inc --- Recording mergeinfo for merge of r41643 into '.': G . --- Merging r41645 into '.': U rtl/openbsd/i386/prt0.as U rtl/openbsd/i386/cprt0.as U rtl/openbsd/x86_64/gprt0.as U rtl/openbsd/x86_64/prt0.as U rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41645 into '.': G . --- Merging r41649 into '.': G rtl/openbsd/i386/prt0.as G rtl/openbsd/i386/cprt0.as G rtl/openbsd/x86_64/prt0.as G rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41649 into '.': G . --- Merging r41653 into '.': U rtl/openbsd/x86_64/prt0.as --- Recording mergeinfo for merge of r41653 into '.': G . --- Merging r41654 into '.': G rtl/openbsd/x86_64/prt0.as --- Recording mergeinfo for merge of r41654 into '.': G . --- Merging r41659 into '.': G rtl/openbsd/x86_64/prt0.as --- Recording mergeinfo for merge of r41659 into '.': G . --- Merging r41660 into '.': G rtl/openbsd/x86_64/prt0.as --- Recording mergeinfo for merge of r41660 into '.': G . --- Merging r41669 into '.': U rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41669 into '.': G . --- Merging r41670 into '.': G rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41670 into '.': G . --- Merging r41671 into '.': G rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41671 into '.': G . --- Merging r41672 into '.': U tests/test/cg/obj/openbsd/x86_64/cpptcl2.o U tests/test/cg/obj/openbsd/x86_64/tcext3.o U tests/test/cg/obj/openbsd/x86_64/tcext4.o U tests/test/cg/obj/openbsd/x86_64/tcext5.o U tests/test/cg/obj/openbsd/x86_64/tcext6.o U tests/test/cg/obj/openbsd/x86_64/ctest.o U tests/test/cg/obj/openbsd/x86_64/cpptcl1.o --- Recording mergeinfo for merge of r41672 into '.': G . --- Merging r41677 into '.': U rtl/openbsd/termios.inc --- Recording mergeinfo for merge of r41677 into '.': G . --- Merging r41678 into '.': U packages/rtl-console/src/unix/keyboard.pp --- Recording mergeinfo for merge of r41678 into '.': G . --- Merging r41682 into '.': U rtl/openbsd/i386/prt0.as --- Recording mergeinfo for merge of r41682 into '.': G . --- Merging r41683 into '.': G rtl/openbsd/i386/prt0.as --- Recording mergeinfo for merge of r41683 into '.': G . --- Merging r41685 into '.': G rtl/openbsd/i386/prt0.as --- Recording mergeinfo for merge of r41685 into '.': G . --- Merging r41686 into '.': G rtl/openbsd/i386/cprt0.as --- Recording mergeinfo for merge of r41686 into '.': G . --- Merging r41687 into '.': G rtl/openbsd/i386/cprt0.as --- Recording mergeinfo for merge of r41687 into '.': G . --- Merging r41688 into '.': U tests/test/cg/obj/openbsd/i386/tcext3.o U tests/test/cg/obj/openbsd/i386/tcext4.o U tests/test/cg/obj/openbsd/i386/tcext5.o U tests/test/cg/obj/openbsd/i386/tcext6.o U tests/test/cg/obj/openbsd/i386/ctest.o U tests/test/cg/obj/openbsd/i386/cpptcl1.o U tests/test/cg/obj/openbsd/i386/cpptcl2.o --- Recording mergeinfo for merge of r41688 into '.': G . --- Merging r41692 into '.': A rtl/openbsd/si_dll.pp A rtl/openbsd/i386/si_c.inc A rtl/openbsd/i386/si_prc.inc A rtl/openbsd/i386/si_dll.inc A rtl/openbsd/si_c.pp A rtl/openbsd/si_prc.pp A rtl/openbsd/x86_64/si_c.inc A rtl/openbsd/x86_64/si_prc.inc A rtl/openbsd/x86_64/si_dll.inc A rtl/openbsd/si_intf.inc --- Recording mergeinfo for merge of r41692 into '.': G . # revisions: 41640,41642,41643,41645,41649,41653,41654,41659,41660,41669,41670,41671,41672,41677,41678,41682,41683,41685,41686,41687,41688,41692 r41640 | nickysn | 2019-03-08 17:14:40 +0100 (Fri, 08 Mar 2019) | 2 lines Changed paths: M /trunk/rtl/bsd/ostypes.inc * Adjust for OpenBSD struct changes in the 'stat' structure. Based on OpenBSD ports patch patch-fpcsrc_rtl_bsd_ostypes_inc r41642 | nickysn | 2019-03-08 17:22:53 +0100 (Fri, 08 Mar 2019) | 2 lines Changed paths: M /trunk/rtl/bsd/ostypes.inc * Adjust for OpenBSD struct changes in the 'dirent' structure. Based on OpenBSD ports patch patch-fpcsrc_rtl_bsd_ostypes_inc r41643 | nickysn | 2019-03-08 17:26:40 +0100 (Fri, 08 Mar 2019) | 2 lines Changed paths: M /trunk/rtl/bsd/ostypes.inc * Adjust for OpenBSD struct changes in the 'dir' structure. Based on OpenBSD ports patch patch-fpcsrc_rtl_bsd_ostypes_inc r41645 | nickysn | 2019-03-09 15:33:25 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/cprt0.as M /trunk/rtl/openbsd/i386/prt0.as M /trunk/rtl/openbsd/x86_64/cprt0.as M /trunk/rtl/openbsd/x86_64/gprt0.as M /trunk/rtl/openbsd/x86_64/prt0.as * applied all the OpenBSD startup code patches from the OpenBSD ports tree r41649 | nickysn | 2019-03-09 16:40:34 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/cprt0.as M /trunk/rtl/openbsd/i386/prt0.as M /trunk/rtl/openbsd/x86_64/cprt0.as M /trunk/rtl/openbsd/x86_64/prt0.as - removed duplicated ".note.openbsd.ident" sections, committed erroneously in r41645 r41653 | nickysn | 2019-03-09 17:54:39 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/prt0.as * PIC fixes in OpenBSD's prt0.as for x86_64 r41654 | nickysn | 2019-03-09 17:58:25 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/prt0.as * fixed bug, due to a typo in the previous commit r41659 | nickysn | 2019-03-09 18:48:28 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/prt0.as * use PIC in the eh_frame section as well r41660 | nickysn | 2019-03-09 19:30:31 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/prt0.as * changed the type of the .eh_frame section to 'unwind' r41669 | nickysn | 2019-03-10 17:08:46 +0100 (Sun, 10 Mar 2019) | 4 lines Changed paths: M /trunk/rtl/openbsd/x86_64/cprt0.as * some PIC fixes in OpenBSD x86_64 cprt0.as * use the correct section type for .eh_frame r41670 | nickysn | 2019-03-10 17:20:33 +0100 (Sun, 10 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/cprt0.as * more PIC fixes in OpenBSD's x86_64 cprt0.as r41671 | nickysn | 2019-03-10 17:53:47 +0100 (Sun, 10 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/cprt0.as * more PIC fixes in OpenBSD's x86_64 cprt0.as r41672 | nickysn | 2019-03-10 18:38:07 +0100 (Sun, 10 Mar 2019) | 5 lines Changed paths: M /trunk/tests/test/cg/obj/openbsd/x86_64/cpptcl1.o M /trunk/tests/test/cg/obj/openbsd/x86_64/cpptcl2.o M /trunk/tests/test/cg/obj/openbsd/x86_64/ctest.o M /trunk/tests/test/cg/obj/openbsd/x86_64/tcext3.o M /trunk/tests/test/cg/obj/openbsd/x86_64/tcext4.o M /trunk/tests/test/cg/obj/openbsd/x86_64/tcext5.o M /trunk/tests/test/cg/obj/openbsd/x86_64/tcext6.o * recompiled the OpenBSD x86_64 C and C++ .o test files; GCC version is the same (so, no need to update readme.txt), but OpenBSD's default compile settings have changed (PIC is enabled by default) r41677 | nickysn | 2019-03-11 17:53:00 +0100 (Mon, 11 Mar 2019) | 1 line Changed paths: M /trunk/rtl/openbsd/termios.inc * OpenBSD termios interface updates r41678 | nickysn | 2019-03-11 19:08:21 +0100 (Mon, 11 Mar 2019) | 4 lines Changed paths: M /trunk/packages/rtl-console/src/unix/keyboard.pp * use stdin instead of stdout to switch the console to raw mode; this fixes keyboard input in OpenBSD r41682 | nickysn | 2019-03-12 02:33:06 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/prt0.as * partial PIC conversion of the i386 OpenBSD startup code r41683 | nickysn | 2019-03-12 02:58:11 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/prt0.as * more PIC fixes in the i386 OpenBSD startup code r41685 | nickysn | 2019-03-12 14:55:54 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/prt0.as * more PIC fixes in i386 OpenBSD's startup code. prt0.as is now completely PIC r41686 | nickysn | 2019-03-12 15:56:27 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/cprt0.as * PIC fixes in cprt0 for i386-openbsd r41687 | nickysn | 2019-03-12 17:00:12 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/cprt0.as * yet another PIC fix in cprt0 for i386-openbsd r41688 | nickysn | 2019-03-12 17:04:57 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/tests/test/cg/obj/openbsd/i386/cpptcl1.o M /trunk/tests/test/cg/obj/openbsd/i386/cpptcl2.o M /trunk/tests/test/cg/obj/openbsd/i386/ctest.o M /trunk/tests/test/cg/obj/openbsd/i386/tcext3.o M /trunk/tests/test/cg/obj/openbsd/i386/tcext4.o M /trunk/tests/test/cg/obj/openbsd/i386/tcext5.o M /trunk/tests/test/cg/obj/openbsd/i386/tcext6.o * the i386-openbsd C and C++ test modules recompiled with -fPIC r41692 | nickysn | 2019-03-13 16:59:36 +0100 (Wed, 13 Mar 2019) | 3 lines Changed paths: A /trunk/rtl/openbsd/i386/si_c.inc A /trunk/rtl/openbsd/i386/si_dll.inc A /trunk/rtl/openbsd/i386/si_prc.inc A /trunk/rtl/openbsd/si_c.pp A /trunk/rtl/openbsd/si_dll.pp A /trunk/rtl/openbsd/si_intf.inc A /trunk/rtl/openbsd/si_prc.pp A /trunk/rtl/openbsd/x86_64/si_c.inc A /trunk/rtl/openbsd/x86_64/si_dll.inc A /trunk/rtl/openbsd/x86_64/si_prc.inc + initial (only a stub for now) implementation of pascal-based startup code units for OpenBSD git-svn-id: branches/fixes_3_2@41782 -
This commit is contained in:
parent
b99879b91b
commit
5c0a5db4bd
10
.gitattributes
vendored
10
.gitattributes
vendored
@ -10087,6 +10087,9 @@ rtl/openbsd/i386/bsyscall.inc svneol=native#text/plain
|
|||||||
rtl/openbsd/i386/cprt0.as svneol=native#text/plain
|
rtl/openbsd/i386/cprt0.as svneol=native#text/plain
|
||||||
rtl/openbsd/i386/dllprt0.as svneol=native#text/plain
|
rtl/openbsd/i386/dllprt0.as svneol=native#text/plain
|
||||||
rtl/openbsd/i386/prt0.as svneol=native#text/plain
|
rtl/openbsd/i386/prt0.as svneol=native#text/plain
|
||||||
|
rtl/openbsd/i386/si_c.inc svneol=native#text/plain
|
||||||
|
rtl/openbsd/i386/si_dll.inc svneol=native#text/plain
|
||||||
|
rtl/openbsd/i386/si_prc.inc svneol=native#text/plain
|
||||||
rtl/openbsd/i386/sighnd.inc svneol=native#text/plain
|
rtl/openbsd/i386/sighnd.inc svneol=native#text/plain
|
||||||
rtl/openbsd/osdefs.inc svneol=native#text/plain
|
rtl/openbsd/osdefs.inc svneol=native#text/plain
|
||||||
rtl/openbsd/pmutext.inc svneol=native#text/plain
|
rtl/openbsd/pmutext.inc svneol=native#text/plain
|
||||||
@ -10094,6 +10097,10 @@ rtl/openbsd/pthread.inc svneol=native#text/plain
|
|||||||
rtl/openbsd/ptypes.inc svneol=native#text/plain
|
rtl/openbsd/ptypes.inc svneol=native#text/plain
|
||||||
rtl/openbsd/rtldefs.inc svneol=native#text/plain
|
rtl/openbsd/rtldefs.inc svneol=native#text/plain
|
||||||
rtl/openbsd/setsysnr.inc svneol=native#text/plain
|
rtl/openbsd/setsysnr.inc svneol=native#text/plain
|
||||||
|
rtl/openbsd/si_c.pp svneol=native#text/plain
|
||||||
|
rtl/openbsd/si_dll.pp svneol=native#text/plain
|
||||||
|
rtl/openbsd/si_intf.inc svneol=native#text/plain
|
||||||
|
rtl/openbsd/si_prc.pp svneol=native#text/plain
|
||||||
rtl/openbsd/signal.inc svneol=native#text/plain
|
rtl/openbsd/signal.inc svneol=native#text/plain
|
||||||
rtl/openbsd/syscalls.inc svneol=native#text/plain
|
rtl/openbsd/syscalls.inc svneol=native#text/plain
|
||||||
rtl/openbsd/sysconst.inc svneol=native#text/plain
|
rtl/openbsd/sysconst.inc svneol=native#text/plain
|
||||||
@ -10114,6 +10121,9 @@ rtl/openbsd/x86_64/crt0.s svneol=native#text/plain
|
|||||||
rtl/openbsd/x86_64/dllprt0.as svneol=native#text/plain
|
rtl/openbsd/x86_64/dllprt0.as svneol=native#text/plain
|
||||||
rtl/openbsd/x86_64/gprt0.as svneol=native#text/plain
|
rtl/openbsd/x86_64/gprt0.as svneol=native#text/plain
|
||||||
rtl/openbsd/x86_64/prt0.as svneol=native#text/plain
|
rtl/openbsd/x86_64/prt0.as svneol=native#text/plain
|
||||||
|
rtl/openbsd/x86_64/si_c.inc svneol=native#text/plain
|
||||||
|
rtl/openbsd/x86_64/si_dll.inc svneol=native#text/plain
|
||||||
|
rtl/openbsd/x86_64/si_prc.inc svneol=native#text/plain
|
||||||
rtl/openbsd/x86_64/sighnd.inc svneol=native#text/plain
|
rtl/openbsd/x86_64/sighnd.inc svneol=native#text/plain
|
||||||
rtl/os2/Makefile svneol=native#text/plain
|
rtl/os2/Makefile svneol=native#text/plain
|
||||||
rtl/os2/Makefile.fpc svneol=native#text/plain
|
rtl/os2/Makefile.fpc svneol=native#text/plain
|
||||||
|
@ -118,7 +118,7 @@ procedure SetRawMode(b:boolean);
|
|||||||
var Tio:Termios;
|
var Tio:Termios;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
TCGetAttr(1,Tio);
|
TCGetAttr(0,Tio);
|
||||||
if b then
|
if b then
|
||||||
begin
|
begin
|
||||||
{Standard output now needs #13#10.}
|
{Standard output now needs #13#10.}
|
||||||
@ -132,7 +132,7 @@ begin
|
|||||||
{Standard output normally needs just a linefeed.}
|
{Standard output normally needs just a linefeed.}
|
||||||
settextlineending(output,#10);
|
settextlineending(output,#10);
|
||||||
end;
|
end;
|
||||||
TCsetattr(1,TCSANOW,Tio);
|
TCsetattr(0,TCSANOW,Tio);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$ifdef linux}
|
{$ifdef linux}
|
||||||
|
@ -87,6 +87,9 @@ TYPE
|
|||||||
st_qspare1 : cint64; // was recursive change detect
|
st_qspare1 : cint64; // was recursive change detect
|
||||||
st_qspare2 : cint64;
|
st_qspare2 : cint64;
|
||||||
{$else dragonfly}
|
{$else dragonfly}
|
||||||
|
{$ifdef openbsd}
|
||||||
|
st_mode : mode_t; // inode protection mode
|
||||||
|
{$endif openbsd}
|
||||||
st_dev : dev_t; // inode's device
|
st_dev : dev_t; // inode's device
|
||||||
{$ifdef darwin_new_iostructs}
|
{$ifdef darwin_new_iostructs}
|
||||||
st_mode : mode_t; // inode protection mode
|
st_mode : mode_t; // inode protection mode
|
||||||
@ -99,16 +102,15 @@ TYPE
|
|||||||
st_ino : ino_t; // inode's number
|
st_ino : ino_t; // inode's number
|
||||||
{$else not netbsd}
|
{$else not netbsd}
|
||||||
st_ino : ino_t; // inode's number
|
st_ino : ino_t; // inode's number
|
||||||
|
{$ifndef openbsd}
|
||||||
st_mode : mode_t; // inode protection mode
|
st_mode : mode_t; // inode protection mode
|
||||||
|
{$endif not openbsd}
|
||||||
{$endif not netbsd}
|
{$endif not netbsd}
|
||||||
st_nlink : nlink_t; // number of hard links
|
st_nlink : nlink_t; // number of hard links
|
||||||
{$endif}
|
{$endif}
|
||||||
st_uid : uid_t; // user ID of the file's owner
|
st_uid : uid_t; // user ID of the file's owner
|
||||||
st_gid : gid_t; // group ID of the file's group
|
st_gid : gid_t; // group ID of the file's group
|
||||||
st_rdev : dev_t; // device type
|
st_rdev : dev_t; // device type
|
||||||
{$ifdef openbsd}
|
|
||||||
st_padd0 : cint;
|
|
||||||
{$endif}
|
|
||||||
st_atime : time_t; // time of last access
|
st_atime : time_t; // time of last access
|
||||||
st_atimensec : clong; // nsec of last access
|
st_atimensec : clong; // nsec of last access
|
||||||
st_mtime : time_t; // time of last data modification
|
st_mtime : time_t; // time of last data modification
|
||||||
@ -154,6 +156,16 @@ TYPE
|
|||||||
d_unused2 : cuint32; // reserved
|
d_unused2 : cuint32; // reserved
|
||||||
d_name : array[0..255] of char; // name, null terminated
|
d_name : array[0..255] of char; // name, null terminated
|
||||||
end;
|
end;
|
||||||
|
{$elseif defined(openbsd)}
|
||||||
|
dirent = record
|
||||||
|
d_fileno : ino_t;
|
||||||
|
d_off : off_t;
|
||||||
|
d_reclen : cuint16; // length of this record
|
||||||
|
d_type : cuint8; // file type, see below
|
||||||
|
d_namlen : cuint8; // length of string in d_name
|
||||||
|
d_padding : array[0..3] of cuint8;
|
||||||
|
d_name : array[0..(255 + 1)-1] of char; // name must be no longer than this
|
||||||
|
end;
|
||||||
{$else}
|
{$else}
|
||||||
dirent = record
|
dirent = record
|
||||||
d_fileno : cuint32; // file number of entry
|
d_fileno : cuint32; // file number of entry
|
||||||
@ -185,6 +197,11 @@ TYPE
|
|||||||
dd_size : clong; // amount of data returned by getdirentries
|
dd_size : clong; // amount of data returned by getdirentries
|
||||||
dd_buf : pchar; // data buffer
|
dd_buf : pchar; // data buffer
|
||||||
dd_len : cint; // size of data buffer
|
dd_len : cint; // size of data buffer
|
||||||
|
{$ifdef openbsd}
|
||||||
|
dd_curpos : off_t;
|
||||||
|
dd_lock : pointer;
|
||||||
|
dd_rewind : clong;
|
||||||
|
{$else not openbsd}
|
||||||
{$ifdef netbsdpowerpc}
|
{$ifdef netbsdpowerpc}
|
||||||
dd_pad1 : cint;
|
dd_pad1 : cint;
|
||||||
dd_seek : cint64; // magic cookie returned by getdirentries
|
dd_seek : cint64; // magic cookie returned by getdirentries
|
||||||
@ -197,6 +214,7 @@ TYPE
|
|||||||
__dd_lock : pthread_mutex_t; // for thread locking
|
__dd_lock : pthread_mutex_t; // for thread locking
|
||||||
__dd_td : pointer; // telldir position recording
|
__dd_td : pointer; // telldir position recording
|
||||||
{$endif}
|
{$endif}
|
||||||
|
{$endif not openbsd}
|
||||||
end;
|
end;
|
||||||
TDir = dir;
|
TDir = dir;
|
||||||
pDir = ^dir;
|
pDir = ^dir;
|
||||||
|
@ -68,10 +68,15 @@ ___start:
|
|||||||
subl $16,%esp
|
subl $16,%esp
|
||||||
pushl %esi
|
pushl %esi
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
|
call fpc_geteipasecx
|
||||||
|
addl $_GLOBAL_OFFSET_TABLE_,%ecx
|
||||||
|
movl %ecx,%edi
|
||||||
movl 12(%ebp),%esi
|
movl 12(%ebp),%esi
|
||||||
movl 16(%ebp),%eax
|
movl 16(%ebp),%eax
|
||||||
movl %eax,environ
|
movl environ@GOT(%edi),%ecx
|
||||||
movl %eax,operatingsystem_parameter_envp
|
movl %eax,(%ecx)
|
||||||
|
movl operatingsystem_parameter_envp@GOT(%edi),%ecx
|
||||||
|
movl %eax,(%ecx)
|
||||||
movl (%esi),%ebx
|
movl (%esi),%ebx
|
||||||
testl %ebx,%ebx
|
testl %ebx,%ebx
|
||||||
je .L3
|
je .L3
|
||||||
@ -79,61 +84,76 @@ ___start:
|
|||||||
pushl $47
|
pushl $47
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
call _strrchr
|
call _strrchr
|
||||||
movl %eax,__progname
|
movl __progname@GOT(%edi),%ecx
|
||||||
|
movl %eax,(%ecx)
|
||||||
addl $16,%esp
|
addl $16,%esp
|
||||||
testl %eax,%eax
|
testl %eax,%eax
|
||||||
jne .L4
|
jne .L4
|
||||||
movl %ebx,__progname
|
movl %ebx,(%ecx)
|
||||||
jmp .L5
|
jmp .L5
|
||||||
.p2align 4,,7
|
.p2align 4,,7
|
||||||
.L4:
|
.L4:
|
||||||
incl %eax
|
incl %eax
|
||||||
movl %eax,__progname
|
movl %eax,(%ecx)
|
||||||
.L5:
|
.L5:
|
||||||
movl $__progname_storage,%edx
|
movl __progname_storage@GOT(%edi),%edx
|
||||||
jmp .L12
|
jmp .L12
|
||||||
.p2align 4,,7
|
.p2align 4,,7
|
||||||
.L9:
|
.L9:
|
||||||
movb (%eax),%al
|
movb (%eax),%al
|
||||||
movb %al,(%edx)
|
movb %al,(%edx)
|
||||||
incl __progname
|
movl __progname@GOT(%edi),%ecx
|
||||||
|
incl (%ecx)
|
||||||
incl %edx
|
incl %edx
|
||||||
.L12:
|
.L12:
|
||||||
movl __progname,%eax
|
movl __progname@GOT(%edi),%ecx
|
||||||
|
movl (%ecx),%eax
|
||||||
cmpb $0,(%eax)
|
cmpb $0,(%eax)
|
||||||
je .L7
|
je .L7
|
||||||
cmpl $__progname_storage+255,%edx
|
movl __progname_storage@GOT(%edi),%ecx
|
||||||
|
addl $255,%ecx
|
||||||
|
cmpl %ecx,%edx
|
||||||
jb .L9
|
jb .L9
|
||||||
.L7:
|
.L7:
|
||||||
movb $0,(%edx)
|
movb $0,(%edx)
|
||||||
movl $__progname_storage,__progname
|
pushl %eax
|
||||||
|
movl __progname_storage@GOT(%edi),%eax
|
||||||
|
movl __progname@GOT(%edi),%ecx
|
||||||
|
movl %eax,(%ecx)
|
||||||
|
popl %eax
|
||||||
.L3:
|
.L3:
|
||||||
call __init
|
# call __init
|
||||||
subl $16,%esp
|
subl $16,%esp
|
||||||
pushl %eax
|
pushl %eax
|
||||||
movl 8(%ebp),%eax
|
movl 8(%ebp),%eax
|
||||||
movl %eax,operatingsystem_parameter_argc
|
movl operatingsystem_parameter_argc@GOT(%edi),%ecx
|
||||||
movl %esi,operatingsystem_parameter_argv
|
movl %eax,(%ecx)
|
||||||
|
movl operatingsystem_parameter_argv@GOT(%edi),%ecx
|
||||||
|
movl %esi,(%ecx)
|
||||||
popl %eax
|
popl %eax
|
||||||
# pushl environ
|
# pushl environ
|
||||||
# pushl %esi
|
# pushl %esi
|
||||||
# pushl 8(%ebp)
|
# pushl 8(%ebp)
|
||||||
|
movl ___fpucw@GOT(%edi),%ecx
|
||||||
finit
|
finit
|
||||||
fwait
|
fwait
|
||||||
fldcw ___fpucw
|
fldcw (%ecx)
|
||||||
xorl %ebp,%ebp
|
xorl %ebp,%ebp
|
||||||
call main
|
call main
|
||||||
pushl %eax
|
pushl %eax
|
||||||
call exit
|
call exit@PLT
|
||||||
.p2align 2,0x90
|
.p2align 2,0x90
|
||||||
|
|
||||||
.globl _haltproc
|
.globl _haltproc
|
||||||
.type _haltproc,@function
|
.type _haltproc,@function
|
||||||
|
|
||||||
_haltproc:
|
_haltproc:
|
||||||
mov $1,%eax
|
call fpc_geteipasebx
|
||||||
movzwl operatingsystem_result,%ebx
|
addl $_GLOBAL_OFFSET_TABLE_,%ebx
|
||||||
|
movl operatingsystem_result@GOT(%ebx),%ebx
|
||||||
|
movzwl (%ebx),%ebx
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
|
mov $1,%eax
|
||||||
call .Lactualsyscall
|
call .Lactualsyscall
|
||||||
addl $4,%esp
|
addl $4,%esp
|
||||||
jmp _haltproc
|
jmp _haltproc
|
||||||
|
@ -64,10 +64,15 @@ ___start:
|
|||||||
subl $16,%esp
|
subl $16,%esp
|
||||||
pushl %esi
|
pushl %esi
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
|
call fpc_geteipasecx
|
||||||
|
addl $_GLOBAL_OFFSET_TABLE_,%ecx
|
||||||
|
movl %ecx,%edi
|
||||||
movl 12(%ebp),%esi
|
movl 12(%ebp),%esi
|
||||||
movl 16(%ebp),%eax
|
movl 16(%ebp),%eax
|
||||||
movl %eax,environ
|
movl environ@GOT(%edi),%ecx
|
||||||
movl %eax,operatingsystem_parameter_envp
|
movl %eax,(%ecx)
|
||||||
|
movl operatingsystem_parameter_envp@GOT(%edi),%ecx
|
||||||
|
movl %eax,(%ecx)
|
||||||
movl (%esi),%ebx
|
movl (%esi),%ebx
|
||||||
testl %ebx,%ebx
|
testl %ebx,%ebx
|
||||||
je .L3
|
je .L3
|
||||||
@ -75,48 +80,60 @@ ___start:
|
|||||||
pushl $47
|
pushl $47
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
call _strrchr
|
call _strrchr
|
||||||
movl %eax,__progname
|
movl __progname@GOT(%edi),%ecx
|
||||||
|
movl %eax,(%ecx)
|
||||||
addl $16,%esp
|
addl $16,%esp
|
||||||
testl %eax,%eax
|
testl %eax,%eax
|
||||||
jne .L4
|
jne .L4
|
||||||
movl %ebx,__progname
|
movl %ebx,(%ecx)
|
||||||
jmp .L5
|
jmp .L5
|
||||||
.p2align 4,,7
|
.p2align 4,,7
|
||||||
.L4:
|
.L4:
|
||||||
incl %eax
|
incl %eax
|
||||||
movl %eax,__progname
|
movl %eax,(%ecx)
|
||||||
.L5:
|
.L5:
|
||||||
movl $__progname_storage,%edx
|
movl __progname_storage@GOT(%edi),%edx
|
||||||
jmp .L12
|
jmp .L12
|
||||||
.p2align 4,,7
|
.p2align 4,,7
|
||||||
.L9:
|
.L9:
|
||||||
movb (%eax),%al
|
movb (%eax),%al
|
||||||
movb %al,(%edx)
|
movb %al,(%edx)
|
||||||
incl __progname
|
movl __progname@GOT(%edi),%ecx
|
||||||
|
incl (%ecx)
|
||||||
incl %edx
|
incl %edx
|
||||||
.L12:
|
.L12:
|
||||||
movl __progname,%eax
|
movl __progname@GOT(%edi),%ecx
|
||||||
|
movl (%ecx),%eax
|
||||||
cmpb $0,(%eax)
|
cmpb $0,(%eax)
|
||||||
je .L7
|
je .L7
|
||||||
cmpl $__progname_storage+255,%edx
|
movl __progname_storage@GOT(%edi),%ecx
|
||||||
|
addl $255,%ecx
|
||||||
|
cmpl %ecx,%edx
|
||||||
jb .L9
|
jb .L9
|
||||||
.L7:
|
.L7:
|
||||||
movb $0,(%edx)
|
movb $0,(%edx)
|
||||||
movl $__progname_storage,__progname
|
pushl %eax
|
||||||
|
movl __progname_storage@GOT(%edi),%eax
|
||||||
|
movl __progname@GOT(%edi),%ecx
|
||||||
|
movl %eax,(%ecx)
|
||||||
|
popl %eax
|
||||||
.L3:
|
.L3:
|
||||||
# call __init
|
# call __init
|
||||||
subl $16,%esp
|
subl $16,%esp
|
||||||
pushl %eax
|
pushl %eax
|
||||||
movl 8(%ebp),%eax
|
movl 8(%ebp),%eax
|
||||||
movl %eax,operatingsystem_parameter_argc
|
movl operatingsystem_parameter_argc@GOT(%edi),%ecx
|
||||||
movl %esi,operatingsystem_parameter_argv
|
movl %eax,(%ecx)
|
||||||
|
movl operatingsystem_parameter_argv@GOT(%edi),%ecx
|
||||||
|
movl %esi,(%ecx)
|
||||||
popl %eax
|
popl %eax
|
||||||
# pushl environ
|
# pushl environ
|
||||||
# pushl %esi
|
# pushl %esi
|
||||||
# pushl 8(%ebp)
|
# pushl 8(%ebp)
|
||||||
|
movl ___fpucw@GOT(%edi),%ecx
|
||||||
finit
|
finit
|
||||||
fwait
|
fwait
|
||||||
fldcw ___fpucw
|
fldcw (%ecx)
|
||||||
xorl %ebp,%ebp
|
xorl %ebp,%ebp
|
||||||
call main
|
call main
|
||||||
# pushl %eax
|
# pushl %eax
|
||||||
@ -128,9 +145,12 @@ ___start:
|
|||||||
.type _haltproc,@function
|
.type _haltproc,@function
|
||||||
|
|
||||||
_haltproc:
|
_haltproc:
|
||||||
mov $1,%eax
|
call fpc_geteipasebx
|
||||||
movzwl operatingsystem_result,%ebx
|
addl $_GLOBAL_OFFSET_TABLE_,%ebx
|
||||||
|
movl operatingsystem_result@GOT(%ebx),%ebx
|
||||||
|
movzwl (%ebx),%ebx
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
|
mov $1,%eax
|
||||||
call .Lactualsyscall
|
call .Lactualsyscall
|
||||||
addl $4,%esp
|
addl $4,%esp
|
||||||
jmp _haltproc
|
jmp _haltproc
|
||||||
|
17
rtl/openbsd/i386/si_c.inc
Normal file
17
rtl/openbsd/i386/si_c.inc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements parts of the startup code for OpenBSD
|
||||||
|
programs that link to the C library.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
**********************************************************************}
|
||||||
|
|
||||||
|
|
17
rtl/openbsd/i386/si_dll.inc
Normal file
17
rtl/openbsd/i386/si_dll.inc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements parts of the startup code for OpenBSD
|
||||||
|
shared object (.so) libraries.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
**********************************************************************}
|
||||||
|
|
||||||
|
|
17
rtl/openbsd/i386/si_prc.inc
Normal file
17
rtl/openbsd/i386/si_prc.inc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements parts of the startup code for OpenBSD
|
||||||
|
programs that don't link to the C library.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
**********************************************************************}
|
||||||
|
|
||||||
|
|
27
rtl/openbsd/si_c.pp
Normal file
27
rtl/openbsd/si_c.pp
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements the startup code for OpenBSD programs that
|
||||||
|
link to the C library.
|
||||||
|
|
||||||
|
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 si_c.inc}
|
||||||
|
|
||||||
|
end.
|
27
rtl/openbsd/si_dll.pp
Normal file
27
rtl/openbsd/si_dll.pp
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements the startup code for OpenBSD shared object
|
||||||
|
(.so) libraries.
|
||||||
|
|
||||||
|
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 si_dll.inc}
|
||||||
|
|
||||||
|
end.
|
22
rtl/openbsd/si_intf.inc
Normal file
22
rtl/openbsd/si_intf.inc
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements the public interface parts of the startup
|
||||||
|
code for OpenBSD programs or shared object (.so) libraries.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
**********************************************************************}
|
||||||
|
|
||||||
|
{$SMARTLINK OFF}
|
||||||
|
|
||||||
|
var
|
||||||
|
operatingsystem_parameter_envp: ppchar; public name 'operatingsystem_parameter_envp';
|
||||||
|
operatingsystem_parameter_argc: longint; public name 'operatingsystem_parameter_argc';
|
||||||
|
operatingsystem_parameter_argv: ppchar; public name 'operatingsystem_parameter_argv';
|
28
rtl/openbsd/si_prc.pp
Normal file
28
rtl/openbsd/si_prc.pp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements the startup code for OpenBSD programs that
|
||||||
|
don't link to the C library.
|
||||||
|
|
||||||
|
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 si_prc.inc}
|
||||||
|
|
||||||
|
end.
|
@ -55,17 +55,16 @@ Type
|
|||||||
|
|
||||||
|
|
||||||
type
|
type
|
||||||
Termios = packed record
|
tcflag_t = cuint;
|
||||||
|
cc_t = cuchar;
|
||||||
|
Termios = record
|
||||||
c_iflag,
|
c_iflag,
|
||||||
c_oflag,
|
c_oflag,
|
||||||
c_cflag,
|
c_cflag,
|
||||||
c_lflag : longint;
|
c_lflag : tcflag_t;
|
||||||
// c_line : char;
|
c_cc : array[0..NCCS-1] of cc_t;
|
||||||
c_cc : array[0..NCCS-1] of byte;
|
|
||||||
{$IFDEF BSD}
|
|
||||||
c_ispeed,
|
c_ispeed,
|
||||||
c_ospeed : longint;
|
c_ospeed : cint;
|
||||||
{$endif}
|
|
||||||
end;
|
end;
|
||||||
TTermios=Termios;
|
TTermios=Termios;
|
||||||
|
|
||||||
@ -92,6 +91,7 @@ CONST
|
|||||||
IXON = $200; { enable output flow control }
|
IXON = $200; { enable output flow control }
|
||||||
IXOFF = $400; { enable input flow control }
|
IXOFF = $400; { enable input flow control }
|
||||||
IXANY = $800; { any char will restart after stop }
|
IXANY = $800; { any char will restart after stop }
|
||||||
|
IUCLC = $1000; { translate upper to lower case }
|
||||||
IMAXBEL = $2000; { ring bell on input queue full }
|
IMAXBEL = $2000; { ring bell on input queue full }
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -101,6 +101,10 @@ CONST
|
|||||||
ONLCR = $2; { map NL to CR-NL (ala CRMOD) }
|
ONLCR = $2; { map NL to CR-NL (ala CRMOD) }
|
||||||
OXTABS = $4; { expand tabs to spaces }
|
OXTABS = $4; { expand tabs to spaces }
|
||||||
ONOEOT = $8; { discard EOT's (^D) on output) }
|
ONOEOT = $8; { discard EOT's (^D) on output) }
|
||||||
|
OCRNL = $10; { map CR to NL }
|
||||||
|
OLCUC = $20; { translate lower case to upper case }
|
||||||
|
ONOCR = $40; { No CR output at column 0 }
|
||||||
|
ONLRET = $80; { NL performs the CR function }
|
||||||
|
|
||||||
{
|
{
|
||||||
* Control flags - hardware control of terminal
|
* Control flags - hardware control of terminal
|
||||||
@ -117,13 +121,11 @@ CONST
|
|||||||
PARODD = $2000; { odd parity, else even }
|
PARODD = $2000; { odd parity, else even }
|
||||||
HUPCL = $4000; { hang up on last close }
|
HUPCL = $4000; { hang up on last close }
|
||||||
CLOCAL = $8000; { ignore modem status lines }
|
CLOCAL = $8000; { ignore modem status lines }
|
||||||
CCTS_OFLOW = $10000; { CTS flow control of output }
|
CRTSCTS = $10000; { RTS/CTS full-duplex flow control }
|
||||||
CRTS_IFLOW = $20000; { RTS flow control of input }
|
CRTS_IFLOW = CRTSCTS; { XXX compat }
|
||||||
CRTSCTS = (CCTS_OFLOW or CRTS_IFLOW);
|
CCTS_OFLOW = CRTSCTS; { XXX compat }
|
||||||
CDTR_IFLOW = $40000; { DTR flow control of input }
|
MDMBUF = $100000; { DTR/DCD hardware flow control }
|
||||||
CDSR_OFLOW = $80000; { DSR flow control of output }
|
CHWFLOW = MDMBUF or CRTSCTS; { all types of hw flow control }
|
||||||
CCAR_OFLOW = $100000; { DCD flow control of output }
|
|
||||||
MDMBUF = $100000; { old name for CCAR_OFLOW }
|
|
||||||
|
|
||||||
{
|
{
|
||||||
* "Local" flags - dumping ground for other state
|
* "Local" flags - dumping ground for other state
|
||||||
@ -144,9 +146,10 @@ CONST
|
|||||||
ICANON = $100; { canonicalize input lines }
|
ICANON = $100; { canonicalize input lines }
|
||||||
ALTWERASE = $200; { use alternate WERASE algorithm }
|
ALTWERASE = $200; { use alternate WERASE algorithm }
|
||||||
IEXTEN = $400; { enable DISCARD and LNEXT }
|
IEXTEN = $400; { enable DISCARD and LNEXT }
|
||||||
EXTPROC = $800; { external processing }
|
EXTPROC = $800; { external processing }
|
||||||
TOSTOP = $400000; { stop background jobs from output }
|
TOSTOP = $400000; { stop background jobs from output }
|
||||||
FLUSHO = $800000; { output being flushed (state) }
|
FLUSHO = $800000; { output being flushed (state) }
|
||||||
|
XCASE = $1000000; { canonical upper/lower case }
|
||||||
NOKERNINFO = $2000000; { no kernel output from VSTATUS }
|
NOKERNINFO = $2000000; { no kernel output from VSTATUS }
|
||||||
PENDIN =$20000000; { XXX retype pending input (state) }
|
PENDIN =$20000000; { XXX retype pending input (state) }
|
||||||
NOFLSH =$80000000; { don't flush after interrupt }
|
NOFLSH =$80000000; { don't flush after interrupt }
|
||||||
|
@ -76,7 +76,8 @@ ___start:
|
|||||||
addq $1, %rax
|
addq $1, %rax
|
||||||
movq %rax, __progname(%rip)
|
movq %rax, __progname(%rip)
|
||||||
.L6:
|
.L6:
|
||||||
movq $__progname_storage, -16(%rbp)
|
leaq __progname_storage(%rip), %rax
|
||||||
|
movq %rax, -16(%rbp)
|
||||||
jmp .L7
|
jmp .L7
|
||||||
.L8:
|
.L8:
|
||||||
movq __progname(%rip), %rcx
|
movq __progname(%rip), %rcx
|
||||||
@ -91,21 +92,20 @@ ___start:
|
|||||||
movzbl (%rax), %eax
|
movzbl (%rax), %eax
|
||||||
testb %al, %al
|
testb %al, %al
|
||||||
je .L9
|
je .L9
|
||||||
movq $__progname_storage+255, %rax
|
leaq __progname_storage+255(%rip), %rax
|
||||||
cmpq %rax, -16(%rbp)
|
cmpq %rax, -16(%rbp)
|
||||||
jb .L8
|
jb .L8
|
||||||
.L9:
|
.L9:
|
||||||
|
leaq __progname_storage(%rip), %rax
|
||||||
|
movq %rax, __progname(%rip)
|
||||||
movq -16(%rbp), %rax
|
movq -16(%rbp), %rax
|
||||||
movb $0, (%rax)
|
movb $0, (%rax)
|
||||||
movq $__progname_storage, __progname(%rip)
|
|
||||||
.L2:
|
.L2:
|
||||||
movl $_mcleanup, %edi
|
movq _mcleanup@GOTPCREL(%rip), %rdi
|
||||||
call atexit
|
call atexit
|
||||||
movl $_etext, %eax
|
movq _etext@GOTPCREL(%rip), %rsi
|
||||||
movq %rax, %rsi
|
leaq _eprol(%rip), %rdi
|
||||||
movl $_eprol, %eax
|
call monstartup@plt
|
||||||
movq %rax, %rdi
|
|
||||||
call monstartup
|
|
||||||
movl $0, %eax
|
movl $0, %eax
|
||||||
call _init
|
call _init
|
||||||
movq environ(%rip), %rdx
|
movq environ(%rip), %rdx
|
||||||
@ -184,7 +184,7 @@ _strrchr:
|
|||||||
.comm operatingsystem_parameter_envp,8,8
|
.comm operatingsystem_parameter_envp,8,8
|
||||||
.comm operatingsystem_parameter_argc,8,8
|
.comm operatingsystem_parameter_argc,8,8
|
||||||
.comm operatingsystem_parameter_argv,8,8
|
.comm operatingsystem_parameter_argv,8,8
|
||||||
.section .eh_frame,"a",@progbits
|
.section .eh_frame,"a",@unwind
|
||||||
.Lframe1:
|
.Lframe1:
|
||||||
.long .LECIE1-.LSCIE1
|
.long .LECIE1-.LSCIE1
|
||||||
.LSCIE1:
|
.LSCIE1:
|
||||||
@ -207,7 +207,7 @@ _strrchr:
|
|||||||
.long .LEFDE1-.LASFDE1
|
.long .LEFDE1-.LASFDE1
|
||||||
.LASFDE1:
|
.LASFDE1:
|
||||||
.long .LASFDE1-.Lframe1
|
.long .LASFDE1-.Lframe1
|
||||||
.long .LFB9
|
.long .LFB9-.
|
||||||
.long .LFE9-.LFB9
|
.long .LFE9-.LFB9
|
||||||
.uleb128 0x0
|
.uleb128 0x0
|
||||||
.byte 0x4
|
.byte 0x4
|
||||||
@ -226,7 +226,7 @@ _strrchr:
|
|||||||
.long .LEFDE3-.LASFDE3
|
.long .LEFDE3-.LASFDE3
|
||||||
.LASFDE3:
|
.LASFDE3:
|
||||||
.long .LASFDE3-.Lframe1
|
.long .LASFDE3-.Lframe1
|
||||||
.long .LFB10
|
.long .LFB10-.
|
||||||
.long .LFE10-.LFB10
|
.long .LFE10-.LFB10
|
||||||
.uleb128 0x0
|
.uleb128 0x0
|
||||||
.byte 0x4
|
.byte 0x4
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
.section ".note.openbsd.ident", "a"
|
||||||
|
.p2align 2
|
||||||
|
.long 8
|
||||||
|
.long 4
|
||||||
|
.long 1
|
||||||
|
.ascii "OpenBSD\0"
|
||||||
|
.long 0
|
||||||
|
.previous
|
||||||
.file "crt0.c"
|
.file "crt0.c"
|
||||||
.globl __progname
|
.globl __progname
|
||||||
.section .rodata
|
.section .rodata
|
||||||
|
@ -76,7 +76,8 @@ ___start:
|
|||||||
addq $1, %rax
|
addq $1, %rax
|
||||||
movq %rax, __progname(%rip)
|
movq %rax, __progname(%rip)
|
||||||
.L6:
|
.L6:
|
||||||
movq $__progname_storage, -16(%rbp)
|
leaq __progname_storage(%rip), %rax
|
||||||
|
movq %rax, -16(%rbp)
|
||||||
jmp .L7
|
jmp .L7
|
||||||
.L8:
|
.L8:
|
||||||
movq __progname(%rip), %rcx
|
movq __progname(%rip), %rcx
|
||||||
@ -91,13 +92,14 @@ ___start:
|
|||||||
movzbl (%rax), %eax
|
movzbl (%rax), %eax
|
||||||
testb %al, %al
|
testb %al, %al
|
||||||
je .L9
|
je .L9
|
||||||
movq $__progname_storage+255, %rax
|
leaq __progname_storage+255(%rip), %rax
|
||||||
cmpq %rax, -16(%rbp)
|
cmpq %rax, -16(%rbp)
|
||||||
jb .L8
|
jb .L8
|
||||||
.L9:
|
.L9:
|
||||||
|
leaq __progname_storage(%rip), %rax
|
||||||
|
movq %rax, __progname(%rip)
|
||||||
movq -16(%rbp), %rax
|
movq -16(%rbp), %rax
|
||||||
movb $0, (%rax)
|
movb $0, (%rax)
|
||||||
movq $__progname_storage, __progname(%rip)
|
|
||||||
.L2:
|
.L2:
|
||||||
# movl $_mcleanup, %edi
|
# movl $_mcleanup, %edi
|
||||||
# call atexit
|
# call atexit
|
||||||
@ -185,7 +187,7 @@ _strrchr:
|
|||||||
.comm operatingsystem_parameter_envp,8,8
|
.comm operatingsystem_parameter_envp,8,8
|
||||||
.comm operatingsystem_parameter_argc,8,8
|
.comm operatingsystem_parameter_argc,8,8
|
||||||
.comm operatingsystem_parameter_argv,8,8
|
.comm operatingsystem_parameter_argv,8,8
|
||||||
.section .eh_frame,"a",@progbits
|
.section .eh_frame,"a",@unwind
|
||||||
.Lframe1:
|
.Lframe1:
|
||||||
.long .LECIE1-.LSCIE1
|
.long .LECIE1-.LSCIE1
|
||||||
.LSCIE1:
|
.LSCIE1:
|
||||||
@ -208,7 +210,7 @@ _strrchr:
|
|||||||
.long .LEFDE1-.LASFDE1
|
.long .LEFDE1-.LASFDE1
|
||||||
.LASFDE1:
|
.LASFDE1:
|
||||||
.long .LASFDE1-.Lframe1
|
.long .LASFDE1-.Lframe1
|
||||||
.long .LFB9
|
.long .LFB9-.
|
||||||
.long .LFE9-.LFB9
|
.long .LFE9-.LFB9
|
||||||
.uleb128 0x0
|
.uleb128 0x0
|
||||||
.byte 0x4
|
.byte 0x4
|
||||||
@ -227,7 +229,7 @@ _strrchr:
|
|||||||
.long .LEFDE3-.LASFDE3
|
.long .LEFDE3-.LASFDE3
|
||||||
.LASFDE3:
|
.LASFDE3:
|
||||||
.long .LASFDE3-.Lframe1
|
.long .LASFDE3-.Lframe1
|
||||||
.long .LFB10
|
.long .LFB10-.
|
||||||
.long .LFE10-.LFB10
|
.long .LFE10-.LFB10
|
||||||
.uleb128 0x0
|
.uleb128 0x0
|
||||||
.byte 0x4
|
.byte 0x4
|
||||||
|
17
rtl/openbsd/x86_64/si_c.inc
Normal file
17
rtl/openbsd/x86_64/si_c.inc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements parts of the startup code for OpenBSD
|
||||||
|
programs that link to the C library.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
**********************************************************************}
|
||||||
|
|
||||||
|
|
17
rtl/openbsd/x86_64/si_dll.inc
Normal file
17
rtl/openbsd/x86_64/si_dll.inc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements parts of the startup code for OpenBSD
|
||||||
|
shared object (.so) libraries.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
**********************************************************************}
|
||||||
|
|
||||||
|
|
17
rtl/openbsd/x86_64/si_prc.inc
Normal file
17
rtl/openbsd/x86_64/si_prc.inc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2019 by Free Pascal development team
|
||||||
|
|
||||||
|
This file implements parts of the startup code for OpenBSD
|
||||||
|
programs that don't link to the C library.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
**********************************************************************}
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user