Commit Graph

629 Commits

Author SHA1 Message Date
Jonas Maebe
d456ec2ffe + support for JVM local variable and parameter debug information
o self is encoded as "this" for javac compatibility
  + ait_jvar (for the above) and ait_jcatch (similar, for future try/catch
    support) classes
  + support for smallset JVM type encoding (as int)

git-svn-id: branches/jvmbackend@18354 -
2011-08-20 07:50:41 +00:00
Jonas Maebe
28740dce2d - removed extra "fordefinition" parameter again from tprocdef.mangledname(),
since the definition-specific adorning of JVM mangled names is Jasmin-
    specific, and such code has no place in symdef
  * moved code to adorn JVM mangled names for Jasmin definitions to agjasmin

git-svn-id: branches/jvmbackend@18346 -
2011-08-20 07:49:31 +00:00
Jonas Maebe
1e2c70796e + jvm (cpu architecure) and java ("OS"/target) identifiers
+ basic target information for jvm target (assembling/linking
    helpers are still dummies for now)
  + basic jasmin assembler writer
  + cpunode and cputarg units to include the target units in the
    compiler

git-svn-id: branches/jvmbackend@18309 -
2011-08-20 07:37:33 +00:00
Jonas Maebe
0ee702b3a2 * tprocdef.mangledname now gets an extra boolean parameter indicating
whether the mangled name is for defining a symbol, or for referencing
    it later (e.g. for a call or load of its address). The reason is that
    on the JVM both cases are different.
  + jvmdef unit to encode types according to the JVM rules
  + tprocdef.jvmmangledname() to encode a procdef's JVM mangled name
    (the common part of defining/referencing it; tprocdef.mangledname
     afterwards adorns it as required)

git-svn-id: branches/jvmbackend@18288 -
2011-08-20 07:22:00 +00:00
Jonas Maebe
ec8c7b4888 + when compiling for Darwin/ARM, pass the subarchitecture to the linker.
The old linker option to accept object files from all subarchitecture
    types no longer works.
  + support for subarchitectures in fcl-res/fpcres

git-svn-id: trunk@18070 -
2011-08-02 20:41:39 +00:00
florian
95ad75c7bf * hack to set stack top for atmega128
* default output for avr-embedded is .hex

git-svn-id: trunk@18015 -
2011-07-17 20:46:05 +00:00
pierre
d1a6ef9cd9 * Restrict use of postw32 external utility to
win32/wdosx target systems.

git-svn-id: trunk@17929 -
2011-07-04 07:36:47 +00:00
pierre
c611c91cef Provide _tls_index in script
git-svn-id: trunk@17901 -
2011-07-01 14:27:33 +00:00
pierre
3cc2b5e97b + Added default dynamic linker for mips CPU
git-svn-id: trunk@17889 -
2011-07-01 07:37:05 +00:00
pierre
0227fbad7d * Fix some internal linker script lines
git-svn-id: trunk@17881 -
2011-06-30 13:02:31 +00:00
pierre
446c128e71 * Double LONG (-1) and LONG (0) for x86_64 linker script
git-svn-id: trunk@17862 -
2011-06-28 20:41:05 +00:00
Legolas
2503ac1d97 * Updated nds to devkitARM r33
git-svn-id: trunk@17843 -
2011-06-27 12:22:46 +00:00
pierre
239944f8d0 + Use DLL name in assembler labels used to import DLL functions/variables
in Windows, Emx and OS2 targets.
    This fixes test failures: test/library/tlib1b.pp and lib2b.pp

    link unit TLinker.AddImportSymbol: Added symmangledname parameter.
    ogbase unit TImportSymbol.Create: Add AMangledName parameter.
    fmodule unit TModule.AddExternalImport: Add symmangledname parameter.
    fppu unit: Also put mangled name string for imported symbol.
    ppu unit: Increase PPUVersion
    utils/ppudump.pp: Adapt to PPU change above.
    systems/T_OS units: Use ImportSymbol.MangledName property to create
    import libraries or .idata sections.

