Commit Graph

992 Commits

Author SHA1 Message Date
marcus
3207a346e1 AROS: arm needs AROS_FLAVOUR_BINCOMPAT defines
git-svn-id: trunk@34895 -
2016-11-13 21:05:12 +00:00
marcus
86940dfb32 AROS: added arm-aros target to compiler and fpcmake
git-svn-id: trunk@34805 -
2016-11-06 10:51:45 +00:00
Károly Balogh
b8e1151eed atari: add tf_requires_proper_alignment to the atari target
git-svn-id: trunk@34703 -
2016-10-09 22:56:23 +00:00
Károly Balogh
311f6dbf84 atari: fixed exe extension typo.
git-svn-id: trunk@34603 -
2016-10-03 04:06:04 +00:00
Károly Balogh
8d56d60d78 atari: added an external linker implementation, supporting GNU LD and VLink in theory. however the GNU LD version I have segfaults when I try to link the executable...
git-svn-id: trunk@34602 -
2016-10-03 03:54:56 +00:00
yury
c29c5571b8 * android: Fixed AV during linking when JNI_OnLoad is located in a non-main unit.
git-svn-id: trunk@34553 -
2016-09-22 07:40:51 +00:00
yury
a0d6873331 * android: Android versions prior to 4.1 do not support recursive dlopen() calls.
Therefore if a shared library is loaded by JVM ( using dlopen() ),
          it is not possible to use dlopen() in a units initialization code -
          dlopen() simply hangs.
          To workaround this issue, if a library exports JNI_OnLoad(), then
          no unit initialization is performed during library load.
          The initialization is called when JVM has loaded the library and calls
          JNI_OnLoad().

