Commit Graph

48041 Commits

Author SHA1 Message Date
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
pierre
7f0b676af1 Use Florian's suggestion to avoid IOStatus 5 errors in ExecuteProcess using process unit
git-svn-id: trunk@32975 -
2016-01-22 15:14:11 +00:00
svenbarth
716b3082e9 Merged revision(s) 28792 from branches/svenbarth/packages:
Provide a possibility to ignore duplicate symbols for exporting.

export.pas, texportlib:
  + new property "ignoreduplicates" with which duplicate symbols are ignored upon insertion
  + new method "duplicatesymbol" which checks "ignoreduplicates" and generates an error if it is False (this method needs to be used if a duplicate was detected)
expunix.pas, texportlibunix:
  * exportprocedure: use "duplicatesymbol" instead of always generating an error
systems/t_beos.pas, texportlibbeos:
  * exportprocedure: use "duplicatesymbol" instead of always generating an error
systems/t_haiku.pas, texportlibhaiku:
  * exportprocedure: use "duplicatesymbol" instead of always generating an error
systems/t_nwl.pas, texportlibnetwlibc:
  * exportprocedure: use "duplicatesymbol" instead of always generating an error
systems/t_nwm.pas, texportlibnetware:
  * exportprocedure: use "duplicatesymbol" instead of always generating an error
systems/t_win.pas, texportlibwin:
  * exportfromlist: use "duplicatesymbol" instead of always generating an error
........

git-svn-id: trunk@32974 -
2016-01-22 13:57:41 +00:00
florian
29aa8d6934 * updated for make 3.82
git-svn-id: trunk@32973 -
2016-01-21 19:53:37 +00:00
sergei
7381c66161 - i386-linux RTL: removed assembler startup files, which are unused since version 2.0.x.
git-svn-id: trunk@32972 -
2016-01-21 15:11:31 +00:00
sergei
1aec09f8cd * MIPS asm reader: parse dollar sign followed by identifier/number as a single token (register), not as two separate tokens.
git-svn-id: trunk@32971 -
2016-01-21 14:57:24 +00:00
Jonas Maebe
a65ab73e8b * support unicodestring constants in "case string of" (mantis #29353)
git-svn-id: trunk@32970 -
2016-01-20 21:11:26 +00:00
Jonas Maebe
9ace5ad038 * let is_conststringnode() and is_constwidestringnode() also recognise string
constants that have a stringdef as resultdef

git-svn-id: trunk@32969 -
2016-01-20 21:11:22 +00:00
Jonas Maebe
53052f26a0 * changed output parameter of process_ea_ref() from "out" to "var", as it is
already partially initialised by its caller (part of mantis #29439)

git-svn-id: trunk@32968 -
2016-01-18 22:20:26 +00:00
Jonas Maebe
30a3ad7538 * fixed cpu unit dependencies for i386 after r32857 (part of mantis #29439)
git-svn-id: trunk@32967 -
2016-01-18 22:20:16 +00:00
Jonas Maebe
e4c8a2776b - removed empty "protected type" section
git-svn-id: trunk@32966 -
2016-01-18 22:20:05 +00:00
Károly Balogh
4e14c292b0 fixed a the check for pd.owner being assigned before defererencing it. this fixes a reproduceable compiler crash I ran into recently
git-svn-id: trunk@32965 -
2016-01-18 12:42:24 +00:00
michael
59a55ea07d * Fix wrong use of options
git-svn-id: trunk@32964 -
2016-01-17 17:18:38 +00:00
michael
c1e876f525 * Fix building
git-svn-id: trunk@32963 -
2016-01-17 15:33:18 +00:00
svenbarth
82788b4995 tw20821.pp:
* test program attached to the bug report was incorrectly transformed to a test for the test suite

git-svn-id: trunk@32962 -
2016-01-17 12:14:54 +00:00
michael
2658637a01 * Fix bug ID #29414
git-svn-id: trunk@32961 -
2016-01-17 12:04:09 +00:00
michael
6576c8cd04 * Patch from Thaddy de Koning to make 3.0.0 the only starting compiler
git-svn-id: trunk@32960 -
2016-01-17 09:24:48 +00:00