git-svn-id: trunk@17804 -
2011-06-23 11:38:57 +00:00
pierre
1a9f4ba314 * Improve ogbase linker script support, add warnings for unknown entries
git-svn-id: trunk@17784 -
2011-06-21 16:49:50 +00:00
pierre
e4bb241409 * Silence warning in MakeSharedLibrary
git-svn-id: trunk@17750 -
2011-06-14 12:37:27 +00:00
Jonas Maebe
78c3e6b359 * always use crtbeginS.o/crtendS.o when generating PIC code, not just when
generating libraries for x86_64 (at least all Linux systems I checked
    have the S-variants of those files) (mantis #19501)

git-svn-id: trunk@17713 -
2011-06-10 14:17:20 +00:00
joost
45bc3fcae0 * Enabled safecall on x86_64-linux
git-svn-id: trunk@17629 -
2011-06-02 10:43:18 +00:00
Jonas Maebe
1b5fed238a * don't quote the Darwin syslibroot path in link.res, it's not reinterpreted
by the shell since it's cat'ed into the command line

git-svn-id: trunk@17422 -
2011-05-09 21:26:36 +00:00
Jonas Maebe
9cd6a7ad85 * correctly handle -XR (sysroot) paths with spaces under Darwin
git-svn-id: trunk@17421 -
2011-05-09 20:14:17 +00:00
paul
d21bbc4548 compiler: reduce amount of hints and warnings
git-svn-id: trunk@17350 -
2011-04-20 02:58:52 +00:00
florian
7f0d245ac2 * reintegrate avr branch into trunk, work on avr is less invasive than I thought so it can be continued in trunk
git-svn-id: trunk@17348 -
2011-04-19 20:17:52 +00:00
florian
fb84cb865b * rebase to trunk@17295
git-svn-id: branches/avr@17296 -
2011-04-10 19:20:48 +00:00
florian
ebe8078263 * compilation fixed
git-svn-id: branches/avr@17293 -
2011-04-10 18:43:44 +00:00
florian
610fa89484 + basic avr linker script
git-svn-id: branches/avr@17292 -
2011-04-10 18:43:04 +00:00
florian
3ce9ff93f1 + patch by Jeppe Johansen to support automatic interrupt table generation by using the interrupt directive with an offset. Not activated yet because it requires to change also the startup code of the different mcus.
git-svn-id: trunk@17279 -
2011-04-10 15:59:06 +00:00
armin
672d76e636 added a segment table containing segments for symbols defined by linker script (needed for relocs)
git-svn-id: trunk@17268 -
2011-04-07 19:38:25 +00:00
armin
7eace122dc internal linker support for creating novell netware loadable modules
git-svn-id: trunk@17192 -
2011-03-27 14:47:25 +00:00
Legolas
5fc349eda7 * Fixed stacksize for Wii
git-svn-id: trunk@17035 -
2011-02-27 19:27:12 +00:00
Jonas Maebe
601b90d74c * don't specify a custom pagezero size on Mac OS X when compiling with -gv
(Valgrind support), because Valgrind cannot deal with that

git-svn-id: trunk@16916 -
2011-02-14 20:31:30 +00:00
Legolas
527dd56b28 + Initial Wii support
git-svn-id: trunk@16888 -
2011-02-07 16:56:45 +00:00
armin
fc34ef31c7 FindUtil was called in SetDefaultInfo and in MakeExecutable.
git-svn-id: trunk@16885 -
2011-02-06 16:25:18 +00:00
florian
0be59445f8 + basic i386-embedded implementation for multiboot by Jeppe Johansen, resolves #15676
git-svn-id: trunk@16801 -
2011-01-23 11:18:50 +00:00
Jonas Maebe
1f61b5b30c * reverted the rtl patches from r14184, because they cause an endless
loop when attempting to terminate a process via the RTL compiled into
    a Linux shared library  (mantis #17383)
  * call FPC_LIB_EXIT (the internal/generic RTL finalisation routine) instead
    of FPC_SHARED_LIB_EXIT (the Linux-specific "process exit" code for shared
    libraries) as "fini" routine (fixes #14958 again after reverting r14184)

git-svn-id: trunk@16418 -
2010-11-24 15:33:29 +00:00
Jonas Maebe
1271c221f3 - reverted change accidentally committed as part of r16050 that could break
internal resources on 32 bit Darwin platforms with small programs

git-svn-id: trunk@16417 -
2010-11-24 11:03:11 +00:00
pierre
ec99b1ba40 * Add tf_dwarf_only_local_labels for win64 as suggested by Willibald Krenn
git-svn-id: trunk@16151 -
2010-10-13 08:52:35 +00:00
mazen
b127fc154a * Fixed spell error revealed by lintian.
git-svn-id: trunk@16094 -
2010-10-06 20:33:57 +00:00
Jonas Maebe
8b0301409a + i386/iphonesim target for the new iPhoneSimulator in Xcode 3.2.4 and
later: the same as i386/darwin, except
      a) uses the non-fragile Objective-C ABI/runtime
      b) does not require stubs for direct calls/jumps (not required for
         i386/darwin under 10.6 and later either, but still generated
         there for backwards compatibility)
      c) only the same packages are enabled as for ARM/Darwin
      d) MacOSAll is compiled specifically for the iPhoneSimulator SDK
    This target also defines the symbol "darwin" apart from the target
    name "iphonesim" for source code compatibility reasons.

