Commit Graph

432 Commits

Author SHA1 Message Date
pierre
b1249dcc32 * Merge commit #45720
------------------------------------------------------------------------
r45720 | pierre | 2020-07-02 16:26:13 +0000 (Thu, 02 Jul 2020) | 1 line

 Obsolete system_mips_embedded, as it is a duplicate of system_mipseb_embedded
------------------------------------------------------------------------
--- Merging r45720 into '.':
U    compiler/systems.inc
U    compiler/systems.pas
--- Recording mergeinfo for merge of r45720 into '.':
 U   .

git-svn-id: branches/fixes_3_2@47004 -
2020-09-29 14:53:00 +00:00
Jonas Maebe
76045bfc04 * merged macOS/AArch64 support + revisions these changes depended on
git-svn-id: branches/fixes_3_2@46866 -
2020-09-15 19:40:36 +00:00
florian
7cdb39b3f9 -- Aufzeichnung der Informationen für Zusammenführung von r43005 in ».«:
G   .
-- Aufzeichnung der Informationen für Zusammenführung von r43006 in ».«:
 G   .
-- Aufzeichnung der Informationen für Zusammenführung von r43007 in ».«:
 G   .
-- Aufzeichnung der Informationen für Zusammenführung von r43008 in ».«:
 G   .
-- Zusammenführen von r43000 in ».«:
U    compiler/pp.pas
-- Aufzeichnung der Informationen für Zusammenführung von r43000 in ».«:
 G   .
-- Zusammenführen von r43011 in ».«:
U    rtl/inc/system.inc
-- Aufzeichnung der Informationen für Zusammenführung von r43011 in ».«:
 G   .
-- Zusammenführen von r43012 in ».«:
U    rtl/i386/i386.inc
-- Aufzeichnung der Informationen für Zusammenführung von r43012 in ».«:
 G   .
-- Zusammenführen von r43013 in ».«:
U    rtl/linux/i386/si_c21.inc
-- Aufzeichnung der Informationen für Zusammenführung von r43013 in ».«:
 G   .
-- Zusammenführen von r43014 in ».«:
U    compiler/systems/i_linux.pas
-- Aufzeichnung der Informationen für Zusammenführung von r43014 in ».«:
 G   .
-- Zusammenführen von r43176 in ».«:
U    compiler/i386/cpupi.pas
U    compiler/i386/n386cal.pas
U    compiler/ncgcal.pas
U    compiler/ncgutil.pas
G    compiler/systems/i_linux.pas
U    compiler/systems.inc
C    compiler/systems.pas
G    tests/webtbs/tw7808.pp
-- Aufzeichnung der Informationen für Zusammenführung von r43176 in ».«:
 G   .
Konfliktübersicht:
  Textkonflikte: 1
Konfliktübersicht:
  Textkonflikte: 1

git-svn-id: branches/fixes_3_2@43434 -
2019-11-09 22:07:33 +00:00
pierre
cae238ca98 ------------------------------------------------------------------------
r40756 | karoly | 2019-01-04 03:00:03 +0000 (Fri, 04 Jan 2019) | 1 line

haiku: linker support code for internal sysinit and make the x86_64 port use it
------------------------------------------------------------------------
--- Merging r40756 into '.':
G    compiler/systems/t_haiku.pas
U    compiler/systems.pas
--- Recording mergeinfo for merge of r40756 into '.':
 G   .
------------------------------------------------------------------------
------------------------------------------------------------------------
r40791 | karoly | 2019-01-07 12:58:02 +0000 (Mon, 07 Jan 2019) | 1 line

haiku: move i386 also to internal sysinit
------------------------------------------------------------------------
U    compiler/systems.pas
U    rtl/haiku/system.pp
--- Recording mergeinfo for merge of r40791 into '.':
 U   .

