Michaël Van Canneyt
859b100da6
* Convert symversions to dyn array of word
2025-03-20 17:01:31 +01:00
Michaël Van Canneyt
8b816782c3
* Convert strtab to dyn array of ansichar
2025-03-20 17:01:31 +01:00
Michaël Van Canneyt
21276413ea
* Convert shstrtab to dyn array of ansichar
2025-03-20 17:01:31 +01:00
Alligator-1
9caabdc4e7
Immediately set the capacity
2024-07-08 20:17:11 +00:00
florian
bf57750436
* cosmetics
2024-02-19 22:27:06 +01:00
Pierre Muller
728fb7c58c
Set ba variable upfront to avoid warning treated as error
2024-02-19 22:12:46 +01:00
Pierre Muller
79ed0db624
Avoid warning about unintialized 'ba' variable
2024-02-19 20:37:35 +01:00
Pierre Muller
f3e03f0483
Fix tabs
2024-02-19 20:19:35 +01:00
Pierre Muller
1d1e070ad2
Support cross-endian compilation for telfobjdata.writereloc method
2024-02-19 20:19:35 +01:00
florian
4867d48e99
+ support for .debug_loc and .debuc_loclist sections
2024-01-16 23:24:37 +01:00
pierre
17e3c31b7e
Fix gotpcrel relocation for TESTQ x86_64 instruction
...
git-svn-id: trunk@49252 -
2021-04-23 21:52:24 +00:00
florian
245b58c249
+ support for arm attributes
...
* abi notes fixed
git-svn-id: trunk@43157 -
2019-10-09 17:45:40 +00:00
florian
56d91b4ca7
+ support tls threadvars with the internal assembler
...
git-svn-id: trunk@43070 -
2019-09-25 21:19:03 +00:00
florian
14b7eaa46f
+ x86-64: implemented support for relocation needed by tls threadvars in the binary elf writer
...
git-svn-id: trunk@43067 -
2019-09-25 21:18:59 +00:00
Jonas Maebe
3fee990218
* on Mach-O, PECOFF and ELF platforms, write local symbols as hidden/
...
private_extern (or plain global in case of PECOFF, as the effect is
the same there): visible across object files, but they become local
when linked into a binary/library. This enables cross-unit inlining
of functions accessig implementation-only symbols.
git-svn-id: trunk@42340 -
2019-07-07 21:33:43 +00:00
Jonas Maebe
1b6425176b
* synchronised with trunk till r42049
...
git-svn-id: branches/debug_eh@42050 -
2019-05-12 18:44:05 +00:00
Jonas Maebe
281b3ad276
* fix case completeness and unreachable code warnings in compiler that would
...
be introduced by the next commit
git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +00:00
florian
27ab140dd9
+ gcc_except_table section
...
+ support exception related sections in the default LD linker script
git-svn-id: branches/debug_eh@41285 -
2019-02-10 17:57:48 +00:00
nickysn
b34ab6b279
* The MaybeSwapXXXHeader functions moved from ogelf to the elfbase unit, so they
...
can be used by TMZExeOutput.writeDebugElf as well
git-svn-id: trunk@39217 -
2018-06-14 13:01:08 +00:00
marco
9a136836fd
* elf section alignment, patch by Florian, mantis #32900
...
M ogelf.pas
git-svn-id: trunk@38251 -
2018-02-16 18:01:29 +00:00
nickysn
2af5c9d508
* changed type used for section alignment from byte/shortint to longint, so the
...
internal object writer and the internal linker support object files with
sections with alignment >=256
git-svn-id: trunk@37518 -
2017-10-25 15:47:29 +00:00
florian
b1dff29cbf
* removed unused units
...
git-svn-id: trunk@36165 -
2017-05-09 19:53:14 +00:00
Jonas Maebe
5ac99f62e9
+ AT_METADATA symbol type for data that is unrelated to the program
...
exectuion (such as debug information). It's handled the same as
AT_DATA by assemblers/assembler writers.
git-svn-id: trunk@34149 -
2016-07-19 11:57:31 +00:00
florian
90b284e169
+ generate .debug_aranges sections for dwarf debug info: enables faster address to debug info translation
...
git-svn-id: trunk@33454 -
2016-04-08 20:19:59 +00:00
Károly Balogh
e0c21b6f8b
ARM: avoid some range check errors, while running a compiler compiled with -CR
...
git-svn-id: trunk@33257 -
2016-03-16 10:08:44 +00:00
Jeppe Johansen
0251263234
Move some of the local reloc calculation out of aasmcpu, and into COFF and ELF writers.
...
git-svn-id: trunk@32867 -
2016-01-06 23:15:08 +00:00
yury
11a9ff4a43
* Removed unused vars for mipsel compiler.
...
git-svn-id: trunk@31745 -
2015-09-17 15:46:30 +00:00
Jonas Maebe
991e1f49bd
* store a pointer to the used tasminfo record in every assembler writer, so
...
that we can use assembler writers with different conventions from the
currently set target_asm (e.g. an x86 assembler writer for inline assembly
in LLVM IR)
git-svn-id: trunk@31628 -
2015-09-12 23:32:13 +00:00
nickysn
d204aaab72
* refactored "ar" object writer creation in the internal assembler to allow
...
having different implementations of an internal "ar" writer
git-svn-id: trunk@30667 -
2015-04-19 16:35:16 +00:00
Jeppe Johansen
47dbec3111
Rebase to trunk revision
...
git-svn-id: branches/laksen/armiw@29708 -
2015-02-15 16:08:18 +00:00
sergei
53c943c5a1
+ ELF linker: support writing DT_PREINIT_ARRAY/DT_INIT_ARRAY/DT_FINI_ARRAY dynamic tags. Still misses a lot of sanity checks, and does not sort entries.
...
git-svn-id: trunk@29561 -
2015-01-26 20:34:16 +00:00
Jeppe Johansen
71cdedea82
Add missing NOP, and B instruction forms.
...
Move ThumbFunc flag from section to symbol.
Make .w forms optional the other way around. If .w is explicitly put on an instruction the assembler should always chose a wide form.
git-svn-id: branches/laksen/armiw@29341 -
2014-12-27 13:23:02 +00:00
Jeppe Johansen
de00a1d76d
Implement simple support for .thumb_func in the ELF output.
...
git-svn-id: branches/laksen/armiw@29340 -
2014-12-27 11:02:38 +00:00
Jeppe Johansen
901275b4a1
Switch back to emitting BLX instructions and fix calculation of constant offsets(should rarely/never happen).
...
Add missing fields to other elf targets.
git-svn-id: branches/laksen/armiw@29286 -
2014-12-14 16:28:35 +00:00
Jeppe Johansen
fe0cdcfb2e
Add a small function to handle encoding of CPU specific ELF flags. This is used to encode EABI version for ARM.
...
git-svn-id: branches/laksen/armiw@29281 -
2014-12-13 17:16:25 +00:00
marco
2578514853
* first dragonfly patch (existing most). Mantis #27091
...
git-svn-id: trunk@29213 -
2014-12-07 20:27:02 +00:00
sergei
a4053370fc
* ELF linker: track relocation style (REL or RELA) of each input section and use it instead of global default on MIPS targets. This fixes internal linking of tests/test/units/system/tres*.pp.
...
git-svn-id: trunk@29070 -
2014-11-13 22:10:53 +00:00
nickysn
7cfd7a66cd
+ create a special 'heap' segment with reserved space equal to heapsize (i.e.
...
the value set by -Ch or the second parameter to the $M directive). This is
equivalent to the heapmin value in Turbo Pascal 7 and ensures that the program
has at least this amount of heap space available (otherwise DOS will show a
'not enough memory' error and will refuse to load the program).
git-svn-id: trunk@28002 -
2014-06-19 14:14:01 +00:00
nickysn
3cc8ff11e3
+ generate the stack segment for i8086 far data memory models from within fpc
...
itself (instead of having a fixed 16k stack in the startup code). This allows
setting the stack size in these models with the -Cs option.
git-svn-id: trunk@27820 -
2014-05-27 23:29:50 +00:00
sergei
e951887154
* Fixed linking of non-PIC code to indirect functions in shared objects.
...
git-svn-id: trunk@27496 -
2014-04-06 23:04:57 +00:00
sergei
3c5345cb4e
+ Write 'non-executable stack' marker to object files also on FreeBSD (verified for version 9.0 for i386).
...
+ Write correct ABI value into ELF header for FreeBSD.
git-svn-id: trunk@26745 -
2014-02-10 05:46:46 +00:00
florian
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
...
git-svn-id: trunk@26161 -
2013-12-01 17:02:08 +00:00
Jonas Maebe
864a72ee69
* fixed (harmless) range errors
...
git-svn-id: trunk@26067 -
2013-11-12 16:11:17 +00:00
sergei
1f8a67f552
+ Property TObjSymbol.ObjData, allows to access owning TObjData for external/common symbols, i.e. ones with ObjSection=nil.
...
* For common symbols, report objdata of the original ObjSymbol, not of the resolving one, so the map file shows where it comes from.
+ TElfExeOutput.OrderOrphanSections method, handles object sections not mentioned in script similar to ld.
- t_linux.pas: removed sections that are not part of ld scripts, they are now handled by OrderOrphanSections.
git-svn-id: trunk@25184 -
2013-07-30 09:23:48 +00:00
sergei
5b6e50c9da
* It is incorrect to use var_align() in linker code: it depends on current_settings.alignment, which is valid only while compiling, not while linking. Replaced with size_2_align().
...
git-svn-id: trunk@25182 -
2013-07-29 15:51:30 +00:00
sergei
e7f6b06969
+ MIPS internal linker: support TLS IE/LE and GPREL32 relocations, is now able to link tw14265.
...
git-svn-id: trunk@25181 -
2013-07-29 09:30:40 +00:00
sergei
1fea5a82c1
* Replaced oso_disabled flag by TExeSection.Disabled boolean property. Makes code a bit nicer to read.
...
git-svn-id: trunk@24361 -
2013-04-28 20:29:49 +00:00
sergei
e4949e3044
+ ELF linker: finish support for imported symbol versions.
...
git-svn-id: trunk@24056 -
2013-03-29 15:17:48 +00:00
sergei
6245bfd74f
+ ELF linker: load e_ident and e_flags from ELF header into properties of TElfObjData, necessary for targets that must be able to link together object files of different flavors.
...
git-svn-id: trunk@23821 -
2013-03-14 08:34:17 +00:00
sergei
6fcd9979dd
+ MIPS: doing progress with linker, implemented processing of local symbols in PIC code and stuff needed to link shared libraries.
...
git-svn-id: trunk@23690 -
2013-03-04 20:48:33 +00:00