Description: unit ogbase unmerged
This file as text.
(active) Revisions in this set:
4357caaad882705021c49bab78882f65fe52a612,281b3ad276d8b66085fde25139123a574ef06afd,ee1be45df9e25993bc8c8289e7b8bd814064197a
3fee990218b4648ab020d85f783959b1d8fb0dd4,3ebcef32ba62ad3f66c33e983b6c6b62b516bb31,14b7eaa46f2d80ec8db5efbd5fb71d4469002504
56d91b4ca79540828c8af3950d6187cc210d17a2,03dfc615dc450f38fae15cd06188dcd56b877616,16163b74ec9daf00f87075afea385e54f9813e5b
8ecdb2e9ca9b32f1334f237612411e7e17e5d1e6,245b58c249b4b29ffc54e6c1e50a1474cc84f7b1,e5de269664c7029770bb2e4092cd28a9a31545cf
7f8800eeb15ef2db9dbe43b91db194b0e0d0e53f,137f392c66a298d58a03c3ca336470e5a5274efa,99ce957111b021c5739d96df65ebb11fb274e71e
2a1d26cc905b54f2880fb3f2c51c32a300f32bbe,5b941e3cea65f1bc58bc2189d6eb371b3c3441d4,61358b1eaad0f8b5e605d58983b43c1864a38da0
4fed57adc13e75bc70c1495273cf9caa295c0d07,997184778a01718472c29a67e70ceadb32194e47,616cb382922c96086cdf5f9298f690af5d003429
e8af7427bb0ead629eea25ac86556605b1dea252,9c54d753f56bab86b9b451c8f4415cd041357a36,47ba80a54525b5ef8662f28282e4ccd73fc7d698
985220d94c6092336c956ed5dea464eb80c6c0ce,17d583a419b65457783dc7b816297b69309157f0
Clicking a revision will expand files
* Removed unused local vars.
* fix case completeness and unreachable code warnings in compiler that would
be introduced by the next commit
Merge: b9c16b98d1 b08b6a17bd
* reintegrated debug_eh branch
o the LLVM compiler is now functional for Darwin/x86-64, and also (but less
tested) for Linux/x86-64, Linux/AArch64 and Linux/ARMHF. See
https://wiki.freepascal.org/LLVM for details and the current state
o Dwarf-eh-based "zero-cost" exceptions are available with the regular
code generators for Linux/x86-64 and Linux/i386 if the compiler is
compiled with -dpsabieh
* 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.
+ introduced TExeSection.MemPosStr - a virtual method for converting the
section's memory position to string for the linker map file. This can be
overriden e.g. for segmented exe formats.
+ x86-64: implemented support for relocation needed by tls threadvars in the binary elf writer
+ support tls threadvars with the internal assembler
+ new relocations for arm tls
+ support for the gnu2 general-dynamic tls model on arm, use it instead of the gnu one as the gnu2 one can be relaxed (access optimizations by the linker)
+ support pic relocations in the internal assembler writer
+ dwarf support for tls threadvars
+ support for arm attributes
* abi notes fixed
* change TObjData.sectiontype2options to a class function so that it can be called without an instance of TObjData
+ add a method to TObjData to retrieve the TSectionProcBits and TSectionFlags values for a given section type
* parameters declared as out must be initialized
* fixed default value for progbits
* use translateable error messages for undefined symbols and also report in which object file the symbol was first found
+ implement relocations for Aarch64 for the internal COFF linker
* it's rather useless that sectiontype2options is virtual as we can't use a class type, not to mention that the classes doing the overriding are for the internal assemblers/linkers, but we need it also for external
Thus we move the functionality of the overloads to the basemethod and remove the virtual directive; maybe we'll find a better solution in the future...
+ lots of fixes to the Z80 internal asm writer
+ call ApplyAsmSymbolRestrictions for symbols that should be exported from ar files
* fixed the TRelocDataInt to avoid truncating 16-bit addresses to 8-bit on 8-bit CPUs
* the len parameter of TObjData.alloc changed to TObjSectionOfs
* ImageBase changed to qword (same type as CurrMemPos) to avoid truncating to 8-bit on Z80
* the len parameter of TObjData.writebytes changed to TObjSectionOfs to avoid 8-bit truncation on Z80
* Added virtual function TObjSection.GetAltName to be able to specify additional section name by descendants.
* OMF: Use the name of the first global symbol as an addition section name. This name is visible in the linker map file and helps tracking of section references.
* fix for Mantis
0037559: the adjustment of the section type should only be done for internal COFF writers
(inactive) Revisions in this set ccb169b0f1b3214c6b09b3bd89492e2ce0626fa1
* correctly handle PE COMDAT sections: like for the Comdat groups in ELF files the unused symbols need to be converted to externals so that relocations are handled correctly