Commit Graph

10582 Commits

Author SHA1 Message Date
Jonas Maebe
7e4750ac50 * workaround for default property constant value limitations
git-svn-id: trunk@10575 -
2008-03-28 10:15:33 +00:00
florian
c83af469d0 * new translations from Karl-Michael Schindler
git-svn-id: trunk@10567 -
2008-03-27 10:37:34 +00:00
peter
a9c9ca0115 * set elf flags for soft float on arm
git-svn-id: trunk@10560 -
2008-03-25 16:15:15 +00:00
Jonas Maebe
99e1e85447 * fixed execution of finalization section of smart linked shared
libraries on linux (mantis #6822)
  * fixed execution of library finalization sections on darwin
    (previously only the finalization section of the library
     compilation unit itself was executed, now those of the units
     used by the library are also executed)

git-svn-id: trunk@10554 -
2008-03-24 22:19:21 +00:00
micha
b0838b13d7 * add armeb target to compiler/Makefiles
git-svn-id: trunk@10552 -
2008-03-24 17:48:11 +00:00
Jonas Maebe
150eda304b * factored unix exports handling from t_bsd and t_linux into expunix unit
(todo: at least solaris, maybe others)
  * changed the "exports" section handling:
    a) make everything private which is not exported (implemented for
       darwin and linux)
    b) for the exported symbols:
     - functions/procedures
      1) if no name or index is provided, and if the procedure has aliases
         defined via the public/export directives, then export the default
         mangled name and all defined aliases
      2) otherwise if no name is specified (but there is an index) then
        i) if the procedure is defined as cdecl/cppdecl/mwpascal, use the
           appropriately mangled version of the function name
       ii) otherwise export the name without any mangling(e.g. "exports
           proc1" -> proc1 is the exported name)
     - variables
      1) if no name is provided and the variable was specified as cvar,
         use the mangled name
      2) otherwise if no name is provided, export the name without any
         mangling
  -> initialization/finalization of shared libraries under Linux works
     again (mantis #7838)
  -> sharing symbols between shared library and main program works
     under Linux (mantis #9089)

git-svn-id: trunk@10551 -
2008-03-24 16:55:05 +00:00
peter
f96817b5e9 * support CROSSOPT which is only passed to the cross compiler. Can be used to bootstrap a native compiler with
softfpu (-Cfsoft) that is not supported by i386

git-svn-id: trunk@10550 -
2008-03-24 14:23:45 +00:00
peter
52722b2cab * allocate .bss entries manual so we can take care of alignment
* disable COMMON symbol code, it might be needed again for ELF package
    support (.comm for ELF supports alignment)

git-svn-id: trunk@10549 -
2008-03-24 11:55:03 +00:00
micha
3e1149f740 * fix alignrecord fieldoffset size
git-svn-id: trunk@10548 -
2008-03-24 09:57:28 +00:00
micha
4b8486e55b * fix r10544 to take care of packed objects
git-svn-id: trunk@10546 -
2008-03-24 09:46:24 +00:00
micha
1130fb3e95 * revert accidental change to arm
git-svn-id: trunk@10545 -
2008-03-23 23:44:21 +00:00
micha
40211152d4 * make sure tobjects are pointer-size aligned in case of VMT usage; fixes tw1365 on armeb-linux
git-svn-id: trunk@10544 -
2008-03-23 23:42:53 +00:00
peter
741b5a1df7 * fix writing procedure local type defs
* write type names once for types defined in the current compiled unit

git-svn-id: trunk@10541 -
2008-03-23 13:40:41 +00:00
florian
7ef191021f + check for location.loc<>expectloc in extdebug mode
* set expectloc properly for add nodes on arm

git-svn-id: trunk@10536 -
2008-03-23 10:18:33 +00:00
Jonas Maebe
3d97db7976 + support for subrange types in dwarf (allows proper printing of packed
sets of subrange types)

git-svn-id: trunk@10532 -
2008-03-22 11:49:05 +00:00
Jonas Maebe
62e66d2a56 * explicit typecasting of any ordinal type to a boolean of the same
size must happen without any mangling of the value (mantis #11027)
  * moved checking for signed-to-unsigned (or vice versa) type
    conversions in assignments from htypechk to ncnv (where there
    was already code for similar checks) and added support for
    bool_to_bool there as well

git-svn-id: trunk@10521 -
2008-03-21 14:44:58 +00:00
michael
e9b3f7feb9 Merged revisions 10507-10509 via svnmerge from
svn+ssh://svn.freepascal.org/FPC/svn/fpc/branches/resources

........
  r10507 | giulio | 2008-03-19 11:13:54 +0100 (Wed, 19 Mar 2008) | 2 lines
  
  properly handle resource files with spaces in their path
........
  r10509 | giulio | 2008-03-20 13:07:31 +0100 (Thu, 20 Mar 2008) | 2 lines
  
  * Strip off path from resource file name when resource file is copied to output directory (fixes #11022)
........

git-svn-id: trunk@10516 -
2008-03-20 19:59:18 +00:00
Jonas Maebe
242b335531 * fixed widestring range checking on win64 (mantis #10450, fix also
depends on r10505)

git-svn-id: trunk@10506 -
2008-03-18 23:09:12 +00:00
Jonas Maebe
a6b9b3e00a * fixed a_param_ref for source sizes < 8 bytes
git-svn-id: trunk@10505 -
2008-03-18 20:10:22 +00:00
micha
6910b0ed40 * fix arm(eb) load/store of smaller than register sizes
git-svn-id: trunk@10500 -
2008-03-17 21:27:44 +00:00
florian
cad678840e + internal linker takes care of setpeflags
git-svn-id: trunk@10499 -
2008-03-17 21:06:35 +00:00
Jonas Maebe
3eec0569be * fixed shared library initialisation for FPC-compiled libraries
when linked to FPC-compiled programs under linux/i386 which
    do not use libc + test (mantis #8730). Programs which do use
    libc and other linux targets have to be fixed in a similar
    way until we properly fix everything by not exporting
    any symbols at all from shared libraries by default (and
    only those appearing in the "exports" section).

    Finalisation does not work yet either for FPC-compiled
    programs on linux/anything.

git-svn-id: trunk@10495 -
2008-03-15 23:28:09 +00:00
Jonas Maebe
f1bd686065 * re-applied r7485, which got lost in r7639 because an old
revision (r6623) of the file was renamed to cfileutl
    (mantis #10873)

git-svn-id: trunk@10488 -
2008-03-14 20:37:44 +00:00
tom_at_work
e540356be4 * fixed merge errors introduced by merge from resources branch, re-applied r9721
git-svn-id: trunk@10485 -
2008-03-13 19:45:01 +00:00
michael
174de3eab1 Merged revisions 9693-10480 via svnmerge from
svn+ssh://svn.freepascal.org/FPC/svn/fpc/branches/resources

........
  r9694 | michael | 2008-01-09 21:31:18 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Initial check-in
........
  r9695 | michael | 2008-01-09 21:35:58 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New version from Giulio Bernardi
........
  r9697 | michael | 2008-01-09 21:41:54 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Patch from Giulio Bernardi with resource support
........
  r9698 | michael | 2008-01-09 21:46:33 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Patch from Giulio Bernardi to add more resource testing
........
  r9699 | michael | 2008-01-09 21:57:26 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New tool from Giulio Bernardi
........
  r9700 | michael | 2008-01-09 21:58:23 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New tool from Giulio Bernardi
........
  r9701 | michael | 2008-01-09 22:01:54 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Added fcl-res
........
  r9702 | michael | 2008-01-09 22:01:58 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Added fcl-res
........
  r9703 | michael | 2008-01-10 08:54:26 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * Fixed double code
........
  r9704 | jonas | 2008-01-10 10:59:20 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    - removed duplicate code
........
  r9705 | jonas | 2008-01-10 11:25:21 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    + added missing fcl-res dependencies
........
  r9706 | jonas | 2008-01-10 11:58:30 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    + dependencies for fpintres and fpextres
........
  r9707 | yury | 2008-01-10 12:47:51 +0100 (Thu, 10 Jan 2008) | 3 lines
  
  * Fixed compilation of resource, which is included in a unit located in different folder than main source.
  * .res files must be copied to units output folder, otherwise .res files will not be found when only compiled units path is available and compiler does not know anything about sources folder.
  * Improved resource related error messages.
........
  r9708 | michael | 2008-01-10 12:52:13 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * Removed double source after end.
........
  r9709 | michael | 2008-01-10 12:52:48 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * No longer needed
........
  r9710 | tom_at_work | 2008-01-10 22:09:08 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * properly align FPC_RESLOCATION so that linking does not fail on some architectures (e.g. ppc64)
........
  r9711 | tom_at_work | 2008-01-10 23:53:12 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * fix splitting of 64 bit load/stores from/to unaligned memory locations into multiple load/stores, which in some cases generated wrong code
........
  r9712 | michael | 2008-01-11 11:00:08 +0100 (Fri, 11 Jan 2008) | 1 line
  
  * Fixed bug in BSS section on 64-bit platforms
........
  r9720 | giulio | 2008-01-12 10:02:04 +0100 (Sat, 12 Jan 2008) | 1 line
  
  Updated fcl-res documentation: occurrences of reslib changed to fcl-res.
........
  r9740 | giulio | 2008-01-13 19:36:44 +0100 (Sun, 13 Jan 2008) | 3 lines
  
   - Don't try to compile resources on systems with a non windows-like resource support.
   - Don't add the .or file to the list of object files if resource compiling failed.
........
  r10201 | giulio | 2008-02-04 11:35:44 +0100 (Mon, 04 Feb 2008) | 5 lines
  
  * resource compiling supported on OS/2 via wrc
  * CompileResourceFiles and CollectResourceFiles don't do target-specific checks anymore
  * refactored a bit
........
  r10389 | giulio | 2008-02-25 21:32:52 +0100 (Mon, 25 Feb 2008) | 2 lines
  
  Deleted test file which was committed by mistake
........
  r10472 | giulio | 2008-03-10 12:22:18 +0100 (Mon, 10 Mar 2008) | 2 lines
  
  changed define FPC_HAS_RESOURCES to FPC_HAS_WINLIKERESOURCES
........

git-svn-id: trunk@10481 -
2008-03-12 21:33:48 +00:00
Jonas Maebe
21f14aaeff * fixed "array of const" check in r10473 (+ fixed indentation)
git-svn-id: trunk@10475 -
2008-03-12 10:48:19 +00:00
peter
beb01e6e79 * give warning for disabling inline if assembler
is detected

git-svn-id: trunk@10473 -
2008-03-11 17:57:24 +00:00
florian
00ae5d1d5d + correct parsing interface delegation through classes
git-svn-id: trunk@10466 -
2008-03-09 11:16:05 +00:00
Jonas Maebe
8adc596c16 - revert fix for #10927: the old behaviour was Delphi compatible,
and the fix caused other problems (#10979)

git-svn-id: trunk@10464 -
2008-03-08 18:17:31 +00:00
florian
48fb130be3 * fixed fpu type setting for avr
git-svn-id: trunk@10463 -
2008-03-08 17:09:40 +00:00
florian
ed540dc7c1 * fixed copy&paste error in rev. 10460
git-svn-id: trunk@10462 -
2008-03-08 14:05:04 +00:00
micha
f70c24435d * fix int64 result passing on armeb
git-svn-id: trunk@10460 -
2008-03-08 13:02:33 +00:00
florian
6dc34ae467 * updates of german error message file by Karl-Michael Schindler
git-svn-id: trunk@10457 -
2008-03-07 21:01:12 +00:00
Jonas Maebe
005bdc1af4 * fixed "inherited some_property" constructs for getters/setters
(mantis #10927)
  * extended the tb0259 test a bit (tests similar constructs in
    case there is no getter/setter)

git-svn-id: trunk@10456 -
2008-03-07 19:29:40 +00:00
Jonas Maebe
931aef4daa * make result of not(constant) (with constant type <= sinttype)
equal to sinttype (Delphi-compatible, fixes #10966)
  * changed not(cardinal_constant) into sinttype on 64 bit
    platforms for consistency with other similar rules (and with
    the above change)

git-svn-id: trunk@10455 -
2008-03-07 16:33:15 +00:00
florian
914a8ec4b4 * convert the array into a variant as well before calling fpc_variant_put, resolves #10495
git-svn-id: trunk@10453 -
2008-03-06 22:15:04 +00:00
Jonas Maebe
0ae33aeab0 * the result of not(dword(ordconst)) has to be dword as well for Delphi
compatibility (and to avoid range errors like in mantis #10931)

git-svn-id: trunk@10451 -
2008-03-06 21:36:32 +00:00
Jonas Maebe
761f2e5c93 * fixed constant evaluation of not(byte/word/long/quadbool) + test
git-svn-id: trunk@10450 -
2008-03-06 20:29:27 +00:00
Jonas Maebe
632570fc74 * fixed compilation with 2.2.0 on big endian systems after r10432
git-svn-id: trunk@10443 -
2008-03-04 23:21:52 +00:00
Jonas Maebe
b24caad870 * fixed x86_64 after r10422
git-svn-id: trunk@10442 -
2008-03-04 23:13:44 +00:00
florian
efe31d965c * made default arm-linux compiler little endian again
git-svn-id: trunk@10440 -
2008-03-04 10:19:53 +00:00
Jonas Maebe
7524d9f8ca * fixed wrong check in r10432 causing an internalerror for ppc/ppc64
git-svn-id: trunk@10433 -
2008-03-02 20:00:52 +00:00
peter
8f239d04b6 * cleanup and simplify the set type handling
git-svn-id: trunk@10432 -
2008-03-02 17:48:27 +00:00
florian
39250de33a * don't load stack size value when generic stack checking is done, resolves #10924
git-svn-id: trunk@10429 -
2008-03-02 16:44:08 +00:00
peter
761344e9fc * don't allow passing ordinal and real constants to formal const parameters
git-svn-id: trunk@10426 -
2008-03-02 15:00:32 +00:00
peter
f915cbc4ca * replace constants to formal const with variables
git-svn-id: trunk@10425 -
2008-03-02 14:01:22 +00:00
peter
85e904cb36 * fix range error
git-svn-id: trunk@10424 -
2008-03-02 14:00:38 +00:00
micha
83b7f81f81 + add no-fpu support to compiler/rtl for powerpc-linux (-Cfnone)
git-svn-id: trunk@10422 -
2008-03-02 12:59:02 +00:00
Jonas Maebe
d80d3f36d2 * fixed crash when writing a currency value with a specified number
of fractional digits in case it's not the last value of the
    write(ln) statement (mantis #10920)

git-svn-id: trunk@10421 -
2008-03-02 10:22:25 +00:00
Jonas Maebe
97f4c0a130 * call taddnode.simplify at the very end of taddnode.pass_typecheck, so
it doesn't have to duplicate any type checking code, and so constant
    expressions get the same resultdefs as non-constant expressions
  * properly fixed resultdef determination of "set + setelementn" (follows
    same rules now as "set + set")
  * also convert "longint or/xor cardinal" to int64 (needed for correct
    results with negative numbers and Delphi-compatible) + test
  * extended 64-to-32 type conversion simplification to also handle
    or/xor nodes (so if the result is typecasted back to 32 bit, the
    evaluation can still be done entirely in 32 bit). These changes also
    enable that optimization in some extra cases (not just anymore for
    expressions containing only uint32)

git-svn-id: trunk@10418 -
2008-03-01 20:48:50 +00:00