Commit Graph

147 Commits

Author SHA1 Message Date
tom_at_work
c6d42528a2 * linker script: keep got and toc sections together; allows use of -Cg (PIC) in large programs (e.g. compiler) on powerpc64/linux
git-svn-id: trunk@8591 -
2007-09-21 00:05:51 +00:00
peter
725f1d7176 * remove wrong $esle x86_64 causing uninitialized variable
git-svn-id: trunk@8141 -
2007-07-22 20:57:05 +00:00
yury
fd6862acb9 * fixed debugging problem on arm-linux.
git-svn-id: trunk@7997 -
2007-07-09 21:17:07 +00:00
yury
b5e38fd2c8 * Fixed resources support on Linux when internal assembler is used.
* Enabled multiple resources support on Linux.

git-svn-id: trunk@7883 -
2007-06-30 23:01:22 +00:00
daniel
9adb202a92 * Rework the constexprint to allow operations from low(int64) to high(qword).
+ Some initial work on a formaldef which also carries the typinfo of a parameter.

git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
peter
cbb3667d73 * default dynamic linker for i386
git-svn-id: trunk@7367 -
2007-05-16 20:34:21 +00:00
pierre
0b8e1aa0b4 * fix for tw3661 failure for linux
git-svn-id: trunk@7122 -
2007-04-17 14:25:06 +00:00
florian
8c8042aaf0 * experimental fix for #8210
git-svn-id: trunk@6948 -
2007-03-21 19:19:30 +00:00
peter
8d9e138927 * removed -Bsymbolic, there was a namespace conflict between
the program and libraries that caused problems but that is now
    fixed by r6643

git-svn-id: trunk@6645 -
2007-02-25 16:44:02 +00:00
Jonas Maebe
90ea73a90b * more file handling from shortstring to tcmdstr
git-svn-id: trunk@6595 -
2007-02-21 21:54:54 +00:00
florian
4ceadcbc6e + infrastructure for target specific resourcefile classes
git-svn-id: trunk@6564 -
2007-02-19 19:02:21 +00:00
tom_at_work
106fe68ce6 * renamed TStringList to TCmdStrList, in general use TCmdStr instead of shortstrings to fix bug #6351
git-svn-id: trunk@6215 -
2007-01-26 22:29:39 +00:00
peter
323fc850b9 * fixed duplicate alias check
git-svn-id: trunk@6003 -
2007-01-16 18:31:27 +00:00
peter
c9703d43d5 * check also procedure aliases for duplicate names when
generating an export stub

git-svn-id: trunk@5993 -
2007-01-15 17:45:37 +00:00
florian
d4b4cb3096 * linux libraries must be build with -Bsymbolic to avoid symbol shadowing
git-svn-id: trunk@5833 -
2007-01-06 23:40:22 +00:00
florian
881fb4d392 * working linker script for x86_64 libraries
git-svn-id: trunk@5827 -
2007-01-06 18:39:09 +00:00
florian
481b3c5175 * amd64 linker script
git-svn-id: trunk@5825 -
2007-01-06 17:36:10 +00:00
florian
fd2032dab2 + start of embedded rtl
+ feature support in the compiler