git-svn-id: branches/fixes_3_2@42136 -
2019-05-29 21:55:51 +00:00
marco
23fbaa2726 # revisions: 41760,41761,41762,41763,41764,41765,41766,41769,41772,41773,41774,41775,41776,41777,41778,41779,41780,41781,41783
git-svn-id: branches/fixes_3_2@41990 -
2019-05-04 21:51:52 +00:00
marco
9d2f071ea2 --- Merging r41709 into '.':
C    compiler/systems.pas
--- Recording mergeinfo for merge of r41709 into '.':
 U   .
Summary of conflicts:
  Text conflicts: 1

# revisions: 41709

git-svn-id: branches/fixes_3_2@41989 -
2019-05-04 21:49:19 +00:00
marco
abccef11e0 # revisions: 41710,41711,41733,41734,41735,41736,41737,41738,41739,41740,41741,41743,41744,41745,41746,41750,41751,41752,41753,41754,41755,41757,41758,41759
git-svn-id: branches/fixes_3_2@41988 -
2019-05-04 21:45:55 +00:00
yury
0654857ce1 Merged aarch64-android, x86_64-android targets and fixes for the Android target.
Revision(s) 39739, 39749, 39860, 39862, 39865, 39869, 39871, 39903, 39905, 39917, 39956, 39959-39960, 39969, 39971, 39980, 39987, 40198-40201, 40472, 40532, 40535-40536 from trunk:
* Android: The list of supported syscalls has been auto-generated directly from android sources for each CPU.
* Minor adjustments to make all compilable with the proper list of Android syscalls.
........
* Re-generated lists of android syscalls by a new script. The lists are more correct now. The script's location: https://svn.freepascal.org/svn/fpcbuild/scripts/android
........
* Fixed UnhookSignal when RTL_SIGDEFAULT is passed. The bug have caused crash on aarch64-android due to out of bounds read of the rtlsig2ossig[] array.
........
+ Added support for the aarch64-android target.
........
* Set ICU data dir if it is not set by the system. It fixes issues on newer Android versions.
* Added more predefined ICU versions.
........
* android: Use the current dir as temp.
........
* Corrected TUContext record for aarch64-linux and aarch64-android. It fixes obtaining of an address of the instruction where a signal has thrown.
........
* Enabled safecall support for aarch64 to be on par with other cpus.
........
* Android: Reworked the startup code to use no assembly instructions. Generic assembler startup files contains only section data and are compiled for each CPU.
* Android: argc and argv are correct for shared libraries.
........
* Use syscall_nr_renameat for android.
........
+ added support for x86_64-android target.
........
+ Added the auto-generated list syscalls for mips64-android. It will be needed when mips64 is supported.
........
* x86_64-android requires sigreturn for proper signal handling.
........
* Register external gas assembler for aarch64-android and x86_64-android.
........
* Enabled compilation of the cpu unit for arm-android and x86_64-android.
........
* ucnv_open() must be called with some SSE exception masked on x86_64-android.
* Call u_init() during initialization.
........
* Create the ".note.gnu.build-id" section for android. It fixes debugging of shared libs in Android Studio.
........
* android: Removed cwstring from the uses clause of the unix unit. Use cwstring indirectly. It allows to avoid using cwstring if needed.
........
* ICU v3.8 on Android 1.5-2.1 is buggy and can't be unloaded properly.
........
* Fixed locale detection on new Android versions.
........
* Fixed obtaining a time zone information for 64-bit android.
........
* Since Android 8 the net.dnsX properties can't be read. Use Google Public DNS servers.

........
* android: Use libc for sockets since the "accept" syscall is blocked by SECCOMP, but the "accept4" alternative is not available on old Android versions (2.3 and older). 
........
* android: Regenerated syscalls.
........
* android: Disabled usage of the "pselect6" and "ppoll" syscalls for arm-android. These syscalls are not available on old Android versions (2.3 or older).
........

