Commit Graph

489 Commits

Author SHA1 Message Date
florian
515774b864 * merged armthum branch
-- Zusammenführen der Unterschiede zwischen Projektarchiv-URLs in ».«:
U    rtl/arm/setjump.inc
A    rtl/arm/thumb2.inc
U    rtl/arm/divide.inc
A    rtl/embedded/arm/stm32f103.pp
U    rtl/inc/system.inc
U    compiler/alpha/cgcpu.pas
U    compiler/sparc/cgcpu.pas
U    compiler/i386/cgcpu.pas
U    compiler/ncgld.pas
U    compiler/powerpc/cgcpu.pas
U    compiler/avr/cgcpu.pas
U    compiler/aggas.pas
U    compiler/powerpc64/cgcpu.pas
U    compiler/x86_64/cgcpu.pas
U    compiler/cgobj.pas
U    compiler/psystem.pas
U    compiler/aasmtai.pas
U    compiler/m68k/cgcpu.pas
U    compiler/ncgutil.pas
U    compiler/rautils.pas
U    compiler/arm/raarmgas.pas
U    compiler/arm/armatts.inc
U    compiler/arm/cgcpu.pas
U    compiler/arm/armins.dat
U    compiler/arm/rgcpu.pas
U    compiler/arm/cpubase.pas
U    compiler/arm/agarmgas.pas
U    compiler/arm/cpuinfo.pas
U    compiler/arm/armop.inc
U    compiler/arm/narmadd.pas
U    compiler/arm/aoptcpu.pas
U    compiler/arm/armatt.inc
U    compiler/arm/aasmcpu.pas
U    compiler/systems/t_embed.pas
U    compiler/psub.pas
U    compiler/options.pas

