Commit Graph

1733 Commits

Author SHA1 Message Date
pierre
b279f24f26 Add FPC_SOFT_FPUX80 and FPC_SOFT_FPU128 define handling
git-svn-id: trunk@39732 -
2018-09-11 08:02:48 +00:00
Jeppe Johansen
ba8245dccb argc is a longint.
git-svn-id: branches/laksen/riscv_new@39696 -
2018-09-01 19:46:04 +00:00
marco
315fe21718 * deprecations, remove oldlinux.
git-svn-id: trunk@39663 -
2018-08-23 07:57:56 +00:00
marco
1e60364572 * another stat file cleanup.
git-svn-id: trunk@39655 -
2018-08-20 14:27:59 +00:00
marco
bffbff73e1 * remove deprecated parts linux stat records (FPC 1.0 leftovers)
git-svn-id: trunk@39644 -
2018-08-19 15:10:22 +00:00
marco
d143ab60e1 * regenned makefile without date/rev components for easier merging.
git-svn-id: trunk@39630 -
2018-08-18 15:06:25 +00:00
pierre
bc75e8547e Improve detect_linuxvcs to allow parsing of /proc/PID/stat even with spaces in exe name
git-svn-id: trunk@39579 -
2018-08-06 16:10:28 +00:00
Jeppe Johansen
90d5f5e760 Added library search paths.
Removed GP and TP from allocatable registers for now. GP should not be overwritten.
Ported dllprt0.as
Fixed register usage in cprt0.as

git-svn-id: branches/laksen/riscv_new@39522 -
2018-07-29 13:08:15 +00:00
Jeppe Johansen
27ab039366 Fixed _fini and _init references in cprt0.as
Add RiscV to fcl-res and fpcres.
Check that constant is a valid imm12 when doing overflow checking.

git-svn-id: branches/laksen/riscv_new@39494 -
2018-07-23 11:40:55 +00:00
florian
65a415c13e * fix assembling with official binutils
* fix compilation on 32 bit hosts
+ compile with -Sew

git-svn-id: branches/laksen/riscv_new@39482 -
2018-07-22 13:10:24 +00:00
Jeppe Johansen
dcb0f4fdb5 Fixed setjmp that overwrote a callee save register.
Disable relaxation for the gp load part of the prt0 code.
Fixed up some syscall definitions.

git-svn-id: branches/laksen/riscv_new@39478 -
2018-07-20 15:00:14 +00:00
Jeppe Johansen
2aaf481d89 Regenerated makefiles.
git-svn-id: branches/laksen/riscv_new@39476 -
2018-07-20 10:40:57 +00:00
Jeppe Johansen
6352328f3a Update packages with information about RiscV.
Fix g_external_wrapper, since it uses a register.
Fixed calling of gas.
Ported cprt0.

git-svn-id: branches/laksen/riscv_new@39475 -
2018-07-20 10:40:28 +00:00
Jeppe Johansen
ceb38833f2 Added RiscV32/64 target, from a cleaned up version of branches/laksen/riscv/trunk.
git-svn-id: branches/laksen/riscv_new@39474 -
2018-07-20 08:21:15 +00:00
nickysn
65d8836952 * updated dependencies of unit ports (objpas and x86 is no longer required on
certain platforms) and regenerated makefiles