git-svn-id: trunk@5628 -
2006-12-17 18:40:36 +00:00
micha
09c8d571a6 * fix shared library linking for linux (issue #7849, patch from Dominique Leducq)
git-svn-id: trunk@5433 -
2006-11-20 19:24:20 +00:00
yury
5f484a0f14 * section "fpc" was renamed to ".fpc".
* compiler version string is stored in .fpc.version section.
* debug start/end links are stored in .fpc.links section.
* fixed linking with eVC++ object files by internal linker.
* .fpc.links section is removed by internal linker before writing executable, because it is no longer needed.

git-svn-id: trunk@5305 -
2006-11-10 10:33:41 +00:00
peter
e17b424e28 * refactor procsym procdef list
git-svn-id: trunk@5210 -
2006-11-03 18:44:46 +00:00
florian
a8928cf22e * fixed linking against cgywin on win32
git-svn-id: trunk@5194 -
2006-11-03 09:08:53 +00:00
florian
6e2187c606 + windows uses now sysinit units as well
git-svn-id: trunk@5191 -
2006-11-02 23:20:35 +00:00
micha
12e8645889 * fix cross-compiling from i386/linux
git-svn-id: trunk@5186 -
2006-11-02 21:19:24 +00:00
micha
ad7d549965 + implement pascal inline asm start/halt code for linux/i386
git-svn-id: trunk@5181 -
2006-11-02 16:58:41 +00:00
peter
7a2e0da7bd * extra parameter for file searching functions
that indicate if the cache shall be used or not
  * fixed compile of non-x86 targets

git-svn-id: trunk@5115 -
2006-10-31 10:56:58 +00:00
peter
9f5d69ce31 * make win32 compile
git-svn-id: trunk@5103 -
2006-10-30 23:46:28 +00:00
peter
cb246eb781 * Remove dos,strings units, use SysUtils instead
* replace split* functions with Extract* functions
  * Add Directory caching

git-svn-id: trunk@5102 -
2006-10-30 23:29:35 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
bf1c390027 * refactor import library generation
* support variable imports in internal linker

git-svn-id: trunk@4544 -
2006-09-03 19:22:31 +00:00
Jonas Maebe
2429cdce1b * removed/conditionalised several unused variables
git-svn-id: trunk@4197 -
2006-07-14 20:05:46 +00:00
marco
0dc6fb52ea * linkordering for Linux
git-svn-id: trunk@3911 -
2006-06-21 15:49:39 +00:00
peter
d69ad5d84d * cleanup external/nolink options
git-svn-id: trunk@3375 -
2006-04-29 21:49:37 +00:00
peter
0ec2921bbe * split newasmsymbol to refasmsymbol and defineasmsymbol
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
peter
37c81492ad Merged revisions 2827,2831,2837,2932-2980 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

r2827 (peter)
  * smartlinking of resourcestrings


r2831 (peter)
  * process_ea 64bit fixes


r2837 (peter)
  * linker script

git-svn-id: trunk@2981 -
2006-03-19 22:12:52 +00:00
peter
b7fe6797bf Merged revisions 2921-2922,2925 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines

  * pass ObjectWriter to ObjectOuput

........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines

  * refactor asmdata

........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines

  * add cfi to asmdata
  * move asmlist, asmcfi, asmdata to own unit

........

git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
peter
785550d7e3 Merged revisions 2669,2673,2677,2683,2696,2699-2702,2704,2708,2712-2715,2718,2722-2723,2728-2730,2740,2769 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

........
r2669 | peter | 2006-02-23 09:31:21 +0100 (Thu, 23 Feb 2006) | 2 lines

  * add compiler dir

........
r2673 | peter | 2006-02-23 17:08:56 +0100 (Thu, 23 Feb 2006) | 2 lines

  * enabled more code

........
r2677 | peter | 2006-02-24 17:46:29 +0100 (Fri, 24 Feb 2006) | 2 lines

  * pe stub and headers

........
r2683 | peter | 2006-02-25 23:13:24 +0100 (Sat, 25 Feb 2006) | 2 lines

  * section options cleanup

........
r2696 | peter | 2006-02-26 20:27:41 +0100 (Sun, 26 Feb 2006) | 2 lines

  * fixed typecasts

........
r2699 | peter | 2006-02-26 23:04:32 +0100 (Sun, 26 Feb 2006) | 2 lines

  * simple linking works

........
r2700 | peter | 2006-02-27 09:44:50 +0100 (Mon, 27 Feb 2006) | 2 lines

  * internal linker script

........
r2701 | peter | 2006-02-27 12:05:12 +0100 (Mon, 27 Feb 2006) | 2 lines

  * make elf working again

........
r2702 | peter | 2006-02-27 14:04:43 +0100 (Mon, 27 Feb 2006) | 3 lines

  * disable dwarf for smartlinking with .a
  * fix section start in new .a file

........
r2704 | peter | 2006-02-27 18:30:43 +0100 (Mon, 27 Feb 2006) | 2 lines

  * stab section fixes

........
r2708 | peter | 2006-02-28 19:29:17 +0100 (Tue, 28 Feb 2006) | 2 lines

  * basic work to merge stabs sections

........
r2712 | peter | 2006-02-28 23:17:48 +0100 (Tue, 28 Feb 2006) | 2 lines

  * unload tmodules before linking

........
r2713 | peter | 2006-02-28 23:18:51 +0100 (Tue, 28 Feb 2006) | 2 lines

  * fixed stabs linking

........
r2714 | peter | 2006-02-28 23:19:19 +0100 (Tue, 28 Feb 2006) | 2 lines

  * show code and data size

........
r2715 | peter | 2006-02-28 23:25:35 +0100 (Tue, 28 Feb 2006) | 2 lines

  * unload .stabs from objdata after it is merged

........
r2718 | peter | 2006-03-01 12:24:38 +0100 (Wed, 01 Mar 2006) | 3 lines

  * memsize/datasize cleanup
  * check for exports/resources when adding module to linker

........
r2722 | peter | 2006-03-03 09:12:20 +0100 (Fri, 03 Mar 2006) | 2 lines

  * new TObjSymbol splitted from TAsmSymbol

........
r2723 | peter | 2006-03-03 14:08:55 +0100 (Fri, 03 Mar 2006) | 2 lines

  * coff fixes after recent objsymbol changes

........
r2728 | peter | 2006-03-03 22:43:04 +0100 (Fri, 03 Mar 2006) | 2 lines

  * fixed coff writer

........
r2729 | peter | 2006-03-04 01:10:32 +0100 (Sat, 04 Mar 2006) | 2 lines

  * fix read-only opening

........
r2730 | peter | 2006-03-04 01:11:16 +0100 (Sat, 04 Mar 2006) | 2 lines

  * Read edata from DLLs, basic work

........
r2740 | peter | 2006-03-04 21:13:43 +0100 (Sat, 04 Mar 2006) | 3 lines

  * deletedef added
  * don't remove defs from index when we are already clearing everything

........
r2769 | peter | 2006-03-05 21:42:33 +0100 (Sun, 05 Mar 2006) | 4 lines

  * moved TObj classes to ogbase
  * ObjSection.SymbolRefs and SymbolDefines list
  * DLL importing

........

git-svn-id: trunk@2771 -
2006-03-05 21:10:37 +00:00
Jonas Maebe
5f3e0b5398 * link_allways -> link_always
git-svn-id: trunk@2594 -
2006-02-15 14:36:30 +00:00
peter
0bbead8114 * use use_section_smartlink instead of af_smartlink_sections
git-svn-id: trunk@2336 -
2006-01-25 18:07:36 +00:00
florian
a11a177469 * generate pic'ed external jmps on 386 as well if necessary
git-svn-id: trunk@2092 -
2005-12-31 13:51:57 +00:00
florian
a1189a9d64 * exports info handling refactored, -E will be passed to ld if necessary
git-svn-id: trunk@1922 -
2005-12-10 22:00:33 +00:00
florian
dac22b4703 * fixed stupid typo in x86_64 pic code generation
git-svn-id: trunk@1731 -
2005-11-13 17:00:34 +00:00
florian
5907f99b6a * fixed previous commit
git-svn-id: trunk@1580 -
2005-10-23 16:59:59 +00:00
florian
a21b79d316 + plt for export jmps
git-svn-id: trunk@1579 -
2005-10-23 16:57:47 +00:00
tom_at_work
4db863d076 * first shared library link path fixes
* PowerPC64/Linux signal handler now differs between different FP exceptions

git-svn-id: trunk@1452 -
2005-10-17 21:30:21 +00:00
florian
ab88e4b882 * if no dyn. linker is found on linux, assume glibc21
git-svn-id: trunk@1269 -
2005-10-03 17:10:39 +00:00
peter
6bf3269b41 * powerpc64 port from Thomas Schatzl
git-svn-id: trunk@1193 -
2005-09-25 17:19:44 +00:00
peter
82faa95118 * lineinfo fixed for binary writer
* add tai_directive to replace old tai_direct calls
    in powerpc

git-svn-id: trunk@1139 -
2005-09-19 11:47:30 +00:00
peter
c3727c29b2 * rename al_code to al_procedures, al_bss/al_data to al_globals
* more work for section smartlinking

git-svn-id: trunk@1083 -
2005-09-15 06:51:12 +00:00
michael
a578c9b7ed + Also take resources in main program source into account
git-svn-id: trunk@990 -
2005-08-31 14:12:41 +00:00
michael
69d44da006 + Patch from colin western to let linker use internal script
git-svn-id: trunk@975 -
2005-08-29 10:32:12 +00:00
michael
3392189fb0 + Implemented resources for ELF
git-svn-id: trunk@956 -
2005-08-28 09:35:35 +00:00
florian
1c9a8396b7 * commented linker script generation for linux out, causes problems on some machines,
see bug #4317

git-svn-id: trunk@945 -
2005-08-26 21:01:28 +00:00
peter
05a628447f * put typedconsts in own asmlist to prevent mixing
array and string data
  * added al_rodata
  * renamed tasmlist enum names to include al_ prefix

git-svn-id: trunk@899 -
2005-08-17 08:42:52 +00:00
florian
a3e330526d * exporting of symbols from linux programs, i.e. exports clause in
programs allowed

git-svn-id: trunk@855 -
2005-08-13 20:34:28 +00:00
peter
3b2868feaf * remove ld 2.16 specific line
git-svn-id: trunk@778 -
2005-08-01 10:23:28 +00:00
daniel
9916f784ce * Use a linker script to put threadvars at the right location
git-svn-id: trunk@767 -
2005-07-30 19:14:41 +00:00
daniel
d05f58b604 * Group asmlists into array to be able to add
some of them more comfortably.
  * x86_64 compilation was broken, fixed.
  * Sparc compilation was broken, fixed.

git-svn-id: trunk@731 -
2005-07-23 13:44:32 +00:00
daniel
d57c048696 * Remove ifdef 1_0
* Add expirimental 32-bit x86_64 target to systems

git-svn-id: trunk@729 -
2005-07-23 08:37:26 +00:00
daniel
31d3e72e56 * Force linker target
git-svn-id: trunk@376 -
2005-06-10 21:12:01 +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
748df1810f * use lib64 for x86_64 2005-03-07 17:10:00 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
ee5cd11877 * generate export jmps in .text section 2005-01-10 15:56:13 +00:00
peter
dc363f29bc * maybequoted() added 2004-12-22 16:32:45 +00:00
florian
ce3f177339 * dyn. linker path fixed for x86_64 2004-12-19 14:03:16 +00:00
peter
14d25d278b mangledname setting moved to place after the complete proc declaration is read
import generation moved to place where body is also parsed (still gives problems with win32)
2004-11-17 22:21:35 +00:00
peter
6458bd0ce1 * tvarsym splitted 2004-11-08 22:09:58 +00:00
florian
7e778c5d78 * fixed dyn. linker handling 2004-11-05 12:27:27 +00:00
florian
aa23d79073 * path of dyn. linker on arm for linux fixed 2004-11-05 11:04:23 +00:00
peter
d24241b008 * gc-sections added when section smartlinking is used 2004-10-24 13:36:26 +00:00
mazen
e90d8a42e3 * USE_SYSUTILS merged successfully : cycles with and without defines
* Need to be optimized in performance
2004-10-14 18:16:17 +00:00
florian
05ca833859 * fixed dyn. linker name for sparc 2004-09-25 18:44:12 +00:00
mazen
da1c3fb6f0 * Fix error committing : previous version must be in branch USE_SYSUTILS 2004-09-22 15:25:14 +00:00
mazen
3b591c5575 * use SysUtils unit instead of Dos Unit 2004-09-22 15:14:37 +00:00
peter
33a834821f * paraloc branch merged 2004-09-21 17:25:12 +00:00
daniel
9b08a42919 * Uclibc detection 2004-07-08 14:42:54 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
florian
588e2c38bf * dwarf branch merged 2004-06-16 20:07:06 +00:00
florian
10e765329d * fixed arm compilation
* cleaned up code generation for exported linux procedures
2004-03-06 20:35:19 +00:00
peter
867f710d8d * misplaced $Ifdef 2004-03-04 16:32:59 +00:00
olle
4fecc1a56f * big transformation of Tai_[const_]Symbol.Create[data]name* 2004-03-02 00:36:32 +00:00
Jonas Maebe
2d40a5008b + support exported procedures for linuxppc
* refuse to compile systems/t_linux.pas if processor-specific  support
    for exported procedures is absent
  + generate .type and .size info for all currently defined linux-variants
    in aggas.pas
2004-01-03 13:51:05 +00:00
Jonas Maebe
e90bd0332a * default linker name for non-i386 and non-m68k 2004-01-01 15:34:50 +00:00
marco
0d72eee09e * librarysuffix + profiling 2003-10-30 18:35:30 +00:00
marco
d841f44994 * -Xd 2003-10-11 19:32:04 +00:00
marco
487650ab51 * -XP<prefix> support 2003-10-03 14:16:48 +00:00
florian
d2035fd6b4 * very basic stuff for the arm 2003-07-21 11:52:57 +00:00
peter
7f14891d66 * aktprocdef cleanup, aktprocdef is now always nil when parsing
a new procdef declaration
  * aktprocsym removed
  * lexlevel removed, use symtable.symtablelevel instead
  * implicit init/final code uses the normal genentry/genexit
  * funcret state checking updated for new funcret handling
2003-04-27 07:29:50 +00:00
peter
35801981d1 * .o files belonging to the unit are first searched in the same dir
as the .ppu
2003-04-26 09:16:07 +00:00
carl
9972293cee - remove extra ifdef i386 (avoir compilation errors) 2002-12-14 13:02:45 +00:00
peter
76f0990e8b * m68k library support 2002-12-06 17:51:43 +00:00
carl
64655be168 * memory optimization (3-4%) : cleanup of tai fields,
cleanup of tdef and tsym fields.
  * make it work for m68k
2002-11-17 16:31:55 +00:00
peter
bfd72ad5d5 * merged changes from 1.0.7 up to 04-11
- -V option for generating bug report tracing
    - more tracing for option parsing
    - errors for cdecl and high()
    - win32 import stabs
    - win32 records<=8 are returned in eax:edx (turned off by default)
    - heaptrc update
    - more info for temp management in .s file with EXTDEBUG
2002-11-15 01:58:45 +00:00
peter
a540ff122c * tdicationary.replace added to replace and item in a dictionary. This
is only allowed for the same name
  * varsyms are inserted in symtable before the types are parsed. This
    fixes the long standing "var longint : longint" bug
  - consume_idlist and idstringlist removed. The loops are inserted
    at the callers place and uses the symtable for duplicate id checking
2002-09-09 17:34:14 +00:00
carl
517c2566e8 * moved files to systems directory 2002-09-06 15:03:50 +00:00