git-svn-id: trunk@13801 -
2009-10-04 09:03:44 +00:00
Jonas Maebe
e8216ff397 * changed error about unsupported -Xr option into a warning, because the
Makefiles automatically pass it when cross compiling (mantis #14527)

git-svn-id: trunk@13665 -
2009-09-06 18:50:11 +00:00
Jonas Maebe
eb12fdb617 * give an error for -Xr on platforms where this parameter is ignored
git-svn-id: trunk@13640 -
2009-09-03 12:48:06 +00:00
Jonas Maebe
c2c68ddb8f - removed FPC_NEW_BIGENDIAN_SETS define and if(n)defs
* left old cpu-specific set helper code under ifdef FPC_OLD_BIGENDIAN_SETS
    in case someone wants to write new assembler set helpers (although most
    of them should be optimally generated by the compiler already if
    http://wiki.freepascal.org/FPC_HowToDo#Bit.28field.29_getting.2Fsetting_primitives
    are optimally implemented)

git-svn-id: trunk@13582 -
2009-08-23 08:16:40 +00:00
Jonas Maebe
0eec337a00 - removed SUPPORT_UNALIGNED, FPC_SUPPORTS_UNALIGNED and FPC_UNALIGNED_FIXED
defines and ifdefs (already all defined by 2.2.4)

git-svn-id: trunk@13581 -
2009-08-23 07:51:26 +00:00
yury
e82e4ae806 * Fixed WideString on wince. WideString=UnicodeString on wince. Bug #14304.
git-svn-id: trunk@13510 -
2009-08-10 11:32:08 +00:00
florian
8e9e7f0f8c - don' read ppc386.cfg any longer, it's deprecated since years, resolves #11317
git-svn-id: trunk@13493 -
2009-08-06 19:47:30 +00:00
Jonas Maebe
aba66582a8 * corrected the description of the option_only_one_source_support warning:
only the last source file specified will be compiled, not the first one
  * also print out both the old and the new source file name to be compiled
    when showing that message (to more easily find where the error is)
  * give an error if an unknown parameter is used, instead of silently
    ignoring it

git-svn-id: trunk@13429 -
2009-07-23 13:48:27 +00:00
Jonas Maebe
5c006b9b86 * enable the directory cache by default starting with the first lookup
(fixes mantis #13756)
  + added -Fd command line parameter to disable the directory cache

git-svn-id: trunk@13325 -
2009-06-26 14:55:31 +00:00
yury
78b2618db6 * Fixed setting of image base using {$IMAGEBASE X} directive.
* Cleanup of relative code.

git-svn-id: trunk@13147 -
2009-05-15 23:12:02 +00:00
yury
82ad6b4de9 * Define FPC_HAS_RIP_RELATIVE to indicate that x86_64 internal assembler supports RIP relative symbol addressing.
git-svn-id: trunk@13136 -
2009-05-13 10:44:01 +00:00
yury
9acecc0863 * Do not switch to external assembler if dwarf debug info is used.
git-svn-id: trunk@13097 -
2009-05-04 11:20:49 +00:00
yury
2b3a54cec0 * Allow usage of internal linker when dwarf debug info is used.
git-svn-id: trunk@13094 -
2009-05-04 10:19:54 +00:00
Jonas Maebe
41dcda600c * disabled the internal linker when using DWARF debug info (it doesn't
work correctly with DWARF)
  * only force the internal linker for STABS when generating relocatable
    output (rather than for all debugging formats)

git-svn-id: trunk@12917 -
2009-03-19 09:01:29 +00:00
florian
b4953e3a50 * ignore $CONTROLLERTPYES marco on non-AVR/ARM platforms in msg files
git-svn-id: trunk@12908 -
2009-03-17 13:55:52 +00:00
Jonas Maebe
ab8b32dafb - removed PARAOUTFILE define and ifdefs
git-svn-id: trunk@12898 -
2009-03-15 12:31:02 +00:00
Jonas Maebe
a8eb1cc30b - removed FPC_DARWIN_JMP_MAIN and FPC_DARWIN_PASCALMAIN defines and ifdefs
git-svn-id: trunk@12897 -
2009-03-15 12:21:59 +00:00
Jonas Maebe
c6470a75e7 * do not disable smart linking when using DWARF debug information on Darwin,
because there it does work correctly
  * print a note if smart linking is disabled due to using DWARF

git-svn-id: trunk@12896 -
2009-03-15 12:16:45 +00:00
Jonas Maebe
cdc4933826 - removed accidentally committed change from previous commit
git-svn-id: trunk@12895 -
2009-03-15 12:07:49 +00:00
Jonas Maebe
f2ce99029b * fixed sets in rtti for big endian systems
* changed set sizes in rtti to 1 byte for Delphi compatibility
  * fixed tests/webtbs/tw12038 for the new set sizes
  * documented at http://wiki.freepascal.org/User_Changes_Trunk#Sets_in_RTTI_.28run-time_type_information.29

git-svn-id: trunk@12894 -
2009-03-15 12:06:30 +00:00
Jonas Maebe
7ef279364b * disable smart linking when using DWARF debug info (doesn't work on all
platforms)

git-svn-id: trunk@12887 -
2009-03-14 15:33:59 +00:00
Jonas Maebe
145a7bf304 * only change the assembler to the default external assembler for Win32 when
using DWARF if it hasn't been changed yet

git-svn-id: trunk@12886 -
2009-03-14 15:28:00 +00:00
florian
acb06dac1b + Wp<Controllertype> support for arm and avr
git-svn-id: trunk@12664 -
2009-02-02 20:16:25 +00:00
florian
6d7d6dbd60 + feature softfpu introduced
git-svn-id: trunk@12617 -
2009-01-26 17:24:24 +00:00
Jonas Maebe
0768f82770 * set tf_dwarf_relative_addresses for win32
* switch to external assembler when using dwarf debug info for win32,
    because the internal assembler doesn't work with
    tf_dwarf_relative_addresses
   (mantis #12872)

git-svn-id: trunk@12592 -
2009-01-25 13:24:02 +00:00
Jonas Maebe
423ee926c2 * verify during parameter parsing that -gc and -pg are implemented/
supported for the chosen target platform

git-svn-id: trunk@12451 -
2008-12-28 15:53:15 +00:00
Jonas Maebe
3216e8c7bc * mark produced object files as "does not require executable stack" by
default for Linux (overridable using -WX switch) (mantis #11563)

git-svn-id: trunk@12356 -
2008-12-12 16:26:25 +00:00
Jonas Maebe
060d81b8fa Merged revisions 11878,11881-11882,11889,11891-11893,11895,11899-11902,11935,11938,12212,12304,12308-12310,12316,12330-12332,12334,12339-12340 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/branches/wpo

........
r11878 | jonas | 2008-10-11 02:25:18 +0200 (Sat, 11 Oct 2008) | 19 lines

  + initial implementation of whole-program optimisation framework
  + implementation of whole-program devirtualisation
  o use:
     a) generate whole-program optimisation information (no need
        to completely compile the program and all of its units
        with -OW/-FW, only the main program is sufficient)
      fpc -OWdevirtcalls -FWmyprog.wpo myprog
     b) use it to optimise the program
      fpc -B -Owdevirtcalls -Fwmyprog.wpo myprog
     (the -B is not required, but only sources recompiled during
      the second pass will actually be optimised -- if you want,
      you can even rebuild the rtl devirtualised for a particular 
      program; and these options can obviously also be used         
      together with regular optimisation switches)
  o warning:
    - there are no checks yet to ensure that you do not use 
      units optimised for a particular program with another
      program (or with a changed version of the same program)

........
r11881 | jonas | 2008-10-11 19:35:52 +0200 (Sat, 11 Oct 2008) | 13 lines

  * extracted code to detect constructed class/object types from
    tcallnode.gen_vmt_tree into its own method to avoid clutter
  * detect x.classtype.create constructs (with classtype = the
    system.tobject.classtype method), and treat them as if a
    "class of x" has been instantiated rather than a
    "class of tobject". this required storing the instantiated
    classrefs in their own array though, because at such a
    point we don't have a "class of x" tdef available (so
    now "x", and all other defs instantiated via a classref,
    are now stored as tobjectdefs in a separate array)
  + support for devirtualising class methods (including
    constructors)

........
r11882 | jonas | 2008-10-11 20:44:02 +0200 (Sat, 11 Oct 2008) | 7 lines

  + -Owoptvmts whole program optimisation which replaces vmt entries
    with method names of child classes in case the current class'
    method can never be called (e.g., because this class is never
    instantiated). As a result, such methods can then be removed
    by dead code removal/smart linking (not much effect for either
    the compiler, lazarus or a trivial lazarus app though).

........
r11889 | jonas | 2008-10-12 14:29:54 +0200 (Sun, 12 Oct 2008) | 2 lines

  * some comment fixes

........
r11891 | jonas | 2008-10-12 18:49:13 +0200 (Sun, 12 Oct 2008) | 4 lines

  * fixed twpofilereader.getnextnoncommentline() when reusing a previously
    read line
  * fixed skipping of unnecessary wpo feedback file sections

........
r11892 | jonas | 2008-10-12 23:42:43 +0200 (Sun, 12 Oct 2008) | 31 lines

  + symbol liveness wpo information extracted from smartlinked programs
    (-OW/-Owsymbolliveness)
  + use symbol liveness information to improve devirtualisation (don't
    consider classes created in code that has been dead code stripped).
    This requires at least two passes of using wpo (first uses dead code
    info to locate classes that are constructed only in dead code,
    second pass uses this info to potentially further devirtualise).
    I.e.:
     1) generate initial liveness and devirtualisation feedback
       fpc -FWtt.wpo -OWall tt.pp -Xs- -CX -XX
     2) use previously generated feedback, and regenerate new feedback
        based on this (i.e., disregard classes created in dead code)
       fpc -FWtt-1.wpo -OWall -Fwtt.wo -Owall tt.pp -Xs- -CX -XX
     3) use the newly generated feedback (in theory, it is possible
        that even more opportunities pop up afterwards; you can
        continue until the program does not get smaller anymore)
       fpc -Fwtt-1.wpo -Owall tt.pp -CX -XX
  * changed all message() to cgmessage() calls so the set codegenerror
  * changed static fsectionhandlers field to a regular field called
    fwpocomponents
  * changed registration of wpocomponents: no longer happens in the
    initialization section of their unit, but in the InitWpo routine
    (which has been moved from the woinfo to the wpo unit). This way
    you can register different classes based on the target/parameters.
  + added static method to twpocomponentbase for checking whether
    the command line parameters don't conflict with the requested
    optimisations (e.g. generating liveness info requires that
    smartlinking is turned on)
  + added static method to twpocomponentbase to request the
    section name