git-svn-id: trunk@16065 -
2010-09-29 21:56:47 +00:00
pierre
7c04d8d13b From patch submitted by Willibald Krenn in Bug Report 17500.
* assemble.pas (TInternalAssembler.WriteStab): Use RELOC_ABSOLUTE32 for
   32-bit stab entry.
 * ogcoff.pas: Add check for correct generated reloc section size.
 * systems/t_win.pas: Use 0x400000 image base for x86_64 programs using
   stabs debug information format.

git-svn-id: trunk@16056 -
2010-09-28 10:06:54 +00:00
Jonas Maebe
f13f6627c4 * moved use_fixed_stack from cgutils to a method in paramgr so it can
be used outside the code generator
  * renamed tabstractprocdef.requiredargarea into callerargareasize,
    and also added calleeargareasize field; added init_paraloc_info(side)
    method to init the parameter locations and init those size fields and
    replaced all "if not procdef.has_paraloc_info then ..." blocks with
    procdef.init_paraloc_info(callersize)"
  * moved detection of stack tainting parameters from psub to
    symdef/tabstractprocdef
  + added tcallparanode.contains_stack_tainting_call(), which detects
    whether a parameter contains a call that makes use of stack paramters
  * record for each parameter whether or not any following parameter
    contains a call with stack parameters; if not, in case the current
    parameter itself is a stack parameter immediately place it in its
    final location also for use_fixed_stack platforms rather than
    first putting it in a temporary location (part of mantis #17442)
  * on use_fixed_stack platforms, always first evaluate parameters
    containing a stack tainting call, since those force any preceding
    stack parameters of the current call to be stored in a temp location
    and copied to the final location afterwards

git-svn-id: trunk@16050 -
2010-09-26 21:24:14 +00:00
pierre
cd0329a15e * fix target options for GNU ld
git-svn-id: trunk@15938 -
2010-09-02 06:59:01 +00:00
joost
65ab1e820b * Safecall on linux/i386 now behaves like cdecl plus hidden exception support.
* Adapted tests because safecall on linux/i386 now does not include high() 
   support anymore

git-svn-id: trunk@15913 -
2010-08-27 19:07:22 +00:00
pierre
d27278faac * Add external linker possibility for windows x86_64 compiler
git-svn-id: trunk@15761 -
2010-08-10 11:28:31 +00:00
Jonas Maebe
ab2b596575 * ld uses arm_wince_pe rather than arm-wince-pe (mantis #15666)
git-svn-id: trunk@15707 -
2010-08-04 19:01:46 +00:00
Jonas Maebe
356026f849 * use new_section() instead of tai_section.create() everywhere
- sort of reverted r14134, which is no longer required after the above
    change (new_section() inserts the alignment itself)
  * made the tai_section.create() constructor private so it cannot be
    called directly anymore

git-svn-id: trunk@15482 -
2010-06-26 10:50:14 +00:00
Jonas Maebe
48d7c69aab * set maxCrecordalign to 16 for all x86_64 platforms that follow the
official ABI (records containing a C long double require 16 byte
    alignment)

git-svn-id: trunk@15367 -
2010-06-03 20:02:06 +00:00
Jonas Maebe
61df8f05a0 * fixed max length of gcsectionsstr (mantis #15984)
git-svn-id: trunk@15014 -
2010-03-14 11:07:08 +00:00
Jonas Maebe
2e544bd8de * smartlink dynamic libraries under Mac OS X (mantis #15984)
git-svn-id: trunk@15011 -
2010-03-13 23:37:20 +00:00
Legolas
bc1bcf343e * Updated NDS and GBA to devkitARM r28
* Updated libnds to 1.4.1
 * Fixed NDS rtl according with last string handling changes
 * Fixed nds audio examples

git-svn-id: trunk@14967 -
2010-03-02 21:56:41 +00:00
Jonas Maebe
879e487ee8 * changed linker target name for WinCE from arm-pe into arm-wince-pe
(mantis #15666)

git-svn-id: trunk@14872 -
2010-02-06 20:22:15 +00:00
Jonas Maebe
b6e4896805 * small typo corrections by Adriaan Van Os (mantis #15652)
git-svn-id: trunk@14844 -
2010-02-02 10:41:38 +00:00