+ added test (needs to work with any exception handling mechanism; currently tested with SetJmp/LongJmp, SEH 32-bit and SEH 64-bit based exception handling)
git-svn-id: trunk@49486 -
(cherry picked from commit 2b3edb2c53)
-- Zusammenführen von r45995 in ».«:
U rtl/linux/i386/sighnd.inc
U rtl/linux/x86_64/sighnd.inc
A tests/webtbs/tw37468.pp
-- Aufzeichnung der Informationen für Zusammenführung von r45995 in ».«:
U .
-- Zusammenführen von r46207 in ».«:
U rtl/linux/i386/sighndh.inc
-- Aufzeichnung der Informationen für Zusammenführung von r46207 in ».«:
G .
-- Zusammenführen von r46208 in ».«:
G rtl/linux/i386/sighnd.inc
-- Aufzeichnung der Informationen für Zusammenführung von r46208 in ».«:
G .
-- Zusammenführen von r46210 in ».«:
U rtl/aix/sighnd.inc
U rtl/beos/i386/sighnd.inc
U rtl/go32v2/dpmiexcp.pp
U rtl/haiku/i386/sighnd.inc
U rtl/haiku/x86_64/sighnd.inc
U rtl/i8086/math.inc
U rtl/inc/genmath.inc
U rtl/linux/m68k/sighnd.inc
U rtl/linux/powerpc/sighnd.inc
U rtl/linux/powerpc64/sighnd.inc
U rtl/linux/sparc/sighnd.inc
U rtl/linux/sparc64/sighnd.inc
G rtl/linux/x86_64/sighnd.inc
U rtl/netbsd/arm/sighnd.inc
U rtl/netbsd/m68k/sighnd.inc
U rtl/netbsd/powerpc/sighnd.inc
U rtl/netbsd/x86_64/sighnd.inc
U rtl/openbsd/i386/sighnd.inc
U rtl/openbsd/x86_64/sighnd.inc
U rtl/os2/system.pas
U rtl/solaris/i386/sighnd.inc
U rtl/solaris/sparc/sighnd.inc
U rtl/solaris/x86_64/sighnd.inc
U rtl/win32/system.pp
U rtl/win64/system.pp
U tests/webtbs/tw37468.pp
U rtl/wince/system.pp
-- Aufzeichnung der Informationen für Zusammenführung von r46210 in ».«:
G .
-- Zusammenführen von r46992 in ».«:
G rtl/linux/x86_64/sighnd.inc
A tests/webtbs/tw37468b.pp
-- Aufzeichnung der Informationen für Zusammenführung von r46992 in ».«:
G .
-- Zusammenführen von r47114 in ».«:
G rtl/linux/x86_64/sighnd.inc
G rtl/linux/i386/sighnd.inc
A tests/webtbs/tw37926.pp
-- Aufzeichnung der Informationen für Zusammenführung von r47114 in ».«:
G .
-- Zusammenführen von r47117 in ».«:
G rtl/linux/i386/sighnd.inc
G rtl/linux/x86_64/sighnd.inc
G rtl/linux/m68k/sighnd.inc
-- Aufzeichnung der Informationen für Zusammenführung von r47117 in ».«:
G .
git-svn-id: branches/fixes_3_2@47906 -
rtl/inc/systemh.inc & rtl/java/jsystemh_types.inc:
- TEntryInformation: remove WideInitTables
rtl/win/sysosh.inc:
+ TEntyrInformationOS: add WideInitTables
rtl/win/syswin.inc:
* adjust WStrInitTablesTable, so that it is now a pointer and can be used both with direct and indirect main entry
* InitWin32Widestrings: WStrInitTablesTable is now a pointer
rtl/win32/sysinit.inc:
* WideInitTables has moved to the OS specific part of the entry information
rtl/win32/system.pp:
* OsSetupEntryinformation: setup WStrInitTablesTable
git-svn-id: trunk@33571 -
win/sysosh.inc, TEntryInformationOS:
+ new field SysInstance that will hold the address to the main program's SysInstance variable
win32/system.pp:
* rename SysInstance to FPCSysInstance and make it a PLongInt
* OsSetupEntryInformation: setup FPCSysInstance
* adjust initialization of SysInstance to use FPCSysInstance instead
win32/sysinit.inc:
* SysInstance is no longer an external
* initialize the OS.SysInstance field of EntryInformation
win64/system.pp:
* add a FPCSysInstance that's a pointer to SysInstance
win/winres.inc:
* SysInstance is now a pointer and has the same name on both Win32 and Win64
git-svn-id: trunk@33107 -
rtl/inc/system.inc:
* SetupEntryInformation: call new, optional function OSSetupEntryInformation to handle platform specific entry information initialization
rtl/win/sysosh.inc, TEntryInformationOS:
+ new field TlsKeyAddr which will hold the address to the main binary's TlsKey variable
win32/sysinit.inc:
+ provide the variable holding the TlsKey and pass that on to the entry information record
win32/system.pp:
+ new OS specific entry information initialization (currently only the TlsKey)
win/systhrd.inc:
* declare TlsKey as a pointer to a DWord value instead of a DWord; on non-indirect entry platforms this is initialized with the address of new variable TlsKeyVar, on indirect entry platforms it will be initialized by the entry information initialization
* adjust usages of TlsKey from DWord to PDWord
win/systlsdir.inc:
* TlsKey is now a PDWord and (in sysinit) points to TlsKeyVar
win/syswin.inc:
* adjust TlsKey usage
inc/heaptrc.pp:
* TlsKey is now a PDWord, thus adjust the import and the usage
git-svn-id: trunk@33091 -
rtl/inc/system.inc:
+ new variables that hold pointers to the tables
+ new procedure SetupEntryInformation() that should be used in the entry points of indirect entry targets to setup cross target fields
+ for direct entry targets the two resource string tables are imported here and supplied as initialization to the table pointers
objpas/objpas.pp:
* adjust table declarations so that the pointers provided from the System unit are used
* adjust usages of the tables as they are now pointers
win32/system.pp:
* Exe_Entry: use SetupEntryInformation()
win/syswin.inc:
* Dll_Entry: use SetupEntryInformation()
git-svn-id: trunk@33028 -
rtl/inc/systemh.inc:
+ TEntryInformation: add Pointer fields ResourceStringTables, ResStrInitTables, WideInitTables (for targets with separate WideString type) and ResLocation (not used on Windows, but since most other targets don't have Windows' resource system it's not part of OS)
rtl/java/jsystemh_types.inc:
+ TEntryInformation: adjust for consistency reasons
rtl/win32/sysinit.inc:
* SysInitEntryInformation: initialize with pointers to the correct tables
git-svn-id: trunk@33027 -
+ add (uninitialized) global variable EntryInformation for systems that use indirect main information
win32/system.pp:
- remove initialized EntryInformation and instead rely on the one passed by the sysinit* units
git-svn-id: trunk@33026 -