........
r11893 | jonas | 2008-10-12 23:53:57 +0200 (Sun, 12 Oct 2008) | 3 lines

  * fixed comment error (twpodeadcodeinfo keeps a list of live,
    not dead symbols)

........
r11895 | jonas | 2008-10-13 00:13:59 +0200 (Mon, 13 Oct 2008) | 2 lines

  + documented -OW<x>, -Ow<x>, -FW<x> and -Fw<x> wpo parameters

........
r11899 | jonas | 2008-10-14 22:14:56 +0200 (Tue, 14 Oct 2008) | 2 lines

  * replaced hardcoded string with objdumpsearchstr constant

........
r11900 | jonas | 2008-10-14 22:15:25 +0200 (Tue, 14 Oct 2008) | 2 lines

  * reset wpofeedbackinput and wpofeedbackoutput in wpodone

........
r11901 | jonas | 2008-10-14 22:16:07 +0200 (Tue, 14 Oct 2008) | 2 lines

  * various additional comments and comment fixes

........
r11902 | jonas | 2008-10-15 18:09:42 +0200 (Wed, 15 Oct 2008) | 5 lines

  * store vmt procdefs in the ppu files so we don't have to use a hack to
    regenerate them for whole-program optimisation
  * fixed crash when performing devirtualisation optimisation on programs
    that do not construct any classes/objects with optimisable vmts

