mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 03:28:00 +02:00
![]() Switch Mac OS X to indirect entry information. compiler/systems/t_bsd.pas, TLinkerBSD: + implement InitSysInitUnitName compiler/system.pas: * systems_internal_sysinit: add Darwin systems compiler/hlcgobj.pas, thlcgobj: * gen_proc_symbol_end: for Darwin systems don't directly call PascalMain for libraries, but FPC_LIBMAIN instead rtl/darwin: + add sysinit.pas unit which contains the executable and library entry points for Darwin rtl/darwin/Makefile.fpc: * add sysinit unit rtl/bsd/sysosh.inc: + add a Darwin specific TPlatformEntryInformation (could probably be used for all Unix systems...) rtl/bsd/system.pp: * define FPC_HAS_INDIRECT_MAIN_INFORMATION for Darwin systems once we're no longer bootstrapping with 2.6.x + add EntryInformation variable (this could maybe moved to system.inc...) + add new procedure SysEntry that is called from the entrypoint and which sets up necessary information required by other parts of the RTL * the old FPC_SYSTEMMAIN is still in place for bootstrapping rtl/inc/systemh.inc, TEntryInformation: * PascalMain is cdecl on non-Windows systems (ToDo: really?) rtl/inc/system.inc: * initialstklen is provided by the indirect entry information, so no external here ........ Fix bootstrapping. rtl/darwin/sysinit.pas: * enable the code only when no longer bootstrapping with 2.6.x ........ Fix bootstrapping. rtl/objpas/objpas.pp: * define FPC_HAS_INDIRECT_MAIN_INFORMATION for Darwin only while not bootstrapping with 2.6.x ........ rtl/darwin/sysinit.pas: * reference PASCALMAIN correctly (I wonder how this even worked previously :/ ) git-svn-id: trunk@33949 - |
||
---|---|---|
.. | ||
i386 | ||
powerpc | ||
x86_64 | ||
bsd.pas | ||
bunxfunch.inc | ||
bunxsysc.inc | ||
osdefs.inc | ||
osmacro.inc | ||
osmain.inc | ||
ossysc.inc | ||
ostypes.inc | ||
readme.txt | ||
suuid.inc | ||
sysctl.pp | ||
sysos.inc | ||
sysosh.inc | ||
system.pp | ||
unxsysch.inc |
{ $Id: readme.txt,v 1.2 2002/10/27 11:58:30 marco Exp $ This file is part of the Free Pascal run time librar~y. Copyright (c) 2000 by Marco van de Voort member of the Free Pascal development team. Filellist and some notes about the *BSD RTL architecture. 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. **********************************************************************} *BSD commonly means FreeBSD, OpenBSD and NetBSD, but since Apple's Darwin has a FreeBSD userland, I also add Darwin to it. At least Darwin's userland seems to be compatible enough to be included, despite its internal Mach architecture. Common *BSD files: bsd.pa BSD specific syscall functions bsdmacro.inc The POSIX mode_t (IS_DIR etc) and exit macro's. bsdsysc.inc The base syscalls for *BSD system unit. including a few that are _not_ posix, but still required in the system unit. All routines have a public alias. bsdsysch.inc EXTERNAL declarations for the non-posix calls in bsdsysc.inc (to import them into e.g. Unix) bsdtypes.inc some non POSIX BSD types required for the syscalls and base functions. bsdfuncs.inc POSIX syscalls and functions that are not needed for system. osposix.inc The implementation of unit posix, redirects to libc or bsdtypes.inc (via aliases) osposixh.inc The headers of unit posix. sysctl.pp Some basic sysctl headers, needed for implementation of POSIX functions. sysposix.inc BSD specific part of the implementation i386/syscall.inc The primitives for performing syscalls i386/syscallh.inc Headers to syscall.inc powerpc/syscall.inc likewise for PPC.