Commit Graph

76 Commits

Author SHA1 Message Date
peter
c767df348f * idata must be aligned on 4 bytes to prevent a corrupt
idata2 section where the entries are always 20 bytes

git-svn-id: trunk@8725 -
2007-10-02 18:41:47 +00:00
Jonas Maebe
70c2414daa * split off sec_rodata_norel from sec_rodata, and only put constant data
without relocations in sec_rodata_norel. It should be possible to make
    this new section read-only on all platforms, although currently it
    is only done for darwin, and for non-pic code written using the
    -Aas assembler writer.

    Most platforms also have a special section for "constant but with
    relocations" data, but such a section is currently only used for
    Darwin (others still use plain .data sections for that, like they
    did before)

git-svn-id: trunk@8650 -
2007-09-26 15:49:01 +00:00
florian
4151029ee5 + .fini section support
git-svn-id: trunk@8174 -
2007-07-28 08:40:10 +00:00
yury
84306f80e9 * fixed tw8391.pp for i386.
git-svn-id: trunk@7768 -
2007-06-21 23:22:48 +00:00
yury
38b8731ba0 * Restored relocs generation for dlls by internal linker. It fixes bug #9048.
* It is possible to generate relocs for exe with internal linker using -WB switch.

git-svn-id: trunk@7743 -
2007-06-20 15:47:10 +00:00
yury
df36385c89 * fixed mantis #8887. (please merge to fixes).
git-svn-id: trunk@7356 -
2007-05-16 09:04:34 +00:00
yury
821c91c230 * fix Mantis #8760: do not put actually empty sections in executable by internal linker.
* .bss section no longer required by internal linker.

git-svn-id: trunk@7316 -
2007-05-12 13:32:52 +00:00
yury
b2605b8ff6 * Internal linker now correctly links to gcc import libraries. It fixes win32 IDE with debugger support.
git-svn-id: trunk@7278 -
2007-05-05 19:21:30 +00:00
pierre
115d95004f * try to fix cygwin import lib problem in internal linker
git-svn-id: trunk@7270 -
2007-05-04 22:49:56 +00:00
Jonas Maebe
21f87ef1de * fixed instances of passing properties as var parameter
git-svn-id: trunk@7249 -
2007-05-03 11:02:38 +00:00
peter
29ffdefacb * secrel32 relocation support required by dwarf2 under windows
git-svn-id: trunk@7172 -
2007-04-25 09:06:36 +00:00
yury
7547f3a0c0 * Allow @ and ? characters in imported function name when AS is used. It fixes bug #8391.
+ test.

git-svn-id: trunk@6669 -
2007-02-26 17:51:38 +00:00
peter
9f3de7e809 * -Xg generates a separate file with the debug info sections
git-svn-id: trunk@6628 -
2007-02-24 15:06:31 +00:00
peter
30e78b71c8 * fix IE after duplicate asm symbol
git-svn-id: trunk@5992 -
2007-01-15 17:45:01 +00:00
florian
c238bb15d1 * .init section support
git-svn-id: trunk@5835 -
2007-01-07 10:03:52 +00:00
yury
d8d25c2489 * fixed memory leaks in compiler.
git-svn-id: trunk@5369 -
2006-11-14 09:32:58 +00:00
peter
f21f055373 * change hashobjectlist.Delete() calls to :=nil now that the .Delete() behaviour
is changed

git-svn-id: trunk@5365 -
2006-11-13 22:04:21 +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
yury
11fcbcc663 * properly align common symbols.
git-svn-id: trunk@5264 -
2006-11-06 00:22:33 +00:00
yury
a993ddbe5c * removed dbgstabs usage.
git-svn-id: trunk@5253 -
2006-11-05 20:49:15 +00:00
yury
4e3c5e202a * Internal linker sorts only .idata section and removes stabs of unused functions. It seems all debug info problems with internal linker are solved now.
* Properly arrange arm-wince exception sections.

git-svn-id: trunk@5249 -
2006-11-05 17:13:31 +00:00
peter
4df4a4f7d1 * dynamic growth of blocks in tdynamicarray
* revert to old expand algorithms for fplist 

git-svn-id: trunk@5204 -
2006-11-03 13:44:44 +00:00
peter
5cd8775d38 * show only totals for memdebug
git-svn-id: trunk@5196 -
2006-11-03 11:24:02 +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
peter
070b86a512 * order of named sections added
* fix debugstart and debugend labels