........
r11935 | jonas | 2008-10-19 12:24:26 +0200 (Sun, 19 Oct 2008) | 4 lines

  * set the vmt entries of non-class virtual methods of not instantiated
    objects/classes to FPC_ABSTRACTERROR so the code they refer to can
    be thrown away if it is not referred to in any other way either

........
r11938 | jonas | 2008-10-19 20:55:02 +0200 (Sun, 19 Oct 2008) | 7 lines

  * record all classrefdefs/objdefs for which a loadvmtaddrnode is generated,
    and instead of marking all classes that derive from instantiated
    classrefdefs as instantiated, only mark those classes from the above
    collection that derive from instantiated classrefdefs as
    instantiated (since to instantiate a class, you have to load its vmt
    somehow -- this may be broken by using assembler code though)

........
r12212 | jonas | 2008-11-23 12:26:34 +0100 (Sun, 23 Nov 2008) | 3 lines

  * fixed to work with the new vmtentries that are always available and
    removed previously added code to save/load vmtentries to ppu files

........
r12304 | jonas | 2008-12-05 22:23:30 +0100 (Fri, 05 Dec 2008) | 4 lines

  * check whether the correct wpo feedback file is used in the current
    compilation when using units that were compiled using wpo information
    during a previous compilation run

........
r12308 | jonas | 2008-12-06 18:03:39 +0100 (Sat, 06 Dec 2008) | 2 lines

  * abort compilation if an error occurred during wpo initialisation

........
r12309 | jonas | 2008-12-06 18:04:28 +0100 (Sat, 06 Dec 2008) | 3 lines

  * give an error message instead of crashing with an io exception if the
    compiler is unable to create the wpo feedback file specified using -FW

........
r12310 | jonas | 2008-12-06 18:12:43 +0100 (Sat, 06 Dec 2008) | 3 lines

  * don't let the used wpo feedback file influence the interface crc (there's
    a separate check for such changes)

........
r12316 | jonas | 2008-12-08 19:08:25 +0100 (Mon, 08 Dec 2008) | 3 lines

  * document the format of the sections of the wpo feedback file inside the
    feedback file itself

........
r12330 | jonas | 2008-12-10 22:26:47 +0100 (Wed, 10 Dec 2008) | 2 lines

  * use sysutils instead of dos to avoid command line length limits

........
r12331 | jonas | 2008-12-10 22:31:11 +0100 (Wed, 10 Dec 2008) | 3 lines

  + support for testing whole program optimisation tests (multiple
    compilations using successively generated feedback files)

........
r12332 | jonas | 2008-12-10 22:31:40 +0100 (Wed, 10 Dec 2008) | 2 lines

  + whole program optimisation tests

........
r12334 | jonas | 2008-12-10 22:38:07 +0100 (Wed, 10 Dec 2008) | 2 lines

  - removed unused local variable

........
r12339 | jonas | 2008-12-11 18:06:36 +0100 (Thu, 11 Dec 2008) | 2 lines

  + comments for newly added fields to tobjectdef for devirtualisation

........
r12340 | jonas | 2008-12-11 18:10:01 +0100 (Thu, 11 Dec 2008) | 2 lines

  * increase ppu version (was no longer different from trunk due to merging)

........

git-svn-id: trunk@12341 -
2008-12-11 17:40:18 +00:00
florian
cb9e52826f * fix range check error in options handling, resolves #12365
+ better error output (print filename and line number) for config file directive errors

git-svn-id: trunk@11898 -
2008-10-14 17:06:55 +00:00
Jonas Maebe
253ae0c33e * changed abi for darwin/arm from eabi to default, as it appears to be
more closely related to the old abi
  * make sure softfloat is still default for darwin/arm after this change

git-svn-id: trunk@11861 -
2008-10-04 14:06:09 +00:00
florian
013dc5e379 * fix wince building after unicodestring changes
git-svn-id: trunk@11828 -
2008-09-27 12:05:35 +00:00
Jonas Maebe
6b473862cf * give an error stating that you have to use the latest released compiler
to build 2.3.1 since the unicode branch merge

git-svn-id: trunk@11795 -
2008-09-16 21:59:15 +00:00
tom_at_work
8a5a6db065 * rol/ror inlines for powerpc/powerpc64 (only for 32/64 bit operands for now)
git-svn-id: trunk@11770 -
2008-09-13 16:29:42 +00:00
florian
b178b08ba7 Merged revisions 11665-11738 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/unicodestring

