Commit Graph

38261 Commits

Author SHA1 Message Date
tom_at_work
9428c78d63 Pass OPT to compilation of fpmake.
Solves issues with systems that e.g. require special options for compilation of programs (e.g. libc programs to find libc startup code) or the actual build has been compiled with options that are incompatible with default ones.

Tested changes by building an i386-linux local build and i386-linux->arm-linux cross-builds

git-svn-id: trunk@22397 -
2012-09-15 23:41:44 +00:00
florian
95830d5a4a + DEBUG_REGISTERLIFE define
git-svn-id: trunk@22396 -
2012-09-15 17:20:57 +00:00
florian
f75e39e660 + aliasing of registers, allows to split live ranges
git-svn-id: trunk@22395 -
2012-09-15 17:20:53 +00:00
Jonas Maebe
e4956552de * test from mantis #22796 (already works)
git-svn-id: trunk@22394 -
2012-09-15 13:40:17 +00:00
sergei
fde944bf5d + Declare AT_TLS and AT_GNU_IFUNC symbol types, these are needed to handle object files created by gcc in ELF internal linker.
* TExeOutput.FixupSymbols:
  + Collect AT_GNU_IFUNC symbols in IndirectObjSymbols list for further processing by ELF back-end.
  * Do not overwrite bind and size while fixing AB_COMMON symbols, this removes need in storing symbol size in every relocation and dedicated handling of oso_common section.
  * Remove symbols with objsection<>nil from lists, so calling FixupSymbols several times skips already processed symbols.

git-svn-id: trunk@22393 -
2012-09-14 17:22:48 +00:00
Jonas Maebe
404e1a34a4 * changed resource handle parameters from THandle to TFPResourceHMODULE so
they don't truncate the handle data on 64 bit platforms (patch by
    Anton Kavalenka, mantis #21721)