git-svn-id: trunk@39373 -
2018-07-04 00:33:12 +00:00
pierre
d6be56e225 Regenerated Makefile's after addition of ppas and ppaslink script removal in rev 38745
git-svn-id: trunk@38750 -
2018-04-12 15:23:03 +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
florian
05a92d55e4 * partly reverted #38320, the code was correct
git-svn-id: trunk@38402 -
2018-03-03 16:41:52 +00:00
florian
c6af4e42c0 * ensure that the stack is aligned after haltproc, should resolve #33311
git-svn-id: trunk@38400 -
2018-03-03 16:14:51 +00:00
florian
92776e1864 * keep stack aligned when using profiler stubs
git-svn-id: trunk@38320 -
2018-02-23 19:35:20 +00:00
michael
94b6fe6ad3 * added O_CLOEXEC
git-svn-id: trunk@38100 -
2018-02-02 10:33:13 +00:00
pierre
595938637e Add explicit FPC_SYSTEM_OPT variable that is only used for compilation of system units, thus allowing to explicitly pass -Sf option
git-svn-id: trunk@37890 -
2018-01-02 16:50:58 +00:00
florian
5bedaf11f4 * fpcmake.inc and Makefiles renerated after last commit
git-svn-id: trunk@37834 -
2017-12-27 15:08:18 +00:00
Károly Balogh
a3a7285df4 linux: an attempt to clean up and fix syscall calling conventions for ftruncate64, pread64 and pwrite64 on platforms which use aligned register pairs to pass the 64bit parameters
git-svn-id: trunk@37719 -
2017-12-12 02:39:45 +00:00
Károly Balogh
961757934a linux: removed some old junk which was commented out over a decade ago
git-svn-id: trunk@37718 -
2017-12-12 02:24:40 +00:00
Károly Balogh
ee37c507d0 tabs to spaces. no functional changes
git-svn-id: trunk@37717 -
2017-12-12 02:03:34 +00:00
yury
af0fdea815 * Android: Include list of supported syscalls for each CPU.
Adjust Linux RTL to work with supported Android syscalls. 
  It should fix issues with Android 8.

git-svn-id: trunk@37480 -
2017-10-17 18:15:02 +00:00
yury
dbf482d62b * Fixed version of FpSysCall() with 6 params for Linux with PIC.
git-svn-id: trunk@37479 -
2017-10-17 18:03:29 +00:00
svenbarth
ddf91a4d19 * regenerate Makefile after r37337
git-svn-id: trunk@37338 -
2017-09-27 20:18:45 +00:00
svenbarth
c38efb692b * fix parallel compilation of Linux RTL: the software FPU units require the ObjPas unit
git-svn-id: trunk@37337 -
2017-09-27 20:18:15 +00:00
pierre
a706c3900f Fix loading of argc field (longint type) of TEntryInformation.OS record
git-svn-id: trunk@37329 -
2017-09-26 21:02:45 +00:00
pierre
e7fe9ddfbc Add units softfpu, sfpux80, sfpu128, ufloatx80 and ufloat128 to list of units for all linux targets
git-svn-id: trunk@37258 -
2017-09-19 21:01:08 +00:00
florian
50fab14389 * TIOCtlRequest is 64 bit on sparc64
git-svn-id: trunk@36946 -
2017-08-20 15:21:50 +00:00
pierre
dc0e8de99f Fix PIC code
git-svn-id: trunk@36791 -
2017-07-26 14:52:12 +00:00
pierre
1c3996979a Fix PIC code
git-svn-id: trunk@36790 -
2017-07-26 14:47:28 +00:00
pierre
5491cf9519 Force PIC usage for sparc64 CPU
git-svn-id: trunk@36789 -
2017-07-26 14:46:41 +00:00
pierre
031c28c58e Add -KPIC to ASSHAREDOPT for sparc and sparc64
git-svn-id: trunk@36785 -
2017-07-25 06:51:06 +00:00
pierre
1ff7f061ff Sparc64 uses the same value as sparc for O_APPEND
git-svn-id: trunk@36782 -
2017-07-24 10:01:14 +00:00
florian
3b48c6e316 * sparc64 uses the same different signal numbers as sparc32 on linux
git-svn-id: trunk@36764 -
2017-07-22 13:26:48 +00:00
florian
d4e6824862 * sparc64-linux has to use syscall_nr_gettimeofday instead of syscall_nr_time as well
git-svn-id: trunk@36761 -
2017-07-21 19:51:44 +00:00
florian
10f52f1cac * fixed fppipe for sparc64-linux
git-svn-id: trunk@36760 -
2017-07-21 19:32:52 +00:00
pierre
0c404918e1 sparc64 also uses 0245408 TCGETS constant
git-svn-id: trunk@36728 -
2017-07-13 22:01:28 +00:00
florian
13e76ccc01 * some type declarations for sparc64-linux fixed
git-svn-id: trunk@36714 -
2017-07-09 20:28:30 +00:00
florian
4a107ac079 * cosmetics
git-svn-id: trunk@36713 -
2017-07-09 20:28:28 +00:00
michael
52cd572cec * Use specific type for TFPSet elements
git-svn-id: trunk@36710 -
2017-07-09 14:47:27 +00:00
svenbarth
c66daeb69f * forgot to correctly enable bootstrapping from direct to indirect entry for x86_64-linux
git-svn-id: trunk@36695 -
2017-07-08 21:40:50 +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
svenbarth
533789777b * prepare Linux RTL for a platform-by-platform switch to indirect entry information, including the capability to bootstrap a direct entry target to an indirect one while using the assembly startup files of the indirect one
git-svn-id: trunk@36689 -
2017-07-08 20:37:43 +00:00
florian
47bdbb2d1f * fix Fpfstat as Fpstat has been fixed in r36664, sparc64 needs explictly an stat64 call for 64 bit stat
git-svn-id: trunk@36674 -
2017-07-07 22:18:14 +00:00
florian
8ce6140476 * initial implementation of c startup code for sparc64-linux
git-svn-id: trunk@36673 -
2017-07-07 22:18:13 +00:00
florian
568d6d1486 * revert r36666 as it interferes with r36664
git-svn-id: trunk@36671 -
2017-07-07 20:30:05 +00:00
pierre
de3f4e72ed Try to get a correct stat record
git-svn-id: trunk@36666 -
2017-07-07 15:10:46 +00:00
florian
e2226598ab * force usage of stat64 on sparc64
* always use packrecords c for the stat records on sparc64