........
  r11665 | florian | 2008-08-30 13:30:17 +0200 (Sat, 30 Aug 2008) | 1 line
  
  * continued to work on unicodestring type support
........
  r11666 | florian | 2008-08-30 19:02:26 +0200 (Sat, 30 Aug 2008) | 2 lines
  
  * expectloc for wide/ansi/unicode strings is LOC_CONSTANT or LOC_REGISTER now
........
  r11667 | florian | 2008-08-30 20:42:37 +0200 (Sat, 30 Aug 2008) | 1 line
  
  * more unicodestring stuff fixed, test results on win32 are already good
........
  r11670 | florian | 2008-08-30 23:21:48 +0200 (Sat, 30 Aug 2008) | 2 lines
  
  * first fixes for unix bootstrapping
........
  r11683 | ivost | 2008-09-01 12:46:39 +0200 (Mon, 01 Sep 2008) | 2 lines
  
      * fixed 64bit bug in iconvenc.pas
........
  r11689 | florian | 2008-09-01 23:12:34 +0200 (Mon, 01 Sep 2008) | 1 line
  
  * fixed several errors when building on unix
........
  r11694 | florian | 2008-09-03 20:32:43 +0200 (Wed, 03 Sep 2008) | 1 line
  
  * fixed unix compilation
........
  r11695 | florian | 2008-09-03 21:01:04 +0200 (Wed, 03 Sep 2008) | 1 line
  
  * bootstrapping fix
........
  r11696 | florian | 2008-09-03 21:07:18 +0200 (Wed, 03 Sep 2008) | 1 line
  
  * more bootstrapping fixed
........
  r11698 | florian | 2008-09-03 22:47:54 +0200 (Wed, 03 Sep 2008) | 1 line
  
  + two missing compiler procs exported
........
  r11701 | florian | 2008-09-04 16:42:34 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  + lazarus project for the linux rtl
........
  r11702 | florian | 2008-09-04 16:43:27 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  + set unicode string procedures
........
  r11707 | florian | 2008-09-04 23:23:02 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  * fixed several type casting stuff
........
  r11712 | florian | 2008-09-05 22:46:03 +0200 (Fri, 05 Sep 2008) | 1 line
  
  * fixed unicodestring compilation on windows after recent unix changes
........
  r11713 | florian | 2008-09-05 23:35:12 +0200 (Fri, 05 Sep 2008) | 1 line
  
  + UnicodeString support for Variants
........
  r11715 | florian | 2008-09-06 20:59:54 +0200 (Sat, 06 Sep 2008) | 1 line
  
  * patch by Martin Schreiber for UnicodeString streaming
........
  r11716 | florian | 2008-09-06 22:22:55 +0200 (Sat, 06 Sep 2008) | 2 lines
  
  * fixed test
........
  r11717 | florian | 2008-09-07 10:25:51 +0200 (Sun, 07 Sep 2008) | 1 line
  
  * fixed typo when converting tunicodestring to punicodechar
........
  r11718 | florian | 2008-09-07 11:29:52 +0200 (Sun, 07 Sep 2008) | 3 lines
  
  * fixed writing of UnicodeString properties
  * moved some helper routines to unicode headers
........
  r11734 | florian | 2008-09-09 22:38:55 +0200 (Tue, 09 Sep 2008) | 1 line
  
  * fixed bootstrapping
........
  r11735 | florian | 2008-09-10 11:25:28 +0200 (Wed, 10 Sep 2008) | 2 lines
  
  * first fixes for persisten unicodestrings
........
  r11736 | florian | 2008-09-10 14:31:00 +0200 (Wed, 10 Sep 2008) | 3 lines
  
  Initialized merge tracking via "svnmerge" with revisions "1-11663" from 
  http://svn.freepascal.org/svn/fpc/trunk
........
  r11737 | florian | 2008-09-10 21:06:57 +0200 (Wed, 10 Sep 2008) | 3 lines
  
  * fixed unicodestring <-> variant handling
  * fixed unicodestring property reading
........

git-svn-id: trunk@11739 -
2008-09-10 20:14:31 +00:00
florian
e0ff540918 + defined FPC_FULLVERSION as integer constant containing the version,
release and patch level are always two digits so the version can 
  be compared numerically: so 2.2.2 results in 20202, resolves #11568

git-svn-id: trunk@11504 -
2008-08-03 09:31:50 +00:00
florian
fe7cba52dc + support of inlined ror/rol on arm
git-svn-id: trunk@11473 -
2008-07-28 15:48:38 +00:00
florian
1afb1aa9cc + ror/rol functions
+ internal compiler support for ror/rol on i386

