Commit Graph

11 Commits

Author SHA1 Message Date
sergei
ead8d0c1d4 * Clean up i386-Linux startup code for shared libraries:
* The initialization code is a normal function called by runtime linker, stack layout at process startup is irrelevant.
  * Stack pointer can be replaced by frame pointer, they are just a few bytes away.
  * IsLibrary is set to true in fpc_libinitializeunits and therefore assigning it here is redundant.
  * The exitcode is passed as argument to haltproc, so messing with PIC is not necessary.

git-svn-id: trunk@26759 -
2014-02-13 04:54:21 +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
84cc38f4af * moved {$asmmode att} to top of file (mantis #17377)
git-svn-id: trunk@15961 -
2010-09-09 19:46:59 +00:00
Jonas Maebe
38c09952a3 * don't exit the program in the exit code of shared libraries under Linux
(mantis #14958)

git-svn-id: trunk@14184 -
2009-11-15 13:50:14 +00:00
Jonas Maebe
92ff07deaf * several fixes by Pierre Pede (parts of his patch to mantis #12492)
o fixed gprof under linux/i386
    o fixed pic-compilation of the linux/i386 rtl
    o initialisation of linux shared libraries is now possible with pic-code

git-svn-id: trunk@13703 -
2009-09-12 21:57:41 +00:00
Jonas Maebe
3eec0569be * fixed shared library initialisation for FPC-compiled libraries
when linked to FPC-compiled programs under linux/i386 which
    do not use libc + test (mantis #8730). Programs which do use
    libc and other linux targets have to be fixed in a similar
    way until we properly fix everything by not exporting
    any symbols at all from shared libraries by default (and
    only those appearing in the "exports" section).

    Finalisation does not work yet either for FPC-compiled
    programs on linux/anything.

git-svn-id: trunk@10495 -
2008-03-15 23:28:09 +00:00
mazen
0f73d54ac8 + Added ATT assmebler mode directive to override any default in fpc.cfg. Otherwise we need to override it in makefile.
git-svn-id: trunk@7258 -
2007-05-04 10:59:30 +00:00
peter
d1d7c59244 * fixed compile after exitcode size change
git-svn-id: trunk@6559 -
2007-02-19 16:11:01 +00:00
florian
74c9eefc99 * fixed bootstrapping with 2.0.4
git-svn-id: trunk@5837 -
2007-01-07 10:19:10 +00:00
florian
c59c9cdfae * don't build .as with 2.1.1 on i386
* first fix to library entry code

git-svn-id: trunk@5836 -
2007-01-07 10:04:19 +00:00
micha
6bfff9702e + add linux/i386 start units
git-svn-id: trunk@5183 -
2006-11-02 17:49:36 +00:00