------------------------------------------------------------------------
r47157 | pierre | 2020-10-23 12:25:44 +0200 (Fri, 23 Oct 2020) | 1 line
Switch OpenBSD libc version of geterrnolocation from libcerrno lib C variable to _libc___errno function use
------------------------------------------------------------------------
--- Merging r47157 into '.':
U rtl/bsd/sysos.inc
--- Recording mergeinfo for merge of r47157 into '.':
U .
git-svn-id: branches/fixes_3_2@48012 -
* license clarifications. Accidental GPL removed. Introduced by me during
*nix reform in a few .incs and those templates got copied around (os* sysc*)
* clarify OS2/EMX license to actually name the license rather than
saying "NOT GPL" and refering to EMX.
git-svn-id: branches/fixes_3_2@43970 -
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 -
o it is already performed in fpc_cpucodeinit
o in libraries, fpc_cpucodeinit first sets Default8087CW to the current x87
control word to avoid them enabling fpu exceptions if the host platform
had first disabled them
git-svn-id: trunk@33993 -
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 -
Each port that allows the usage of dynamic libraries should call InitSystemDynLibs during initialization of the System unit.
The DynLibs unit has been adjusted to be a forwarder for the functions that now reside in the System unit (for backwards compatiblity just in case). Additionally the unit will register the DynLibsManager if it doesn't reside in the System unit anyway.
Currently only the Windows targets (Win32, Win64 and WinCE) implement the DynLibsManager inside the System unit. For other systems using the LoadLibrary, etc. functions will lead to a run error/exception.
If a port wants to implement its own DynLibsManager then it needs to define DISABLE_NO_DYNLIBS_MANAGER. TLibHandle, NilHandle and optionally TOrdinalEntry (it's set to SizeUInt otherwise) should be defined in sysdlh.inc which needs to be enabled using the define FPC_SYSTEM_HAS_SYSDLH (because there are targets which have FEATURE_DYNLIBS enabled, but don't support them... e.g. powerpc-wii -.-).
The DynLibsManager contains methods for loading a library based on a RawByteString and based on a UnicodeString. BOTH should be implemented, but internally one can forward to the other.
The loading by ordinal *can* be be implemented. If it is set to Nil then the implementation of GetProcAddress(lib,ordinal) will return Nil.
+ new functions SetDynLibsManager and GetDynLibsManager to set and retrieve the current DynLibsManager
* provide interface of DynLibs unit in unit System
git-svn-id: trunk@29613 -
* It fixes regression of tw16283b after r27169.
* BeOS, Haiku: added fpc_cpucodeinit to compensate for removal of SysInitFPU, it also enables use of CPU features like SSE.
git-svn-id: trunk@27171 -
* Build unixcp for all unix-like systems.
* Use the unixcp unit in cwstring instead of winiconv.inc.
- Deleted winiconv.inc
- Reverted r22410,r22411,r22428. The compiler will use the unixcp unit to get a default code page for ansistrings.
git-svn-id: trunk@23670 -
that the type of the parameters can be determined automatically
o added compilerproc declarations for all helpers called in the compiler
via their assembler name, so we can look up the corresponding procdef
git-svn-id: trunk@23325 -
stack pointer (can happen for externally started threads), truncate it
to a legal value (should stop crashes when enabling stack checking on
iOS 6)
git-svn-id: trunk@23320 -