Commit Graph

72 Commits

Author SHA1 Message Date
tom_at_work
b0bd6a13ec Fixed argc/argv/envp for arm/linux shared libraries. They are by default in registers a1/a2/a3 as per ABI: the first arguments when calling a method (in this case the FPC_SHARED_LIB_START) are passed via registers, not on the stack.
git-svn-id: trunk@17033 -
2011-02-27 17:22:29 +00:00
tom_at_work
a8bf34d3fc Correctly return to caller in ARM/Linux shared library startup code instead of fall-through to system exit.
git-svn-id: trunk@16982 -
2011-02-23 09:41:19 +00:00
tom_at_work
56d30e7da0 Set up environment variables and call Pascal initialization in arm/linux shared library initialization
git-svn-id: trunk@16981 -
2011-02-22 22:32:44 +00:00
daniel
3307d98c40 - Revert micro-exe mode for now.
git-svn-id: trunk@16170 -
2010-10-15 16:49:48 +00:00
daniel
2139a229d3 + If no unit is used, no symbol inside the system unit is used,
and no language features requiring initialization are used,
    do not initialize units, but just configure the fpu and
    signal handlers.

git-svn-id: trunk@16124 -
2010-10-10 17:40:39 +00:00
daniel
f4ec65add8 - Remove unused variable fpustate.
git-svn-id: trunk@16123 -
2010-10-10 15:09:05 +00:00
Jonas Maebe
eda7a8d672 * replaced the "quick exit" instruction sequences from the syscall variants
lacking "nostackframe" with branches to an exit label, because in that
    case the compiler-generated exit code must be executed to balance the
    stack (only done for EABI; should probably also be done for OABI, but
    I can't test that)

git-svn-id: trunk@16073 -
2010-10-01 15:06:57 +00:00
florian
3668be7ee4 * minimal implementation by Benjamin 'BeRo' Rosseaux
git-svn-id: trunk@15484 -
2010-06-27 11:07:35 +00:00
florian
5692c9e787 * tabs by spaces replaced
git-svn-id: trunk@15483 -
2010-06-27 11:04:27 +00:00
michael
e8a375c774 * Patch from Henry Vermaak to fix EABI kernel API for arm.
git-svn-id: trunk@13563 -
2009-08-20 08:00:50 +00:00
Jonas Maebe
f6d452c2c0 * remove the RTL's installed signal handlers at the end of the system
unit's initialization code in case we're in a library
  + implemented InquireSignal(), AbandonSignalHandler(), HookSignal() and
    UnhookSignal() in the sysutils unit
  * for Kylix compatibility, these routines support operating on
    SIGINT and SIGQUIT as well, although they are not hooked by default
    by FPC. The run time errors/exception codes for these signals are
    resp. 217 and 233 (same as in Kylix; I changed ENoWideStringSupport
    to 234).
  * changed the BSD syscall version of fpsigaction to use pointer
    rather than "var" arguments (compatible with other targets, and
    required to be able to pass nil arguments inside the system unit)
  -> together fixes mantis #12704

git-svn-id: trunk@13077 -
2009-05-02 09:40:44 +00:00
florian
4bc28de96f * use different haltproc for arm-linux-eabi, this should be cleaned up by using also pascal units for the startup code for arm-linux
git-svn-id: trunk@12808 -
2009-02-27 15:20:20 +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
micha
04d8ad3f17 * fix linux syscall numbers naming consistency #2 (overlooked some)
git-svn-id: trunk@12154 -
2008-11-17 21:48:02 +00:00
micha
176f545c3b * fix linux syscall numbers naming consistency (fixes x86_64 unit linux build)
git-svn-id: trunk@12153 -
2008-11-17 21:46:34 +00:00
florian
10e0f0e387 * keep stack aligned at 8 byte boundary inside the startup code
git-svn-id: trunk@11934 -
2008-10-18 21:20:54 +00:00
florian
2cbdf2cd61 + arm linux syscalls updated
git-svn-id: trunk@11930 -
2008-10-18 18:57:20 +00:00
florian
037f95c451 * fixed syscall0 for arm eabi
git-svn-id: trunk@11914 -
2008-10-18 13:49:39 +00:00
florian
3b5699e488 * removed packed, the stat record should be c packed
* deprecated old fields as it is done on other architectures

git-svn-id: trunk@11912 -
2008-10-18 13:48:17 +00:00
yury
9ef6e6bc24 * Fixed comments for EABI syscalls.
git-svn-id: trunk@11200 -
2008-06-05 07:47:45 +00:00
florian
3341418267 * fixed eabi syscalls: preserve non-volative registers
git-svn-id: trunk@11197 -
2008-06-04 18:18:08 +00:00
florian
72dd35a0d5 * set syscall base properly for eabi, submitted by Henry Vermaak
git-svn-id: trunk@11179 -
2008-06-03 13:29:16 +00:00
florian
c544d97de9 * fix edsp instructions detection
git-svn-id: trunk@10458 -
2008-03-07 21:51:14 +00:00
micha
a9972548b0 + add arm-linux/uclibc startup code
git-svn-id: trunk@9725 -
2008-01-12 17:08:43 +00:00
florian
3036e1052f + gprof startup code
git-svn-id: trunk@9482 -
2007-12-16 17:36:46 +00:00
florian
0cb965fdbe * comment in eabi code fixed
git-svn-id: trunk@9163 -
2007-11-08 21:03:14 +00:00
florian
4328d626cf + eabi syscall support
git-svn-id: trunk@9153 -
2007-11-07 20:42:25 +00:00
micha
07ab578088 * fix loading of exit code in haltproc for armeb, exitcode is 32 bit
git-svn-id: trunk@8949 -
2007-10-26 18:39:04 +00:00
florian
ea61793ca2 * fix by Carsten Bager
git-svn-id: trunk@8211 -
2007-08-02 07:44:32 +00:00
yury
b0834a01a0 * Don't use changed registers list. Save used registers directly in asm code.
git-svn-id: trunk@8201 -
2007-07-30 17:26:45 +00:00
yury
4b8777eb5a * Optimize syscalls for arm-linux.
git-svn-id: trunk@8191 -
2007-07-29 15:57:15 +00:00
yury
27db4ec55a * Final fix for threadvar access in syscall helpers on arm-linux. It fixes bugs #9191 and #9290.
git-svn-id: trunk@8189 -
2007-07-29 15:21:44 +00:00
yury
a24803c63d * Fixed threadvar access in syscall helpers on arm-linux. Bug #9290.
git-svn-id: trunk@8186 -
2007-07-29 12:01:22 +00:00
florian
edebd84426 * fixed arm compilation
git-svn-id: trunk@6993 -
2007-03-25 10:57:17 +00:00
daniel
ae15527637 * Make ARM stat structure backwards compatible too.
git-svn-id: trunk@6965 -
2007-03-23 23:10:09 +00:00
florian
31c9a91af0 + edsp detection for arm-linux
git-svn-id: trunk@6429 -
2007-02-11 16:21:04 +00:00
florian
9fe04923ad * don't destroy registers in syscall helpers
git-svn-id: trunk@6342 -
2007-02-04 20:43:05 +00:00
florian
f9eefa118c * newer kernels don't need anymore those braindead sigaction handler calling conventions
git-svn-id: trunk@6287 -
2007-02-01 20:07:17 +00:00
micha
b14c83a7e1 * stat records differ too much: use stat include file
git-svn-id: trunk@5126 -
2006-10-31 15:45:22 +00:00
peter
cfc810420a * fixed base
git-svn-id: trunk@2645 -
2006-02-20 08:22:27 +00:00
marco
05bb11b2ba * syscalls regenerated by Neli.
git-svn-id: trunk@2552 -
2006-02-12 21:45:34 +00:00
peter
94f2b1d941 * add initialstkptr to get the stackpointer at startup before
PASCALMAIN is called so the main body framepointer is seen as
    a valid pointer with backtracing

git-svn-id: trunk@2266 -
2006-01-12 09:29:57 +00:00
florian
d4bb99a5fb + runerror 214: bus error/data misaligment
git-svn-id: trunk@1263 -
2005-10-03 08:25:20 +00:00
peter
4ace790492 * remove $Log
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
16b121f8c4 * unblock signal in signalhandler, remove the sigprocmask call
from setjmp
2005-04-24 21:19:22 +00:00
florian
314fe14247 + routines in baseunix can be overriden by processor specifics in bsyscall.inc 2005-03-03 20:58:38 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
7fb8c3dfbd * signal cleanup for linux
* sigactionhandler instead of tsigaction for bsds
  * sigcontext moved to cpu dir
2005-01-30 18:01:15 +00:00