Commit Graph

48257 Commits

Author SHA1 Message Date
svenbarth
7e1e947b71 asm_exit is only needed on Win32 (Note: the removal of asm_exit from TEntryInformation in the previous commit should have been in this one -.- )
rtl/win32/sysosh.inc:
  + add TEntryInformationOS for Win32 which contains asm_exit
rtl/win32/system.pp:
  * EntryInformation: adjust initialization
  * system_exit: call the correct function variable
rtl/win32/sysinit.inc:
  * SysInitEntryInformation: adjust initialization
  * SetupEntryInformation: adjust commented setup of the function variable
rtl/java/jsystemh_types.inc:
  * adjust TEntryInformation for consistency reasons

git-svn-id: trunk@33025 -
2016-01-29 15:36:58 +00:00
svenbarth
3da7675eb1 Add a possiblity for targets to specify additional fields for TEntryInformation using an optional sub record called TEntryInformationOS
rtl/inc/systemh.inc:
  + add field OS of type TEntryInformationOS if the target specifies HAS_ENTRYINFORMATION_OS
rtl/java/jsystemh_types.inc:
  + same adjustments as above for consistency reasons despite it being not used there anyway

git-svn-id: trunk@33024 -
2016-01-29 15:32:33 +00:00
svenbarth
b525cecad8 - get rid of the calling convention modifier for PascalMain as it's generated using the default calling convention anyway (without any parameters this luckily doesn't matter that much ;) )
(Note: adjusted merge info as in my packages branch there is a less complete commit for this)

git-svn-id: trunk@33023 -
2016-01-29 14:51:15 +00:00
pierre
6b1c604cb5 Add -I, --interactive option to fpmkunit using new poPassInput TProcess option, allows to use gppc386 with fpmake
git-svn-id: trunk@33022 -
2016-01-29 14:41:40 +00:00
pierre
6c0d2f1b36 Handle poPassInput to be able to handle interactive processes for Windows and Unix systems
git-svn-id: trunk@33021 -
2016-01-29 14:39:41 +00:00
pierre
e1736933fe Add poPassInput to be able to handle interactive processes
git-svn-id: trunk@33020 -
2016-01-29 14:38:35 +00:00
svenbarth
a3871c9d30 Fix compilation of fcl-process on WinCE
packages/fcl-process/src/winall/simpleipc.inc:
  * a WndProc needs to be declared as cdecl
  * WinCE does not provide Get-/SetWindowLongPtr() as it's 32-bit only anyway, so Get-/SetWindowLong() needs to be used

git-svn-id: trunk@33019 -
2016-01-29 14:37:36 +00:00
svenbarth
e15e80ab1f Fix for Mantis #29499.
wince/wininc/struct.inc:
  * the Windows unit of WinCE is compiled with $calling cdecl, but cdecl functions don't support high parameters, thus we need to adjust the calling convention when including the typshrd*.inc files

git-svn-id: trunk@33018 -
2016-01-29 14:32:59 +00:00
pierre
aa293d9465 Fix last commit by raise Compilation failure again in finally block in CompileBuildUnit procedure
git-svn-id: trunk@33017 -
2016-01-29 07:43:25 +00:00
pierre
5e47be4cd5 * Use also 3 retries for mswindows implementation of SysDeleteDirectory
* Do not delete Build_unit_PACKAGE if compilation fails to allow easieer debugging

git-svn-id: trunk@33016 -
2016-01-28 21:34:28 +00:00
pierre
315ce0447b Fix compilation with range check on by redefining tat array in ClearComments procedure
git-svn-id: trunk@33015 -
2016-01-28 17:14:11 +00:00
pierre
d081d9fdc0 Fix cycle for x86_64-win64 target with -Cr option
git-svn-id: trunk@33014 -
2016-01-28 15:07:40 +00:00
pierre
9881125ba1 Fix NtpGetHeapProcess for Win64 system
git-svn-id: trunk@33013 -
2016-01-28 15:06:39 +00:00
pierre
1e5883b6d1 Avoid overflow error for single MinValue in rtl syshelph.inc for x86_64 CPU
git-svn-id: trunk@33012 -
2016-01-28 14:20:51 +00:00
marco
1d5e9ba35f * removed deprecated props
git-svn-id: trunk@33011 -
2016-01-27 15:39:50 +00:00
pierre
f9011289b5 * Fix default OS target for i386 and sparc processor on solaris OS
git-svn-id: trunk@33010 -
2016-01-27 15:32:55 +00:00
pierre
aec9ef1b70 Fix StackTop computation by using StackTopPtr variable set in _start code
git-svn-id: trunk@33009 -
2016-01-27 13:50:02 +00:00
pierre
3de617c79e Fix phdr pointer increment and use envp variable from system unit for Solaris operating system
git-svn-id: trunk@33008 -
2016-01-27 10:47:16 +00:00
pierre
90359bcb3c Add code to find base address in unix ELF aux vector above enviroment in startup stack
git-svn-id: trunk@33007 -
2016-01-26 14:44:31 +00:00
nickysn
c2b0256869 - don't define 'CPU8086' on the i8086 target, because it clashes with the
selected instruction set define (CPU8086/CPU80186/CPU80286, etc.)
  For a generic i8086 target define, 'CPUI8086' should be used instead of
  'CPU8086'.