git-svn-id: trunk@11466 -
2008-07-27 17:12:32 +00:00
yury
a6eb251cee * Define dummy tcgarm.g_stackpointer_alloc to fix abstract warning.
* Suppressed unreachable code warnings.
* Now ARM compiler compiles without warnings and notes.

git-svn-id: trunk@11456 -
2008-07-23 13:22:36 +00:00
yury
491f0fa1d8 * Replaced all user defined warnings by TODO comments to reduce compiler noise.
git-svn-id: trunk@11443 -
2008-07-23 11:00:03 +00:00
yury
fcceb9cfa1 * Removed/ifdefed/commented unused local variables.
git-svn-id: trunk@11430 -
2008-07-20 23:00:31 +00:00
yury
01e31e2215 * Fixed r10992. Really warn if someone still uses ppc386.cfg
git-svn-id: trunk@11202 -
2008-06-05 08:24:58 +00:00
florian
0f6bcd613f * fixed spelling
git-svn-id: trunk@11171 -
2008-06-02 09:12:59 +00:00
florian
c3605645ff + warn if someone still uses ppc386.cfg
git-svn-id: trunk@10992 -
2008-05-18 07:57:54 +00:00
giulio
c6d4f1a9e5 Go32v2 is not an embedded target, don't disable features
git-svn-id: trunk@10943 -
2008-05-11 10:11:29 +00:00
florian
4a243d451f + support of -Mxxx or $modeswitch to enable single mode specific features
git-svn-id: trunk@10936 -
2008-05-10 22:04:53 +00:00
giulio
9203f46e1a * Handling of -Sf parameter fixed
* Fixed definition of FPC_HAS_FEATURE_xxx macros for targets not supporting the full range of features
 * Added DYNLIBS feature

git-svn-id: trunk@10932 -
2008-05-10 17:00:04 +00:00
Jonas Maebe
a324744cbe * fixed checking for defined/undefined macro's in the configuration file
(#undef'ed macro's still caused #ifdef/#ifndef to return resp.
     true/false)

git-svn-id: trunk@10872 -
2008-05-03 09:55:41 +00:00
Tomas Hajny
e64c9a152a * fix for doubled slashes in paths by Giulio Bernardi
git-svn-id: trunk@10796 -
2008-04-26 04:46:59 +00:00
micha
b0838b13d7 * add armeb target to compiler/Makefiles
git-svn-id: trunk@10552 -
2008-03-24 17:48:11 +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
b24caad870 * fixed x86_64 after r10422
git-svn-id: trunk@10442 -
2008-03-04 23:13:44 +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
florian
c05d4912f4 + basic system unit for avr-embedded
* fixed several compiler stuff to be able to start system unit compilation on avr

git-svn-id: trunk@10318 -
2008-02-13 20:35:16 +00:00
tom_at_work
52135af71f * implement branchless fpc_abs_long in a generic way
* enable optimization for ppc/ppc64 (two times faster than 
"generic" rtl branching routine)

git-svn-id: trunk@10306 -
2008-02-11 21:13:52 +00:00
peter
6b06d551a1 * don't fail on -Cg- for platforms that do not support PIC
git-svn-id: trunk@9383 -
2007-12-02 18:29:27 +00:00
yury
99a8012472 * Allow using constants in {$IF } directive in OBJFPC mode.
* Define FPC_OBJFPC_EXTENDED_IF to allow to test if this feature can be safely used.

git-svn-id: trunk@9342 -
2007-11-28 00:07:18 +00:00
Jonas Maebe
26930be303 * fixed non-x86 compilation after r9333
git-svn-id: trunk@9335 -
2007-11-26 11:13:42 +00:00
florian
fb8bbd5ff0 + inline abs(<longint>) on x86
git-svn-id: trunk@9333 -
2007-11-25 18:54:40 +00:00
Jonas Maebe
3b4eba9f86 * fixed handling of unaligned in assignments
git-svn-id: trunk@9302 -
2007-11-20 11:59:15 +00:00
florian
8075f99ce9 * define for armel fixed
git-svn-id: trunk@9164 -
2007-11-08 21:03:46 +00:00
florian
7a4c469eb2 * more generic definition of abi define
git-svn-id: trunk@9155 -
2007-11-07 20:44:33 +00:00
florian
90af7ebf72 * use only windows exceptions for stack checking on win32/win64, resolves #9166
git-svn-id: trunk@9020 -
2007-10-31 23:19:48 +00:00
Jonas Maebe
81c5abfb72 * don't add target_info.unit_env to the unit search path
if it's not set/empty