git-svn-id: branches/fixes_3_2@40540 -
2018-12-13 18:08:42 +00:00
Károly Balogh
dbb91b5ef0 arm-netbsd: added platform define and dummy rtl files so the build passes for this platform. port not functional yet
git-svn-id: trunk@38412 -
2018-03-05 15:38:46 +00:00
florian
b24eb3cce7 * x86_64-linux uses now pascal init code
git-svn-id: trunk@38409 -
2018-03-04 18:22:04 +00:00
marco
14b14f3bda * fixes sysctl also with 3.0.4 as starting compiler.
M    rtl/bsd/sysctl.pp
M    compiler/systems.pas

git-svn-id: trunk@38250 -
2018-02-16 17:58:20 +00:00
pierre
cbe09c08bc Add new assmebler flag: af_no_stabs for assemblers that do not support stabs debug format
git-svn-id: trunk@38237 -
2018-02-14 15:08:29 +00:00
pierre
901f7ba81c handle system_i386_netbsd for default_target_set
git-svn-id: trunk@37695 -
2017-12-07 16:27:26 +00:00
nickysn
303309b28f + added support for 'external far' variables for i8086
git-svn-id: trunk@37532 -
2017-10-30 18:03:44 +00:00
Károly Balogh
fd00920006 m68k-palmos: internal sysinit, and patch target support so it works prc-tools-remix on a modern system
git-svn-id: trunk@37230 -
2017-09-16 21:34:55 +00:00
Károly Balogh
d115b0e8dc m68k: changed the internal name of 68k MacOS from system_m68k_mac to system_m68k_macos, so it's consistent with the PowerPC version. suggestion/request by Sven :)
git-svn-id: trunk@37035 -
2017-08-22 11:22:15 +00:00
Károly Balogh
e3ffeed1b2 m68k: removed traces of the never obsolete/ancient openbsd-m68k and never existed freebsd-m68k ports
git-svn-id: trunk@36877 -
2017-08-12 08:52:44 +00:00
Károly Balogh
a1c879d093 * some tabs-to-spaces and whitespace cleanup. no functional changes
git-svn-id: trunk@36868 -
2017-08-10 11:10:45 +00:00
pierre
3d5be0fd2d Add obsolete prefix to cpu_vm and system_vm_embedded, vm(vis) specfic code has been removed in rev 30836 dated 2015-05-09
git-svn-id: trunk@36823 -
2017-08-04 09:02:50 +00:00
pierre
f281ee339e Add obsolete prefix to cpu_ia64, system_ia64_win64 and system_ia64_embedded, ia64 specfic code has been removed in rev 30836 dated 2015-05-09
git-svn-id: trunk@36822 -
2017-08-04 08:54:34 +00:00
svenbarth
0f9451fbb7 * switch x86_64-linux to indirect entry, essentially allowing for the use of dynamic packages on that target
git-svn-id: trunk@36690 -
2017-07-08 20:39:36 +00:00
florian
8754858c2d * SPARC64 uses pascal startup code
git-svn-id: trunk@36426 -
2017-06-05 21:30:22 +00:00
florian
21e5f99faa + some basic compiler support for sparc64-linux
git-svn-id: trunk@36418 -
2017-06-04 22:07:24 +00:00
marco
b837f544de * only rtl needed fix.
git-svn-id: trunk@36163 -
2017-05-09 17:10:42 +00:00
marco
818a64952c * fix bootstrapping issue on freebsd x86_64
git-svn-id: trunk@36162 -
2017-05-09 17:07:44 +00:00
pierre
9fc17dc9e9 Fix FreeBSD cycle starting for release compiler after FPSysCtl interface change
git-svn-id: trunk@35575 -
2017-03-13 21:33:09 +00:00
Károly Balogh
319a397ae8 webassembly: reserve a system id and cpu id slot for the platform
git-svn-id: trunk@35497 -
2017-03-01 15:15:58 +00:00
marcus
ccf6504584 systems_aros, and systems_amigalike as collection for target defines
git-svn-id: trunk@35261 -
2017-01-08 11:34:27 +00:00
Károly Balogh
ab5b9982ee aros: enabled internal sysinit for i386-aros
git-svn-id: trunk@35238 -
2017-01-05 00:25:10 +00:00
Károly Balogh
8760ff96e1 atari: new pascal startup code, reworked build, also ParamStr/ParamCount works now
git-svn-id: trunk@35201 -
2016-12-27 08:14:34 +00:00
Károly Balogh
788c622307 amiga: pascal startup code for 68k and buildrtl refactor
git-svn-id: trunk@35068 -
2016-12-04 18:21:24 +00:00
Károly Balogh
f3e33a9dde morphos: new pascal-written internal startup code. also refactored the rtl build process for morphos
git-svn-id: trunk@35054 -
2016-12-04 00:15:41 +00:00
pierre
88f9d18a88 Enable checkpointer support for all linux systems
git-svn-id: trunk@34552 -
2016-09-21 13:20:13 +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
nickysn
20d2c74d8e + added system_i8086_embedded to the systems_embedded set
git-svn-id: trunk@34004 -
2016-06-18 00:00:18 +00:00
svenbarth
638339812e i386-win32 also has indirect entry information, so enable this in the compiler and disable the corresponding define in system.pp
git-svn-id: trunk@33985 -
2016-06-14 12:25:21 +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
Jonas Maebe
a59fc7c165 - disable attempts to generate debug info when using llvm for now
git-svn-id: trunk@33939 -
2016-06-09 22:00:02 +00:00
nickysn
c78f406d99 + implemented proper stack checking for the i8086
git-svn-id: trunk@33787 -
2016-05-24 23:57:47 +00:00
Károly Balogh
9d2258e4d9 * increase length of asmbin string from 8 chars to 16. this is needed to support standard vasm binary names on PPC and (soon) m68k
git-svn-id: trunk@33550 -
2016-04-23 15:51:26 +00:00
Jonas Maebe
61356a08e6 * fixed default target for a ppc64 -> ppc32 cross-compiler
git-svn-id: trunk@33536 -
2016-04-20 22:17:05 +00:00
svenbarth
123ef01a7a Forgot to commit this...
systems.pas:
  + add new constant systems_indirect_var_imports to denote all targets that /require/ indirect references for cross-unit variables accesses