git-svn-id: trunk@36664 -
2017-07-07 12:22:49 +00:00
pierre
b6d2c7ee69 Fix fprt_sigreturn_stub for sparc64 cpu
git-svn-id: trunk@36654 -
2017-07-06 07:17:25 +00:00
pierre
56039f2fc6 Share SPARC signal constants with SPARC64 cpu
git-svn-id: trunk@36652 -
2017-07-05 21:23:11 +00:00
pierre
ece9547ea7 * Sparc64 CPU also uses Fprt_sigreturn for extra rt_sigaction syscall
git-svn-id: trunk@36651 -
2017-07-05 20:59:39 +00:00
florian
0d296001a8 * argv is a longint in fpc
git-svn-id: trunk@36640 -
2017-07-03 20:49:08 +00:00
florian
7fd359bb78 * setup of envp fixed
* use STACK_BIAS constant

git-svn-id: trunk@36544 -
2017-06-19 21:18:01 +00:00
florian
1e619a3479 * syscall error and parameter handling for sparc64 fixed
git-svn-id: trunk@36543 -
2017-06-19 21:18:00 +00:00
florian
e78dbbccc4 * adaption of some rtl code for sparc64-linux
git-svn-id: trunk@36516 -
2017-06-18 15:44:30 +00:00
florian
c7d4a64ae4 + basic sparc64-linux specific rtl code, based on the sparc-linux one
git-svn-id: trunk@36515 -
2017-06-18 15:44:06 +00:00
florian
278d33f611 + first implementation of sparc64-linux startup code, partly dummies
git-svn-id: trunk@36512 -
2017-06-18 15:39:37 +00:00
Károly Balogh
78970fa3c4 linux/m68k: enable inlining and compiler mul32to64 in the softfpu
git-svn-id: trunk@36490 -
2017-06-12 13:05:09 +00:00
nickysn
748428b637 + support the KOI8-R and KOI8-U Cyrillic encodings
git-svn-id: trunk@36445 -
2017-06-07 13:51:53 +00:00
nickysn
fce5fbd726 + added cp3021 (Bulgarian MIK) code page support
git-svn-id: trunk@36444 -
2017-06-07 13:19:20 +00:00
florian
4036ecb5b5 + stat record definition for SPARC64
git-svn-id: trunk@36432 -
2017-06-05 21:35:06 +00:00
florian
8754858c2d * SPARC64 uses pascal startup code
git-svn-id: trunk@36426 -
2017-06-05 21:30:22 +00:00
nickysn
396eebbfb5 + added support for iso8859-[3,4,6,7,8,9,10,11,13,14,15,16]
* charmap .txt files in rtl/ucmaps for iso8859-[1,2,5] also updated