git-svn-id: trunk@5098 -
2006-10-30 22:34:22 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
71665dbc4c * initial addr_pic support for x86_64 binary writer
git-svn-id: trunk@4848 -
2006-10-10 18:36:41 +00:00
micha
d704af7216 fix compilation for {$T+} linux/win
git-svn-id: trunk@4794 -
2006-10-04 20:43:55 +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
yury
5aef17adae * Internal linker now creates .reloc section for DLLs.
git-svn-id: trunk@4046 -
2006-07-01 21:45:54 +00:00
yury
03f892719d * added import by ordinal number in internal linker.
git-svn-id: trunk@4037 -
2006-07-01 15:53:18 +00:00
peter
f5c1839ff0 * support static library (.a) linking
* move win linker script to t_win
  * rename some win32 to win in t_win

git-svn-id: trunk@3991 -
2006-06-28 20:26:53 +00:00
yury
01edb71190 * internal linker removes imports referenced by unused code.
git-svn-id: trunk@3832 -
2006-06-09 20:57:48 +00:00
yury
550626ef34 - Removed need of assembler startup files for wince. Now compiler directly creates .pdata section needed for arm-wince exception handling.
git-svn-id: trunk@3764 -
2006-06-02 08:36:25 +00:00
yury
2bf89e2040 * Internal linker support for wince.
git-svn-id: trunk@3712 -
2006-05-27 22:49:22 +00:00
peter
a57708e63d * DLL support
git-svn-id: trunk@3623 -
2006-05-21 21:07:49 +00:00
peter
392ef22a7f * win imports are only by importname not anymore per procdef
git-svn-id: trunk@3622 -
2006-05-21 20:40:18 +00:00
peter
6af8b52132 * define common symbol when it is not available
git-svn-id: trunk@3447 -
2006-05-07 09:08:55 +00:00
florian
cae35add51 + reading of winx64 coff object files generated by MS-VC
git-svn-id: trunk@3426 -
2006-05-06 07:59:37 +00:00
florian
83f4ab0f4a * align data, bss and text sections to 16 byte boundaries
git-svn-id: trunk@3286 -
2006-04-19 21:54:43 +00:00
peter
ead6c6a29a * fix writing of long stabstr entries
git-svn-id: trunk@3279 -
2006-04-19 08:21:49 +00:00
peter
ce58e15393 * fix coff section names to fix resourcestrings with
the external linker
  * create import libraries for dll imports, this uses
    the new objdata framework to generate the binary
    object files directly without needing an assembler pass
  * store import_dll and import_name in ppu
  * external linker uses import libraries
  * internal linker uses import info from symtables,
    no dlls are needed anymore

git-svn-id: trunk@3255 -
2006-04-17 20:48:22 +00:00
peter
cc67c1ea2d * RELOC_ABSOLUTE32 for all non-x86_64
git-svn-id: trunk@3161 -
2006-04-07 08:29:29 +00:00
peter
945cb29f24 * TFPHashList.Pack now also packs the items
* Free ObjRelocations

git-svn-id: trunk@3153 -
2006-04-05 12:36:17 +00:00
florian
a69ae7ca34 * fixed win32->win64 cross compilation
* fixed win64 import section generation in linker module

git-svn-id: trunk@3143 -
2006-04-04 20:43:34 +00:00
peter
d542fd97fb * use TFPHashObjectList instead of TDictionary
git-svn-id: trunk@3133 -
2006-04-02 21:18:04 +00:00
peter
fc6e4adf74 Merged revisions 3068,3070,3114 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

r3068 | peter | 2006-03-28 15:02:06 +0100 (Tue, 28 Mar 2006) | 2 lines

  * Add new TFPHashList and TFPHashObjectList

r3070 | peter | 2006-03-29 07:39:04 +0100 (Wed, 29 Mar 2006) | 2 lines

  * fix compile

r3114 | peter | 2006-04-01 23:47:50 +0100 (Sat, 01 Apr 2006) | 3 lines

  * remove debug writelns
  * enable vtable optimizer with -Xv

git-svn-id: trunk@3116 -
2006-04-02 00:13:03 +00:00
peter
be88cd47b2 Merged revisions 3090-3113 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

r3090 | peter | 2006-03-30 15:10:15 +0100 (Thu, 30 Mar 2006) | 2 lines

  * infrastructure for .vtable directives

r3094 | peter | 2006-03-31 10:01:48 +0100 (Fri, 31 Mar 2006) | 2 lines

  * vtable directive fixes

r3113 | peter | 2006-04-01 22:49:57 +0100 (Sat, 01 Apr 2006) | 2 lines

  * Smart VTable linking using Symbols

git-svn-id: trunk@3115 -
2006-04-02 00:11:17 +00:00
florian
1d46c65496 * enabled internal linker for winx64
* more descriptive error messages for the coff reader
* fixed coff magic for x64

git-svn-id: trunk@3104 -
2006-04-01 12:39:15 +00:00
peter
7f4b051f99 * support subsystem
* fixed stab
  * always keep .rsrc section

git-svn-id: trunk@3089 -
2006-03-30 11:24:17 +00:00