git-svn-id: trunk@33284 -
2016-03-18 22:41:51 +00:00
pierre
f9011289b5 * Fix default OS target for i386 and sparc processor on solaris OS
git-svn-id: trunk@33010 -
2016-01-27 15:32:55 +00:00
svenbarth
e9d8fadb58 Merged revision(s) 28237 from branches/svenbarth/packages:
Add a new target flag which determines whether the target supports dynamic packages or not.

systems.pas:
  + new flag tf_supports_packages
pmodules.pas, proc_package:
  * error out when flag tf_supports_packages is not set for the current target
msg/errore.msg:
  + error message for when tf_supports_packages is missing and a package file is compiled
........

git-svn-id: trunk@32978 -
2016-01-22 15:35:41 +00:00
Jonas Maebe
9437d0e4d8 * Linux/AArch64 must also copy value parameters passed by reference on the
caller side, as this is an AArch64 ABI requirement (unrelated to Darwin).
    Fixes webtbs/tw3523 compiled with optimisations on Linux/AArch64

git-svn-id: trunk@32102 -
2015-10-20 12:58:53 +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
nickysn
bdfd23cc2e + new target switch "FarProcsPushOddBP", which causes the i8086 compiler to push
odd values of BP if the procedure is far. Enabled this by default for Win16.

git-svn-id: trunk@31569 -
2015-09-07 19:05:18 +00:00
nickysn
1b84fbee57 + add win16 to systems_all_windows; this enables the win32-like mangling of the
dll internal symbols names on win16 as well

git-svn-id: trunk@31537 -
2015-09-05 20:06:59 +00:00
Jonas Maebe
3f9f498e0d - removed leftover alpha, ia64 and vis code
git-svn-id: trunk@31446 -
2015-08-28 22:31:29 +00:00