git-svn-id: trunk@22392 -
2012-09-14 15:05:08 +00:00
pierre
6f47ed44a0 * Remove stamps and MAKEFILETARGETS subdirectories for distclean
git-svn-id: trunk@22391 -
2012-09-14 14:34:20 +00:00
Jonas Maebe
dcdcc6988d * if an agregate contains unaligned fields, it has to be passed via memory
(mantis #22878)

git-svn-id: trunk@22390 -
2012-09-14 13:59:59 +00:00
pierre
6eccf88499 call halt(217) if get_caller_XX function generates an exception
git-svn-id: trunk@22389 -
2012-09-14 13:45:31 +00:00
pierre
6ac8b6e9c7 Fix SigContextRec record for x86_64 cpu
git-svn-id: trunk@22388 -
2012-09-14 12:06:07 +00:00
joost
e27586175f * Load- and Save-unitconfig made public.
git-svn-id: trunk@22387 -
2012-09-13 20:17:18 +00:00
joost
16a26ea515 * Added ability to add flags to packages
git-svn-id: trunk@22386 -
2012-09-13 19:45:43 +00:00
florian
b72251389b * when forcing left into memory during code generation of a subscript node then the type of left must be passed else memory corruption happens
git-svn-id: trunk@22385 -
2012-09-13 19:22:42 +00:00
Jonas Maebe
0ad1a26c61 * adjusted startup code so it guarantees 16 byte stack alignment on program
startup for Linux/i386 (since the code generator won't keep the 16 byte
    alignment (yet?) for that platform, it won't make much difference in
    practice)

git-svn-id: trunk@22383 -
2012-09-13 14:47:05 +00:00
pierre
9c7ea2e5a1 Fix compilation error with -dHEAPTRC
git-svn-id: trunk@22382 -
2012-09-13 12:45:20 +00:00
pierre
305a275746 Protect with try/except blocks call to get_caller_XXX functions to avoid troubles if stack is invalid
git-svn-id: trunk@22381 -
2012-09-13 12:37:49 +00:00
Jonas Maebe
1219797d94 * support LOC_(C)SUBSETREG/REF in gen_load_vmt_register() (mantis #22869)
git-svn-id: trunk@22380 -
2012-09-13 12:35:31 +00:00
svenbarth
29c71d39ac Preparations for upcoming work on generics:
+ symconst.pas: add a new flag to symtables to mark them as containing at least one generic (will be used to decide whether an expression like "Foo<Bar" should even remotely be considered a specialization)
* utils/ppudump.pp: respect the new flag
* pdecl.pas, types_dec: add the flag for every generic we have parsed
* pgenutil.pas, generate_specialization: add the flag to the specialize symtable if a nested generic set it for the temporary symtable (does not happen currently, but will in the future when nested generics are supported)
+ keep references to all generic para symbols in the def; this way the symtable containing the type parameters does not need to be walked every time we need to do something with the parameters

git-svn-id: trunk@22379 -
2012-09-13 11:35:35 +00:00
pierre
2d0f01e0dd Enable writing of Warnings/Notes/hints if they are considered as errors using -SeX option
to avoid getting a compiler failure without any error printed out

git-svn-id: trunk@22378 -
2012-09-13 07:34:23 +00:00
Jonas Maebe
3b968b4b35 * don't allow overloading enum/int operations, because they should be
interpreted as internally define operations in case of enum type
    definitions in {$mode delphi} (mantis #22860)

git-svn-id: trunk@22377 -
2012-09-12 16:03:09 +00:00
pierre
fd844d08e0 Avoid wrong typecast in DoReplace function as revealed by extcycle
git-svn-id: trunk@22376 -
2012-09-12 14:06:48 +00:00
pierre
3db493482b Regenerate after: extcycle produces lots of warnings, thus add ALLOW_WARNINGS=1
git-svn-id: trunk@22375 -
2012-09-12 14:05:00 +00:00
pierre
5140bc2021 extcycle produces lots of warnings, thus add ALLOW_WARNINGS=1
git-svn-id: trunk@22374 -
2012-09-12 13:43:41 +00:00
Jonas Maebe
fe90823b01 * support the "overload" modifier for Objective-C methods
* only check whether the message identifier of an Objective-C method
    matches the one from a method with the same name in a parent class
    if the parameters match (todo: should be refined to "if the
    encoded Objective-C selector names match")

git-svn-id: trunk@22373 -
2012-09-11 21:58:40 +00:00
nickysn
0e1b582131 TZipper: set the compression level bit flag in the file header of deflate compressed files
git-svn-id: trunk@22372 -
2012-09-11 21:22:34 +00:00
florian
3a6446e6d1 * address parameters must be vr_addr regable
git-svn-id: trunk@22371 -
2012-09-11 17:20:12 +00:00
pierre
66b9617ba7 Do not add 8 to NIL values of get_caller_addr
git-svn-id: trunk@22370 -
2012-09-11 08:08:48 +00:00
florian
a1da9b7710 * better cse handling of short boolean evaluated boolean expressions
git-svn-id: trunk@22369 -
2012-09-10 18:42:50 +00:00
marco
e4c0132109 * workaround breakage due to fpgetenv deprecation in combination with
-Se.

git-svn-id: trunk@22368 -
2012-09-10 17:40:07 +00:00
masta
c3a91c5022 Remove the postfix check in MovStrMov peephole optimizer for ARM
We don't need to check for the postfix, PF_NONE/PF_H/PF_B are all ok for us and
can be intermixed. This allows the peephole optimizer to work for
strb and strh instructions.

git-svn-id: trunk@22367 -
2012-09-10 14:57:43 +00:00
masta
0f40429389 Improve handling of set operations with constant values on ARM
tarmaddnode.second_cmpsmallset always forced a value into a register
even when it could be represented as a constant, resulting in wasted
registers.

mov r1, #5
cmp r0, r1

If possible we'll now create:
cmp r0, #5

git-svn-id: trunk@22366 -
2012-09-10 12:37:50 +00:00
marco
1a895a875b * move fpgetenv(pchar) to unit system for syscall based *nix rtls.
It was already available for libc based *nix rtls

git-svn-id: trunk@22365 -
2012-09-10 09:21:56 +00:00
marco
e245802fa8 * deprecated old shortstring getenv func.
git-svn-id: trunk@22364 -
2012-09-10 09:01:24 +00:00
Jonas Maebe
670509cbf1 - disabled multithreading because it has causes crashes
git-svn-id: trunk@22363 -
2012-09-09 23:33:51 +00:00
florian
67744ef46e * fix methodpointers in registers on big endian targets
git-svn-id: trunk@22362 -
2012-09-09 17:54:35 +00:00
joost
a74b6e8573 * Added ability to add targets to a packagevariant
git-svn-id: trunk@22361 -
2012-09-09 12:57:08 +00:00
florian
9ebf2aa984 * project file updates
git-svn-id: trunk@22360 -
2012-09-08 21:58:45 +00:00
joost
8459c12af7 * Fixed compilation of programs when using a buildunit
git-svn-id: trunk@22359 -
2012-09-08 15:50:06 +00:00
joost
982c7ca9a9 * Added ability to inherit package-variants from dependencies.
git-svn-id: trunk@22358 -
2012-09-08 15:43:50 +00:00
joost
dfb01f7391 * Package variants are stored in the package-dictionary, so there are more
places now where the package-dictionary should be used instead of the 
   global one.

git-svn-id: trunk@22357 -
2012-09-08 15:26:29 +00:00
marco
eae11f81bb * Size_t (IMalloc interface mainly) to PTRUINT, mantis #22835
git-svn-id: trunk@22355 -
2012-09-08 10:49:26 +00:00
joost
aa6b8b3fce * Do not use the GlobalDictionary during compilation of a package, this is not thread-safe
git-svn-id: trunk@22353 -
2012-09-07 18:59:16 +00:00
florian
34996baa05 * remove more than a decade outdated project files
git-svn-id: trunk@22352 -
2012-09-07 17:13:40 +00:00
florian
d93cee995b * fix register method pointer for ppc64 and x86_64-linux
git-svn-id: trunk@22351 -
2012-09-07 15:15:10 +00:00
Jonas Maebe
95c69f1f9e * fixed function return location for small records on darwin/i386 and
iphonesim/i386 when not using cdecl/cppdecl/mwpascal calling conventions

git-svn-id: trunk@22350 -
2012-09-06 21:41:42 +00:00
Jonas Maebe
f2e1ec2771 * merged changes to systemh.inc/compproc.inc from r22289/r22290/r22310
git-svn-id: trunk@22349 -
2012-09-06 21:41:35 +00:00
joost
8a4bd096fc * Files which should not be compiled on the current target can not trigger
a compile of the package. This also avoids checks on the file-age of
   unknown source files, which effectively leads to checking the age of
   directories.

git-svn-id: trunk@22348 -
2012-09-06 20:35:22 +00:00
Jonas Maebe
e7cb2e9a28 * test for mantis #22807 (bug fixed in jasmin)
git-svn-id: trunk@22347 -
2012-09-06 18:50:29 +00:00
pierre
971cc159f9 Using global assmelber labels for debug line is not required for smartlinked sections
git-svn-id: trunk@22346 -
2012-09-06 15:44:38 +00:00
florian
7840b4657a * the improved arm optimizer might move instructions around so the old hacky test if a label with its data has been already embedded into the code by checking if the offset is 0 does not work anymore so a new field for tai_label has been introduced for this purpose
git-svn-id: trunk@22345 -
2012-09-06 15:12:17 +00:00