git-svn-id: trunk@36425 -
2017-06-05 16:36:24 +00:00
nickysn
35be7348fb + added code pages 737, 775, 857, 860, 861, 862, 863, 864, 865 and 869
git-svn-id: trunk@36423 -
2017-06-05 14:25:15 +00:00
nickysn
ef25c33d69 + added cp855 to the implicit unit list in the rtl makefiles
git-svn-id: trunk@36421 -
2017-06-05 12:19:01 +00:00
florian
96f28cbb11 * move sysnr.inc to a rtl/linux/sparcgen dir
* adapt makefiles to reflect this

git-svn-id: trunk@36411 -
2017-06-03 20:52:41 +00:00
pierre
bc3adb9078 Regenerated after: Add -32 to ASTARGET for sparc 32-bit and add sparc64 ASTARGET modifications
git-svn-id: trunk@36390 -
2017-06-01 13:35:32 +00:00
pierre
4a5f5f84d0 Add -32 to ASTARGET for sparc 32-bit and add sparc64 ASTARGET modifications
git-svn-id: trunk@36389 -
2017-06-01 13:34:47 +00:00
florian
a3aa2616fc * Makefiles regenerated
git-svn-id: trunk@36382 -
2017-05-31 20:59:41 +00:00
pierre
ac3b9ac979 Avoid placing COMPILER_UNITTARGETDIR in the prerequisite list of assmebler files,
as those directories are modified by any new file in that directory, which
  lead to repeated (and useless) recompilation of assembler files on linux systems.