git-svn-id: trunk@33006 -
2016-01-26 00:33:02 +00:00
yury
3597519087 * pas2jni: Fixed handling of global procvars.
git-svn-id: trunk@33005 -
2016-01-25 15:43:12 +00:00
Jonas Maebe
f54c3dc523 * re-enabled SEM_GETNCNT..SEM_SETALL for Darwin, after they were disabled
when AIX support was added. Not sure why that happened (mantis #29495)

git-svn-id: trunk@33004 -
2016-01-24 21:37:40 +00:00
florian
8b4a392863 * compilation fixed
git-svn-id: trunk@33003 -
2016-01-24 16:52:49 +00:00
florian
5aabe71aee * better throw an internalerror in TAoptBase.RegLoadedWithNewValue instead of trying to make a safe approximation
git-svn-id: trunk@33002 -
2016-01-24 16:24:45 +00:00
florian
1cb91cc7bb * forgotten commit to redir.ExecuteProcess
git-svn-id: trunk@33001 -
2016-01-24 15:25:59 +00:00
florian
1266491085 o refactored some peephole optimizer code:
* updated TAOptObj.RegUsedAfterInstruction with the arm implementation and removed the arm specific implementation
  * RegLoadedWithNewValue and InstructionLoadsFromReg are now a methods of TAoptBase
  * moved RegEndOfLife to TAOptObj
* during this refactoring, fixed also TCpuAsmOptimizer.RegLoadedWithNewValue for arm regarding post/preindexed 
  memory references: those modify the register but do not load it with a new value in the sense of RegLoadedWithNewValue

git-svn-id: trunk@33000 -
2016-01-24 15:25:16 +00:00
michael
273f88a54c * Remove redundant files
git-svn-id: trunk@32999 -
2016-01-24 15:18:25 +00:00
michael
e7a722cdd9 * Patch from Ondrej Pokorny to make Trect methods more Delphi compatible (Bug ID 29479)
git-svn-id: trunk@32998 -
2016-01-24 15:16:18 +00:00
michael
7d4905470d * Fix compilation (doubled code due to patch ?)
git-svn-id: trunk@32997 -
2016-01-24 14:24:34 +00:00
marcus
e8cb0d0415 arosunits: Removed Objfpc in all units, changed "array of const" to "array of PtrUInt"
git-svn-id: trunk@32996 -
2016-01-24 14:00:54 +00:00
florian
356ab8f63d + test/example programs for WaitOnExit with time out
git-svn-id: trunk@32995 -
2016-01-24 13:55:51 +00:00
michael
ec6ab0233b * Patch from Denis Kozlov to merge all Windows versions into 1 (Bug ID 29496)
git-svn-id: trunk@32994 -
2016-01-24 13:40:45 +00:00
florian
2466b58095 * improved TProcess.WaitOnExit with timeout implementation to use fpGetTimeOfDay to work more precise
git-svn-id: trunk@32993 -
2016-01-24 13:21:31 +00:00
florian
2e506ec4ac * Redir.ExecuteProcess uses TProcess.WaitFor with timeout for FPC > 3.0
git-svn-id: trunk@32992 -
2016-01-24 09:39:23 +00:00
florian
bdbdee6acf + TProcess.WaitForExit implementation with timeout
git-svn-id: trunk@32991 -
2016-01-24 09:38:01 +00:00
svenbarth
d2a7f17d8c Fix for Mantis #29372.
compiler/ncgcal.pas:
  * tchcallnode.release_para_temps: don't release temps of a constructor's self parameter

+ added test

git-svn-id: trunk@32990 -
2016-01-23 22:19:00 +00:00
michael
c97504da86 * Patch from Denis Kozlov to use *W functions (preparation for use on WinCE)
git-svn-id: trunk@32989 -
2016-01-22 23:28:15 +00:00
michael
2b1b4a0899 * Patch from Tony Whyman to implement single registry instance (allows multiple simultaneous TRegistry instances to operate synchronously (Bug ID 29472)
git-svn-id: trunk@32988 -
2016-01-22 23:21:48 +00:00
michael
46315176f4 * Patch from Silvio Clecio implementing TFPGMapObject (Bug ID 29438)
git-svn-id: trunk@32987 -
2016-01-22 23:07:05 +00:00
michael
702dd7f31f * Forgot to commit, part of Inoussas update of unicode tables
git-svn-id: trunk@32986 -
2016-01-22 22:58:51 +00:00
michael
6df35742ae * Fix bug #0029461, faSymlink is incompatible with Delphi and plain wrong
git-svn-id: trunk@32985 -
2016-01-22 21:07:27 +00:00
sergei
77285b63eb * i386-linux: reworked and cleaned up libc-related startup code:
* Don't replace intended initialization routines with dummy ones, so libc can properly initialize itself.
  * Profiling support (si_c21g.pp) only needs to contain the __gmon_start__ procedure, so it can reuse the entire si_c21.inc, and separate si_21g.inc file is no longer needed.

git-svn-id: trunk@32984 -
2016-01-22 17:11:08 +00:00
svenbarth
0aca2357ac Merged revision(s) 29037 from branches/svenbarth/packages:
Fix a potential access violation when exporting symbols on a Unix based system.

expunix.pas, texportlibunix:
  * generatelib: check whether hp2.sym is really assigned before accessing it

........

git-svn-id: trunk@32983 -
2016-01-22 17:02:40 +00:00
svenbarth
557f74cdbd (Note to self: always include the root of the working copy in the commit when dealing with merges -.-)
Merged revision(s) 28793, 28903, 31951 from branches/svenbarth/packages:
psub.pas, read_proc:
  * don't generate assembler symbols for compiler internal code
........
Ensure that unneeded initialization/finalization procedures don't leave assembler symbols.

ncgutil.pas:
  + new function release_proc_symbol which removes all assembler symbols of a procdef
pmodules.pas, proc_unit:
  * if the initialization or finalization procedure is empty also remove their assembler symbols so they are exported
........
Ensure that readonly sections that need relocations are indeed declared as such.
Thanks to Jonas for this.

ncgvmt.pas, TVMTWriter:
  * writeinterfaceids: use sec_rodata instead of sec_rodata_norel

........

git-svn-id: trunk@32982 -
2016-01-22 16:58:33 +00:00
sergei
53d7018482 * removed 'nostackframe' attribute, since on i386 assembler procedures reference non-register parameters relative to ebp.
git-svn-id: trunk@32981 -
2016-01-22 16:35:20 +00:00
svenbarth
9d5f98eaa3 Merged revision(s) 28690 from branches/svenbarth/packages:
Extract reading of the PPU/PCP version into tentryfile.

entfile.pas:
  + add new getversion method which uses the pointer returned by getheaderaddr to read the PPU/PCP version
ppu.pas:
  - remove GetPPUVersion method
fppu.pas, pmodules.pas, utils/ppufiles.pp, utils/ppumove.pp, utils/ppuutils/ppudump.pp
  * replace call to GetPPUVersion by call to getversion
........

git-svn-id: trunk@32980 -
2016-01-22 15:47:29 +00:00
svenbarth
678716be22 msgidx.inc & msgtixt.inc: regenerate after r32978
git-svn-id: trunk@32979 -
2016-01-22 15:36:13 +00:00
svenbarth
e9d8fadb58 Merged revision(s) 28237 from branches/svenbarth/packages:
Add a new target flag which determines whether the target supports dynamic packages or not.

systems.pas:
  + new flag tf_supports_packages
pmodules.pas, proc_package:
  * error out when flag tf_supports_packages is not set for the current target
msg/errore.msg:
  + error message for when tf_supports_packages is missing and a package file is compiled
........

git-svn-id: trunk@32978 -
2016-01-22 15:35:41 +00:00
svenbarth
01af8f9cc4 Merged revision(s) 28693 from branches/svenbarth/packages:
Provide possibility to register callbacks that are called from InitGlobals and DoneGlobals.

globals.pas:
  + new function register_initdone_proc which allows to register a callback for InitGlobals and DoneGlobals respectively
  + add functions callinitprocs, calldoneprocs, allocinitdoneprocs, freeinitdoneprocs to manage and access the init/done-callbacks
  * InitGlobals: call callinitprocs
  * DoneGlobals: call calldoneprocs 
........

git-svn-id: trunk@32977 -
2016-01-22 15:28:30 +00:00
svenbarth
02e56f410d Merged revision(s) 28689 from branches/svenbarth/packages:
Extract functionality that is shared between the metadata files for units (PPU) and for packages (PCP) into a parent class called tentryfile

+ add new unit entfile which contains the new tentryfile class and related types and constants
* ppu.pas:
    - remove methods, fields, types and constants which were moved to entfile.pas
    * replace the parts of tppuheader shared with tentryheader by a field of type tentryheader
fppu.pas, pmodules.pas, utils/ppumove.pp, utils/ppuutils/ppudump.pp:
    + add entfile to uses
    * adjust access to common header fields
node.pas, symdef.pas, symsym.pas, symtable.pas, wpoinfo.pas, utils/ppufiles.pp:
    + add entfile to uses
........

git-svn-id: trunk@32976 -
2016-01-22 15:26:30 +00:00