Jonas Maebe
ba9d54beb5
* don't mangle symbol names for llvm intrinsics
...
git-svn-id: trunk@31406 -
2015-08-24 22:06:53 +00:00
Jonas Maebe
7a8921a060
* define CPULLVM when using the LLVM backend (in addtion to the CPUXXX define
...
for the actual target architecture)
git-svn-id: trunk@31405 -
2015-08-24 22:06:50 +00:00
Jonas Maebe
052af9200e
* support external declarations for compilerprocs
...
o since there is no separate implementation for them, we have to immediately
convert the symbol to lower case after parsing the declaration
git-svn-id: trunk@31404 -
2015-08-24 22:06:47 +00:00
nickysn
faa9362b44
+ calculate and fill "min extra paragraphs" in the MZ header
...
git-svn-id: trunk@31403 -
2015-08-24 21:33:26 +00:00
nickysn
6665cec157
* put the startup code first also when using the internal linker in i8086 far
...
code memory models
git-svn-id: trunk@31402 -
2015-08-24 21:13:57 +00:00
nickysn
2100714ebe
+ implemented RELOC_SEG and RELOC_SEGREL fixups for a symbol target
...
* bug fix in the MZ relocation generated for RELOC_DGROUP/RELOC_DGROUPREL
relocations
* reduced code duplication in TMZExeOutput.DoRelocationFixup a little by using
nested procedures
git-svn-id: trunk@31401 -
2015-08-24 21:12:26 +00:00
joost
9ce6e8f801
* Removed the fpmkunit_bootstrap target because it forces building fpmake in
...
all circumstances which breaks 'make sourcezip'. In fact a revert of
r29249.
git-svn-id: trunk@31400 -
2015-08-24 20:29:38 +00:00
nickysn
0eb1cd157a
* don't subtract two from the end of the stack segment when calculating the
...
initial SP value - seems to be wlink compatible
git-svn-id: trunk@31399 -
2015-08-24 20:22:01 +00:00
nickysn
2431b6e63b
* i8086-msdos internal linker: use a different approach for finding the stack
...
segment - either its class name must be 'STACK' (wlink compatible) or its
combine type must be scStack (tlink compatible)
git-svn-id: trunk@31398 -
2015-08-24 20:18:44 +00:00
nickysn
a3dd5c7c17
* set stack alignment to 16 in the msdos startup code
...
git-svn-id: trunk@31397 -
2015-08-24 19:58:08 +00:00
nickysn
d2a47a7c69
+ fill the initial stack address in the MZ exe header
...
git-svn-id: trunk@31396 -
2015-08-24 18:28:00 +00:00
nickysn
ea27b97f3a
* fixed the order of the _NULL and _AFTERNULL segments
...
git-svn-id: trunk@31395 -
2015-08-24 18:14:55 +00:00
nickysn
18cdc08c26
+ prevent certain special omf sections from being smartlinked out
...
git-svn-id: trunk@31394 -
2015-08-24 18:10:50 +00:00
nickysn
fe69e3324c
+ implemented RELOC_DGROUP and RELOC_DGROUPREL in TMZExeOutput.DoRelocationFixup
...
git-svn-id: trunk@31393 -
2015-08-24 17:55:44 +00:00
nickysn
0eda4c954d
+ handle omf references to a segment with frame method=target
...
git-svn-id: trunk@31392 -
2015-08-24 17:34:04 +00:00
nickysn
d8f88599de
+ support REL_DGROUP and REL_DGROUPREL in TExeOutput.RemoveUnreferencedSections
...
git-svn-id: trunk@31391 -
2015-08-24 17:25:33 +00:00
nickysn
e88dc71983
+ import DGROUP omf fixup references
...
git-svn-id: trunk@31390 -
2015-08-24 16:53:44 +00:00
nickysn
73ea3b7ff1
+ implemented fixups targeting a logical segment offset in the omf internal linker
...
git-svn-id: trunk@31389 -
2015-08-24 15:50:47 +00:00
nickysn
3d3eb6c472
* stop with an error when encountering omf fixups that aren't yet implemented
...
git-svn-id: trunk@31388 -
2015-08-24 15:20:59 +00:00
nickysn
d7f08866e5
* use the TMZExeOutput.MZFlatContentSection property in TInternalLinkerMsDos.GetTotalSizeForSegmentClass
...
instead of finding the exe section by name
git-svn-id: trunk@31387 -
2015-08-24 15:09:35 +00:00
nickysn
449506ffb7
+ write mz exe section data
...
+ fill MaxExtraParagraphs in the MZ header with $ffff by default, to prevent DOS
from loading the program at the highest possible address
git-svn-id: trunk@31386 -
2015-08-24 15:02:37 +00:00
nickysn
fdbfaacec8
+ calculate the MZ loadable image size (excluding bss, stack and heap)
...
+ only write the loadable image size number of bytes to .com files
git-svn-id: trunk@31385 -
2015-08-24 14:42:43 +00:00
nickysn
a7e63581b4
+ i8086-msdos internal lniker: find the program entry point and fill it in the
...
mz exe header; also write it in the linker map file
git-svn-id: trunk@31384 -
2015-08-24 14:22:17 +00:00
nickysn
e0bd25191e
+ also take into account the frame method when converting the omf start address to a symbol
...
git-svn-id: trunk@31383 -
2015-08-24 13:46:37 +00:00
nickysn
cff94639d5
* i8086-msdos internal linker: improved handling of the _edata and _end internal
...
symbols - add them to 'DGROUP' and define them in a section with class 'BSS'
git-svn-id: trunk@31382 -
2015-08-24 12:39:39 +00:00
marco
5d2a54136a
* see also r31267, mantis #28289 , change calculation.
...
git-svn-id: trunk@31381 -
2015-08-24 12:03:56 +00:00
nickysn
989afc6ecb
* show section addresses relative to the segment's MemBasePos in the i8086-msdos
...
internal linker map file
git-svn-id: trunk@31380 -
2015-08-24 01:31:16 +00:00
nickysn
368ba47d6e
* support writing more than 1024 zeros in tobjectwriter.writezeros
...
git-svn-id: trunk@31379 -
2015-08-24 01:09:53 +00:00
nickysn
fa8841d575
+ support omf group-relative fixups pointing to external symbol (e.g.
...
'wrt dgroup' references)
- removed debug code from TMZExeOutput.DoRelocationFixup
git-svn-id: trunk@31378 -
2015-08-24 00:55:56 +00:00
nickysn
173713ce57
* preserve original order (as specified in the link script) of omf sections with
...
the same name. This ensures that the startup code always comes first, which is
important for .com files
git-svn-id: trunk@31377 -
2015-08-24 00:30:24 +00:00
nickysn
f182a98d7b
* also preserve TObjSymbol.group when updating external with global symbols
...
git-svn-id: trunk@31376 -
2015-08-24 00:25:37 +00:00
nickysn
f08e98bfd0
+ partial implementation of DoRelocationFixups for the i8086-msdos internal linker
...
git-svn-id: trunk@31375 -
2015-08-24 00:23:56 +00:00
nickysn
78cbb1ba2b
+ implemented writing .com files in the i8086-msdos internal linker
...
git-svn-id: trunk@31374 -
2015-08-23 22:06:30 +00:00
nickysn
fa9a1f706b
+ i8086-msdos internal linker: calculate the final segments and groups locations
...
in memory (incl. segment bases) before DoRelocations; list segments and groups
in the map file as well
git-svn-id: trunk@31373 -
2015-08-23 21:36:24 +00:00
Jonas Maebe
e015643f5e
* don't use cross-binutils prefix when targeting the JVM
...
git-svn-id: trunk@31372 -
2015-08-23 15:27:15 +00:00
nickysn
5dc42404cf
* capitalize omf segment class names, as that's how other 16-bit compilers write them
...
git-svn-id: trunk@31371 -
2015-08-22 19:07:04 +00:00
nickysn
1643c5f073
* also capitalize 'DGROUP' in the msdos startup code as well after r31369
...
git-svn-id: trunk@31370 -
2015-08-22 18:56:36 +00:00
nickysn
e09ab50724
* capitalize the group name 'DGROUP' in the generated omf object files, because
...
that's how it is usually written by other 16-bit compilers
git-svn-id: trunk@31369 -
2015-08-22 16:28:36 +00:00
Jonas Maebe
db4119ee08
* fix test on non-Windows systems (patch by Olivier Coursière, mantis#28556)
...
git-svn-id: trunk@31368 -
2015-08-22 15:27:51 +00:00
michael
cb05e1dbf4
* Fix working of fpdocclasstree in case of multiple files
...
git-svn-id: trunk@31367 -
2015-08-22 13:49:25 +00:00
michael
5227a35d05
* Fix hints and warnings
...
git-svn-id: trunk@31366 -
2015-08-22 13:17:53 +00:00
michael
5e7f08a69c
* Fix memory leaks
...
git-svn-id: trunk@31365 -
2015-08-22 13:11:38 +00:00
marco
f671c270b1
* new file belonging to previous commit
...
git-svn-id: trunk@31364 -
2015-08-22 12:24:07 +00:00
nickysn
70677e3e44
+ added a descendant class for omf section groups, which adds base address, size
...
and a method to calculate these new fields
git-svn-id: trunk@31363 -
2015-08-22 12:23:49 +00:00
marco
f59b88f6f8
* Add support for libraries with C linking under Haiku
...
Patch by Olivier, mantis #28558
git-svn-id: trunk@31362 -
2015-08-22 12:23:15 +00:00
marco
70df08d5be
* patch from #28557 by Oliver, correct libroot for Haiku
...
git-svn-id: trunk@31361 -
2015-08-22 12:21:46 +00:00
nickysn
b74a104e48
* instantiate TObjSectionGroup through a class type, to allow using a child
...
class for certain object formats
git-svn-id: trunk@31360 -
2015-08-22 11:27:22 +00:00
nickysn
9aeb94676c
+ added virtual method to tobjsection for returning a string representation of
...
the section's base address for the internal linker map file
* implemented it for omf sections to return the address in 'seg:ofs' format
git-svn-id: trunk@31359 -
2015-08-21 16:21:16 +00:00
marco
dbd3b0284d
* system.fpd had no eol etc properties set.
...
git-svn-id: trunk@31358 -
2015-08-21 14:24:21 +00:00
nickysn
a762532ae1
* changed the MemPos field in TObjSection and TExeSection from aword to qword:
...
1) aword follows the ALU size of the CPU, not the address size
2) it is already qword in TExeOutput and its methods and there's already
MaxMemPos to check if the limits of the platform/exe format have been
exceeded
git-svn-id: trunk@31357 -
2015-08-21 14:13:27 +00:00