git-svn-id: trunk@34406 -
2016-09-01 23:22:41 +00:00
florian
f274e316fe + search /usr/lib/powerpc-linux-gnu for powerpc startup files
git-svn-id: trunk@34365 -
2016-08-22 10:01:47 +00:00
svenbarth
2808be3e20 + add and use sysinit unit for Win64 (only one since we don't support cygwin and gprof there)
* switch Win64 to indirect entry information

git-svn-id: trunk@34307 -
2016-08-13 19:10:27 +00:00
Jonas Maebe
aa1be3276f - removed default value of _typ parameter of TAsmData.(Weak)RefAsmSymbol():
it was AT_NONE, which is invalid and should never be used
  * explicitly pass the correct value for all calls to those methods elsewhere
    in the compiler

git-svn-id: trunk@34250 -
2016-08-05 07:09:16 +00:00
Jeppe Johansen
6a1c1e4f29 Added support for NRF52832 controllers.
git-svn-id: trunk@34170 -
2016-07-22 10:01:10 +00:00
Jonas Maebe
1cb8c0d00c * specify the def of assembler level symbols defined via
tasmdata.DefineAsmSymbol() and all routines that call it
   o will be used to automatically generate AB_INDIRECT sybols when
     necessary

git-svn-id: trunk@34164 -
2016-07-20 20:52:59 +00:00
Jonas Maebe
53ace5b489 - removed disabled exportlib override code
git-svn-id: trunk@34163 -
2016-07-20 20:52:55 +00:00
pierre
e68b8467b6 Use 'debug watcom all' if -g, without dwarf option is used
git-svn-id: trunk@34077 -
2016-07-06 06:13:08 +00:00
pierre
fba50767b3 Add SUPPORT_OMF conditional to be able to test OMF for win32/win64 targets, not working for now
git-svn-id: trunk@34076 -
2016-07-06 06:08:01 +00:00
nickysn
c2305809dc + added an i8086-embedded target support to the compiler (RTL and makefile
support are not done yet)

git-svn-id: trunk@33999 -
2016-06-17 19:15:24 +00:00
svenbarth
f406867100 Merged revision(s) 31929-31931,32547 from branches/svenbarth/packages:
Switch Mac OS X to indirect entry information.

compiler/systems/t_bsd.pas, TLinkerBSD:
  + implement InitSysInitUnitName
compiler/system.pas:
  * systems_internal_sysinit: add Darwin systems
compiler/hlcgobj.pas, thlcgobj:
  * gen_proc_symbol_end: for Darwin systems don't directly call PascalMain for libraries, but FPC_LIBMAIN instead
rtl/darwin:
  + add sysinit.pas unit which contains the executable and library entry points for Darwin
rtl/darwin/Makefile.fpc:
  * add sysinit unit
rtl/bsd/sysosh.inc:
  + add a Darwin specific TPlatformEntryInformation (could probably be used for all Unix systems...)
rtl/bsd/system.pp:
  * define FPC_HAS_INDIRECT_MAIN_INFORMATION for Darwin systems once we're no longer bootstrapping with 2.6.x
  + add EntryInformation variable (this could maybe moved to system.inc...)
  + add new procedure SysEntry that is called from the entrypoint and which sets up necessary information required by other parts of the RTL
  * the old FPC_SYSTEMMAIN is still in place for bootstrapping
rtl/inc/systemh.inc, TEntryInformation:
  * PascalMain is cdecl on non-Windows systems (ToDo: really?)
rtl/inc/system.inc:
  * initialstklen is provided by the indirect entry information, so no external here
........
Fix bootstrapping.

rtl/darwin/sysinit.pas:
  * enable the code only when no longer bootstrapping with 2.6.x
........
Fix bootstrapping.

rtl/objpas/objpas.pp:
  * define FPC_HAS_INDIRECT_MAIN_INFORMATION for Darwin only while not bootstrapping with 2.6.x
........
rtl/darwin/sysinit.pas:
  * reference PASCALMAIN correctly (I wonder how this even worked previously :/ )

git-svn-id: trunk@33949 -
2016-06-11 20:29:51 +00:00
Károly Balogh
a82196bf84 * now Amiga and MorphOS defines tf_requires_proper_alignment. for 68k Amiga it's required for 68000, on others it's not mandatory but beneficial
git-svn-id: trunk@33788 -
2016-05-25 09:54:01 +00:00
nickysn
c78f406d99 + implemented proper stack checking for the i8086
git-svn-id: trunk@33787 -
2016-05-24 23:57:47 +00:00
marcus
a77d26530d AmigaOS4: set winlike resources
git-svn-id: trunk@33622 -
2016-05-02 17:33:52 +00:00
Károly Balogh
6d3b580f2f * enabled internal ELF resources for AmigaOS4
git-svn-id: trunk@33596 -
2016-05-01 12:59:54 +00:00
Károly Balogh
a806114af6 * since AMIGA is now defined by both AmigaOS4 and 68k Amiga, have an unique AMIGA68K define for classic Amiga
git-svn-id: trunk@33583 -
2016-04-30 19:51:30 +00:00
Károly Balogh
5a50fc4be3 * don't provide __amigaos4__ symbol in our VLink linker script by default. it's in prt0.as for now.
git-svn-id: trunk@33582 -
2016-04-30 19:48:54 +00:00
svenbarth
adbef4fc84 New export option that enforces the use of the provided export name instead of using the name of the provided symbol. This is necessary to correctly handle overloaded functions, especially if one of them is an internproc one.
export.pas:
  + texportoption: new option eo_no_sym_name
pkgutil.pas:
  * exportprocsym: set eo_no_sym_name when exporting procdefs from a package
systems/t_win.pas, TExportLibWin:
  * generatelib: respect eo_no_sym_name

git-svn-id: trunk@33574 -
2016-04-29 15:03:18 +00:00
Károly Balogh
814d3c4071 * fixed GNU LD support for powerpc-amiga, broken by the previous commit
git-svn-id: trunk@33509 -
2016-04-14 21:33:04 +00:00
Károly Balogh
ea8322ee80 * powerpc-amiga linker invocation fixes, and added a linker script required for VLink, courtesy of Frank Wille
git-svn-id: trunk@33506 -
2016-04-14 21:12:15 +00:00
Károly Balogh
c39bce3747 * added vlink command line for AmigaOS/PPC
git-svn-id: trunk@33488 -
2016-04-12 12:53:56 +00:00
Jeppe Johansen
681b06bc90 Fixed more linkerscript errors.
git-svn-id: trunk@33306 -
2016-03-21 08:19:45 +00:00
Jeppe Johansen
632de58a5e Fixes #29853
git-svn-id: trunk@33267 -
2016-03-18 10:51:46 +00:00
Jeppe Johansen
1c0c944311 Added x86_64-embedded target. Patch from Benjamin Rosseaux
git-svn-id: trunk@33097 -
2016-02-14 10:57:00 +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
svenbarth
3b71841a84 Merged revision(s) 28691, 31914 from branches/svenbarth/packages:
Convert export options from constants to a set and accordingly adjust all usage locations

git-svn-id: trunk@32945 -
2016-01-15 16:06:06 +00:00
Jeppe Johansen
4b1eb0e4f3 Applied patch from Michael Ring fixing the startup code for Freescale microcontrollers.
git-svn-id: trunk@32568 -
2015-12-02 18:44:20 +00:00
Jeppe Johansen
f5eaf7ddde Fix stack pointer offset.
git-svn-id: trunk@32499 -
2015-11-22 20:51:54 +00:00
Jeppe Johansen
9aa3c23b18 Added a bunch of new and fixed embedded controller units. From Michael Ring.
git-svn-id: trunk@32386 -
2015-11-21 10:30:49 +00:00
Jeppe Johansen
291434be22 Enabled internal assembler for arm-linux. Will allow people to start running tests.
git-svn-id: trunk@32377 -
2015-11-20 14:37:10 +00:00
Károly Balogh
3675fc75cb VLink Support:
* fixed for MorphOS, added for Amiga/m68k
* enabled as default when running natively on these systems (cross still defaults to GNU LD)
* added -XV command line switch to enable/disable it
* dropped the 'fpc' prefix from vlink binary name on MorphOS

git-svn-id: trunk@32324 -
2015-11-15 01:18:30 +00:00
marcus
2f83eeba39 AROS: shortname in system description to uppercase (usual form)
git-svn-id: trunk@32140 -
2015-10-24 09:01:05 +00:00
Jeppe Johansen
4c8fc04a24 Fix a bunch of alignment problems for arm-embedded, mostly armv6m which uses the generic Move and FIllChar routines.
git-svn-id: trunk@32070 -
2015-10-17 12:11:32 +00:00
yury
4026cfcf60 * android: Generate PIC executables. It is required for Android 5.0+.
git-svn-id: trunk@32023 -
2015-10-12 08:56:04 +00:00
yury
8b27c3cf27 * Enable PIC by default for i386-android.
git-svn-id: trunk@32021 -
2015-10-12 08:13:42 +00:00
yury
f6045639fc * Removed the tf_safecall_clearstack flag for i386-android. It is useless, since i386-android uses fixed stack.
git-svn-id: trunk@32006 -
2015-10-10 20:43:42 +00:00
Jonas Maebe
5cb2d10c9a * add aarch64 multi-arch library directory (patch by Edmund Grimley Evans)
git-svn-id: trunk@31981 -
2015-10-08 18:56:35 +00:00
Jonas Maebe
21d6b45020 * add i386 multi-arch library directory (patch by Edmund Grimley Evans)
git-svn-id: trunk@31980 -
2015-10-08 18:55:56 +00:00
nickysn
3e2248f41a + implemented exporting of functions for the win16 target
git-svn-id: trunk@31842 -
2015-09-27 00:48:35 +00:00
Jonas Maebe
7c594b0288 + added support for using Clang as an assembler, and make it the default
for all non-ppc(32/64) Darwin platforms
   o pass the macosx-version-min/iphoneos-version-min to clang as an assembler,
     so that it properly sets this information starting with Xcode 7 (solves
     errors when targeting the iOS simulator, and warnings about object files
     being compiled for a different OS X version when targeting (Mac) OS X)
   o the old assembler is still selectable via -Aas-darwin (required with
     Xcode 3.1.x and older)
   o since the first Xcode version that shipped with Clang is Xcode 3.2, which
     is available for Mac OS X 10.6, most users should not encounter any issues
     with the new default (in fact, it fixes some tests for x86 because Clang
     supports some instructions that "as" doesn't). Clang does not support
     Stabs however, so -gs does require the use of -Aas-darwin

git-svn-id: trunk@31830 -
2015-09-25 18:31:54 +00:00
Jonas Maebe
8155d759dc - reverted r31806, it breaks building on non-Darwin (mantis #28716)
git-svn-id: trunk@31807 -
2015-09-24 06:44:12 +00:00
Jonas Maebe
c0b451e788 - removed as_darwin, since there is no difference with as_gas (there is no
GNU as from binutils for Darwin, and Apple's "as" is based on an old
    version of GNU as)
   o this will not cause any backward compatibility problems, as the
     previous identifier for as_darwin was "AS-Darwin" and the compiler
     compared the uppercase value of the -A parameter to the identifier,
     so it was not explicitly selectable earlier. The new name is "AS",
     so it is explicitly selectable via -Aas like on other platforms.

git-svn-id: trunk@31806 -
2015-09-23 21:25:38 +00:00
Jonas Maebe
f05d573391 * changed default debug format for Darwin/i386 from Stabs to DWARF2, as the
oldcctools are no longer shipped with Xcode 7 and Clang assembler doesn't
    support Stabs (and DWARF2 has been working better than Stabs since a long
    time already)

git-svn-id: trunk@31774 -
2015-09-22 12:55:59 +00:00
yury
11a9ff4a43 * Removed unused vars for mipsel compiler.
git-svn-id: trunk@31745 -
2015-09-17 15:46:30 +00:00