git-svn-id: trunk@8931 -
2007-10-25 19:30:48 +00:00
florian
7878f0feb3 * made all fpc_*_to_shortstr helpers a procedure, resolves #8580
git-svn-id: trunk@8898 -
2007-10-21 17:33:18 +00:00
Jonas Maebe
ff3b455a59 * make PIC generation default on Darwin (ppc and i386; ppc64 will be
done in next commit to ease merging)

git-svn-id: trunk@8872 -
2007-10-21 10:34:01 +00:00
peter
bfca4e67fa * -CO option to check for possible integer overflows
git-svn-id: trunk@8842 -
2007-10-18 19:55:22 +00:00
Jonas Maebe
2db3d54b2e * support for -Cg- to disable pic code
git-svn-id: trunk@8841 -
2007-10-18 18:23:03 +00:00
Jonas Maebe
8ed15c96bb - removed COMPPROCINLINEFIXED define and ifdefs (fixed in 2.2.0)
git-svn-id: trunk@8789 -
2007-10-14 09:44:18 +00:00
peter
9f0ca44c94 * new tf_smartlink_library flag
* use create_smartlink[_sections|_library] to check what to 
    do for smartlinking

git-svn-id: trunk@8715 -
2007-10-01 16:55:08 +00:00
micha
0625040eba + add -XR switch for target root file system with libs (also used for C lib type detection)
git-svn-id: trunk@8695 -
2007-09-30 15:00:54 +00:00
Jonas Maebe
0040eecf9f + support for extra packing of sets whose lower element number
is <> 0 (Delphi compatible now, + various tests)
  + support for enums and sets in is_in_limit()
  * fixed converting smallset expressions to varsets
  * improved choosing an appropriate common set type when mixing
    set types in an expression
  - removed no longer used normalset code from nadd.pas
  - disabled large set (>256 elements) support for now, because
    they are not yet supported entirely throughout the compiler
    and this causes errors at run time in several situations

git-svn-id: trunk@8515 -
2007-09-16 20:04:45 +00:00
florian
abfdda6129 * small m68k cleanups
git-svn-id: trunk@8500 -
2007-09-16 10:21:17 +00:00
peter
8fcd3169d8 * remove -gd, use -gw instead
git-svn-id: trunk@8419 -
2007-09-09 14:22:11 +00:00
Jonas Maebe
488cfa3c32 + -go<x> switch for debugging options (some global switches could be
moved to it)
  + -go[no]dwarfsets switch to [disable]/enable generation of dwarf set
    information, as this breaks gdb < 6.5 (used to be disabled in the
    compiler by an ifdef, still off by default)