git-svn-id: trunk@36173 -
2017-05-10 13:06:39 +00:00
pierre
17b2671213 Regenerate all Makefile's after changes related to FPCDIR checks
git-svn-id: trunk@35833 -
2017-04-18 14:15:47 +00:00
michael
5bbf299c22 * Fix bug #31555, disbablefile locking
git-svn-id: trunk@35611 -
2017-03-17 07:58:59 +00:00
marco
7ef8f00100 * more occured -> occurred spelling fixes.
git-svn-id: trunk@35130 -
2016-12-14 20:05:21 +00:00
Jonas Maebe
e5a1231931 * updated FSF address (mantis #30198, patch by Paul Gevers)
git-svn-id: trunk@34598 -
2016-10-02 12:56:59 +00:00
michael
480d22a4aa * Reallocmem uses installed memory manager
git-svn-id: trunk@34487 -
2016-09-10 17:56:17 +00:00
michael
bd775267ca * Fix bug #30310
git-svn-id: trunk@34484 -
2016-09-10 17:08:07 +00:00
yury
419c6ce61e * android:
+ API to write to the Android system log. 
  + API to redirect standard output and error to the Android system log. The redirection is performed automatically for shared libraries loaded by Java applications.

git-svn-id: trunk@34352 -
2016-08-19 20:21:52 +00:00
yury
c2ba68df44 * android: Added functions GetSystemProperty() and SystemApiLevel().
git-svn-id: trunk@34346 -
2016-08-19 14:50:18 +00:00
pierre
b2467eae3b * Pass exitcode correctly down to __libc_start_main in _haltproc
git-svn-id: trunk@34258 -
2016-08-09 06:50:54 +00:00
svenbarth
7f5352280d Fix si_g.inc for x86_64-linux:
* it's 'atexit' and not '__libc_atexit'
* initialstkptr is a global symbol so it needs to be loaded using GOTPCREL

git-svn-id: trunk@34235 -
2016-07-29 22:03:54 +00:00
marco
c335a3ea6e * change TDIR fields to longint. Should have been abandonned long ago.
git-svn-id: trunk@34041 -
2016-06-30 18:51:05 +00:00
marco
5038b944f1 * fix for bug #30331
git-svn-id: trunk@34039 -
2016-06-30 18:45:33 +00:00
nickysn
5306ee552b * regenerated makefiles with latest fpcmake
git-svn-id: trunk@34008 -
2016-06-18 01:00:45 +00:00
nickysn
a58dd988a4 * regenerate makefiles after the fpcmake update
git-svn-id: trunk@34002 -
2016-06-17 22:05:59 +00:00
svenbarth
266eccde9f Merge revision(s) 32484 from branches/svenbarth/packages
Move PascalMain external from the si_*.inc files to a new include file si_impl.inc that's included in the implementation sections of the si_*.pp units

git-svn-id: trunk@33970 -
2016-06-12 16:49:56 +00:00
Jonas Maebe
69ad962544 * fixed cross-assembling the Linux/ppc32 loader files on a 64 bit Linux host
git-svn-id: trunk@33538 -
2016-04-20 22:17:11 +00:00
marco
2221e4e4bd * fix timespec=nil for -dgeneric_linux_syscalls (aarch64) case.
git-svn-id: trunk@33392 -
2016-03-30 19:21:05 +00:00
marco
9c03d0d6ba * fix for mantis #25931 return error 5 on EBUSY and ENOTDIR
git-svn-id: trunk@33262 -
2016-03-17 21:14:07 +00:00
florian
84bb46a35d + cpu unit for arm (linux only so far)
git-svn-id: trunk@33184 -
2016-03-06 13:33:20 +00:00
Jonas Maebe
9e3c7f175f * load the address of envp before storing it, so we don't overwrite argv
with envp (fixes bug in fix from r32528, mantis #29587 for FPC 3.0.x
    -- FPC 3.1.1+ uses si_*.inc instead, which already works correctly)

git-svn-id: trunk@33045 -
2016-02-04 11:37:29 +00:00
Jonas Maebe
2e64c63993 * fixed dependencies for lineinfo unit after r33007
* also made lnfodwrf dependent on lineinfo for all platforms,
    because both units implicitly depend on the exeinfo unit
    and if both are compiled at the same time they can fall
    over each other while writing its .ppu or .s file

git-svn-id: trunk@33039 -
2016-02-01 22:52:50 +00:00
sergei
77285b63eb * i386-linux: reworked and cleaned up libc-related startup code:
* Don't replace intended initialization routines with dummy ones, so libc can properly initialize itself.
  * Profiling support (si_c21g.pp) only needs to contain the __gmon_start__ procedure, so it can reuse the entire si_c21.inc, and separate si_21g.inc file is no longer needed.

git-svn-id: trunk@32984 -
2016-01-22 17:11:08 +00:00
sergei
53d7018482 * removed 'nostackframe' attribute, since on i386 assembler procedures reference non-register parameters relative to ebp.
git-svn-id: trunk@32981 -
2016-01-22 16:35:20 +00:00
sergei
7381c66161 - i386-linux RTL: removed assembler startup files, which are unused since version 2.0.x.
git-svn-id: trunk@32972 -
2016-01-21 15:11:31 +00:00
Jonas Maebe
ec4342cc65 * fixed parallel building after r32857
git-svn-id: trunk@32924 -
2016-01-11 15:27:48 +00:00