git-svn-id: trunk@8414 -
2007-09-09 09:27:49 +00:00
peter
b513ebe9c6 * missing not
git-svn-id: trunk@8383 -
2007-09-04 18:30:57 +00:00
peter
8c24a15e26 * allow -l-
git-svn-id: trunk@8382 -
2007-09-04 18:29:58 +00:00
Jonas Maebe
11cb2a5614 * moved the setting of many target-specific defines to
TOption.TargetDefines and call it before parsing the config file,
    so extra defines like UNIX and WINDOWS are already defined while
    parsing the config file (mantis #9450)

git-svn-id: trunk@8371 -
2007-09-03 18:24:07 +00:00
Jonas Maebe
c7a5b0cf33 * forgot to commit (-CF<x> support)
git-svn-id: trunk@8351 -
2007-09-02 07:49:50 +00:00
Jonas Maebe
e205481027 * fixed sparc bootstrap
* use -Av9 assembler option so it accepts the memory barrier opcodes

git-svn-id: trunk@8244 -
2007-08-08 09:48:37 +00:00
Jonas Maebe
98ad33a0c7 + added lwsync instruction to the compiler
* fixed compilation of ReadDependencyBarrier

git-svn-id: trunk@8243 -
2007-08-08 09:15:48 +00:00
Jonas Maebe
4cdd590091 * use app_type instead of RelocSection for creating bundles, as
RelocSection is automatically set for all shared libraries

git-svn-id: trunk@8219 -
2007-08-04 09:13:34 +00:00
Jonas Maebe
84ddacd017 + support for creating a bundle instead of a library on Darwin (-Wb)
git-svn-id: trunk@8217 -
2007-08-03 12:42:49 +00:00
Jonas Maebe
a3c9dc5ec6 + support for {$linkframework x} to link to framework x (Darwin only)
+ support for {$frameworkpath x} and -Ffx to add x to the directories to
    search for frameworks (Darwin only)

git-svn-id: trunk@8165 -
2007-07-25 15:42:30 +00:00
michael
bedf0151cc * Implemented support for custom RC compiler and .RES linker
git-svn-id: trunk@8164 -
2007-07-25 12:06:57 +00:00
florian
5e60b52f28 * ignore pic directive/switch if the platform doesn't support pic, resolves #9281
git-svn-id: trunk@8157 -
2007-07-23 20:25:04 +00:00
peter
67e16340be * revert r8118
git-svn-id: trunk@8139 -
2007-07-22 19:59:00 +00:00
daniel
21293f5818 + Add common type integer promotion.
- {$intpromotion common_type} or -CIcommon_type switches to common type promotion.
    - {$intpromotion native_integer} or -CIcommon_type switches to current behaviour.
    - Default in tp mode is common_type, native_integer in other modes
    - Compiler can cycle with -CIcommon_type
    - Still needs checking on other architectures than i386

git-svn-id: trunk@8118 -
2007-07-21 19:16:24 +00:00
daniel
9adb202a92 * Rework the constexprint to allow operations from low(int64) to high(qword).
+ Some initial work on a formaldef which also carries the typinfo of a parameter.

git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
florian
c7100799ed + forbid usage of $E on targets supporting no fpu emulation
- disabled -Cfsoft on i386

git-svn-id: trunk@7625 -
2007-06-10 17:03:26 +00:00
pierre
43f72f56f9 * fix 'ppc386 -F' crash
git-svn-id: trunk@7546 -
2007-06-01 22:50:37 +00:00
Jonas Maebe
4919cecb3b + defined FPC_SUPPORTS_UNALIGNED if the compiler supports the
unaligned() expression

git-svn-id: trunk@7469 -
2007-05-25 12:00:55 +00:00
florian
9f56a89617 + added cyrillic code page tables
+ support -Fm<x> to load unicode tables from rtl/ucmaps, they must be in the same dir as the compiler though

git-svn-id: trunk@7420 -
2007-05-22 19:38:39 +00:00
Jonas Maebe
a0b57eddb5 * new internal set format for big endian systems. Advantages:
* varsets ({$packset x}) are now supported on big endian targets
    * gdb now displays sets properly on big endian systems
    * cleanup of generic set code (in, include/exclude, helpers), all
      based on "bitpacked array[] of 0..1" now
  * there are no helpers available yet to convert sets from the old to
    the new format, because the set format will change again slightly
    in the near future (so that e.g. a set of 24..31 will be stored in
    1 byte), and creating two classes of set conversion helpers would
    confuse things (i.e., it's not recommended to use trunk currently for
    programs  which load sets stored to disk by big endian programs compiled
    by previous FPC versions)
  * cross-endian compiling has been tested and still works, but one case
    is not supported: compiling a compiler for a different endianess
    using a starting compiler from before the current revision (so first
    cycle natively, and then use the newly created compiler to create a
    cross-compiler)

git-svn-id: trunk@7395 -
2007-05-19 17:15:15 +00:00
peter
6c916a032d * support - and + after -S options
git-svn-id: trunk@7365 -
2007-05-16 19:20:32 +00:00
florian
922b387980 * WinCE compilation fixed
git-svn-id: trunk@6938 -
2007-03-20 10:09:54 +00:00
Jonas Maebe
9cec910eb9 * changed *string_to_*chararray helpers from functions into procedures
because on win64 the location of a function result can depend on its
    size (so some chararrays had to be returned in registers and others
    by reference, which means it's impossible to have a generic function
    declaration which works in all cases) (mantis #8533)
  * pad constant string assignments to chararrays with #0 up to the
    length of the chararray for 2.0.x compatibility (fixes
    tests/test/tarray3)

git-svn-id: trunk@6915 -
2007-03-18 12:20:01 +00:00
florian
fb1afe0ea4 + set FPU* define properly
git-svn-id: trunk@6785 -
2007-03-11 17:16:23 +00:00
Jonas Maebe
4c1d540a21 * changed cpurequiresproperalignment from a compile-time define into
a target flag, since some kernels may be able to handle alignment
    problems, and the alignment requirements may not be absolute (e.g. on
    ppc64, only 8 byte values need alignment, and only to 4 byte boundaries)
   -> linux/ppc64 has tf_requires_proper_alignment set in its target flags,
      darwin/ppc64 hasn't

git-svn-id: trunk@6745 -
2007-03-06 16:10:56 +00:00
florian
cb746ec830 * propagate -Cfsoft to emulation settings on arm
git-svn-id: trunk@6703 -
2007-03-03 18:03:39 +00:00
peter
2ea4c683db * don't disable -Xs when -g and -Xg is used
git-svn-id: trunk@6629 -
2007-02-24 15:12:44 +00:00