Jonas Maebe
ce598c15ec
* factored out the conditions under which add nodes need to perform
...
overflow checks
o in particular ensure that cpu-specific overrides don't perform overflow
checks when nf_internal is set
git-svn-id: trunk@42573 -
2019-08-03 12:19:50 +00:00
nickysn
c70f2c63cd
+ set the initial SS:SP in the NewExe header
...
git-svn-id: trunk@42572 -
2019-08-03 01:04:32 +00:00
nickysn
dbafff24fe
+ fill the program entry point address in the NewExe header
...
git-svn-id: trunk@42571 -
2019-08-03 00:59:02 +00:00
nickysn
901dde5fa5
+ fill the auto data segment number in the NewExe header
...
git-svn-id: trunk@42570 -
2019-08-03 00:42:56 +00:00
nickysn
34b3af7e92
* reset CurrMemPos after each NewExeSection to ensure each segment starts at 0 offset
...
git-svn-id: trunk@42569 -
2019-08-02 23:22:59 +00:00
nickysn
868030b3fe
+ adapted TOmfObjSection.MemPosStr to output segment:offset for NewExe executables
...
git-svn-id: trunk@42568 -
2019-08-02 23:01:39 +00:00
nickysn
2c176be2fd
+ adapted TOmfObjSymbol.AddressStr to show correct segment:offset for NewExe files as well
...
git-svn-id: trunk@42567 -
2019-08-02 22:47:44 +00:00
nickysn
b739d79f9b
* combine the data, bss, stack and heap into the same NewExe segment
...
git-svn-id: trunk@42566 -
2019-08-02 16:53:16 +00:00
nickysn
1258439767
+ added an TNewExeSection.MemPosStr override that outputs a segment:offset string
...
git-svn-id: trunk@42565 -
2019-08-02 16:14:54 +00:00
nickysn
3ebcef32ba
+ 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.
git-svn-id: trunk@42564 -
2019-08-02 16:05:37 +00:00
nickysn
8e436e6335
+ add a segment number (MemBasePos) to TNewExeSection
...
git-svn-id: trunk@42563 -
2019-08-02 14:47:19 +00:00
nickysn
30e7406be3
* override MemPos_Start for the NewExe exe output and perform the whole MemPos
...
stage inside of it, because the linker script contains only dummy section
names and thus none of the sections get their MemPos set, while using the
default implementation
git-svn-id: trunk@42562 -
2019-08-02 14:32:40 +00:00
nickysn
c32ddf42eb
* create NewExe sections, corresponding to 64kb segments
...
git-svn-id: trunk@42561 -
2019-08-02 14:20:02 +00:00
svenbarth
6952ab5baf
* fix for Mantis #35918 : don't set the mangledname for the attribute's constructor function; let the compiler do its job instead
...
git-svn-id: trunk@42560 -
2019-08-02 14:07:17 +00:00
svenbarth
3d585db43d
* fix for Mantis #35906 : use more accurate modified time from the FindData on Windows for the Timestamp
...
git-svn-id: trunk@42559 -
2019-08-02 13:16:17 +00:00
svenbarth
7809930b08
* fix for Mantis #35903 : apply patch by J. Gareth Moreton to update the copyright year to 2019
...
git-svn-id: trunk@42558 -
2019-08-02 13:16:14 +00:00
svenbarth
50fec47b9a
* fix for Mantis #35919 : apply patch by Maciej Izak
...
git-svn-id: trunk@42557 -
2019-08-02 13:16:09 +00:00
svenbarth
e8a7661bcf
* fix for Mantis #35921 : apply patch by Maciej Izak
...
git-svn-id: trunk@42556 -
2019-08-02 13:16:07 +00:00
pierre
3195b64599
Add .NOTPARALLEL for beos and haiku RTLs
...
git-svn-id: trunk@42555 -
2019-08-02 11:21:43 +00:00
nickysn
83afeb2e93
+ added dummy overrides for TInternalLinkerWin16.GetCodeSize, .GetDataSize and
...
.GetBssSize, because the default ones crash
git-svn-id: trunk@42554 -
2019-08-01 16:49:08 +00:00
nickysn
5d01d53a96
* don't crash in TOmfObjSection.MemPosStr if MZExeUnifiedLogicalSegment isn't set
...
git-svn-id: trunk@42553 -
2019-08-01 16:44:46 +00:00
nickysn
93a08aaebd
+ write the NewExe header in TNewExeOutput.writeData
...
git-svn-id: trunk@42552 -
2019-08-01 16:43:39 +00:00
nickysn
d10fb705e4
+ added an TNewExeOutput.Order_ObjSectionList override and sort obj sections by
...
class name first, then by name, then by initial order
git-svn-id: trunk@42551 -
2019-08-01 15:52:19 +00:00
pierre
b768673e96
Also recompile rtl using FPCFPMAKE before bootstrapping in fpmkunit directory (helps for cross-compilation)
...
git-svn-id: trunk@42550 -
2019-08-01 14:59:52 +00:00
pierre
d6d3e171ce
Try to fix alignment issues in RTTI code for 64-bit targets which require proper alignment
...
git-svn-id: trunk@42549 -
2019-08-01 14:46:56 +00:00
Jonas Maebe
62218e823f
* synchronised with r442 of the universal interfaces:
...
o fixed iOS/simulator compilation
git-svn-id: trunk@42548 -
2019-07-31 19:30:51 +00:00
nickysn
2c4c34ef9b
+ split the win16 executable into sections
...
git-svn-id: trunk@42547 -
2019-07-31 15:09:02 +00:00
nickysn
05c420fad5
+ create a TNewExeSection class
...
git-svn-id: trunk@42546 -
2019-07-31 13:47:14 +00:00
nickysn
83861799ae
+ also add and resolve import symbols coming from OMF object modules
...
git-svn-id: trunk@42545 -
2019-07-31 13:32:43 +00:00
Mattias Gaertner
583ec13074
fcl-passrc: resolve specialized class
...
git-svn-id: trunk@42544 -
2019-07-31 11:09:39 +00:00
nickysn
d77a8fb5f4
+ call TOmfObjData.AddImportSymbol for every ImpDef record read from an object file
...
git-svn-id: trunk@42543 -
2019-07-31 01:19:51 +00:00
nickysn
fcb6072fae
+ added method TOmfObjData.AddImportSymbol, which adds symbols, imported from an
...
external dll to TOmfObjData.ImportLibraryList (similar to
TInternalLinker.AddImportSymbol)
git-svn-id: trunk@42542 -
2019-07-31 01:12:00 +00:00
nickysn
d2371f4176
+ added an ImportLibraryList property to TOmfObjData
...
git-svn-id: trunk@42541 -
2019-07-31 01:05:53 +00:00
florian
99f92ce5dd
* insert FPC_THROWFPUEXCEPTION call into the correct assembler list
...
git-svn-id: trunk@42540 -
2019-07-30 21:04:32 +00:00
florian
26acc8fb2a
* make stack non executable on arm-linux
...
git-svn-id: trunk@42539 -
2019-07-30 21:04:31 +00:00
florian
bdd4b6691e
* fix test for arm
...
git-svn-id: trunk@42538 -
2019-07-30 21:04:30 +00:00
florian
9560d63e42
* test needs exception checking
...
git-svn-id: trunk@42537 -
2019-07-30 21:04:29 +00:00
florian
46bac33a2d
+ fpu_capabilities for arm
...
* some code converted to use fpu_capabilities
git-svn-id: trunk@42536 -
2019-07-30 21:04:28 +00:00
nickysn
2b6ee838f9
+ implemented TNewExeOutput.GenerateLibraryImports, based on the ogcoff implementation
...
git-svn-id: trunk@42535 -
2019-07-30 16:34:41 +00:00
Mattias Gaertner
aa7eb7bce3
fcl-passrc: typecast nil to class, interface, dynarray
...
git-svn-id: trunk@42534 -
2019-07-30 15:36:28 +00:00
nickysn
99af7f2781
* set sharedlibext for win16 to '.dll'
...
git-svn-id: trunk@42533 -
2019-07-30 15:27:44 +00:00
Mattias Gaertner
a363b64e1f
fcl-passrc: resolve generic delphi record
...
git-svn-id: trunk@42532 -
2019-07-30 15:25:22 +00:00
Jeppe Johansen
1b698d319f
- Fix bug in software overflow checking for longint's.
...
- AVR: Fix overflow checking for HW multiplications
git-svn-id: trunk@42531 -
2019-07-30 13:42:26 +00:00
pierre
dca8147958
Try to fix ppudump for generic/inline.
...
* entfile.pas: Differenciate ibsymtableoptions and ibrecsymtableoptions.
* ppu.pas: Increase ppu unit CurrentPPULongVersion value.
* utils/ppuutils/ppudump.pp: Add current_symtable_options variable.
Change readsymtableoptions from procedure to function returning
the new tsymtableoptions.
git-svn-id: trunk@42530 -
2019-07-29 16:40:58 +00:00
Mattias Gaertner
a84eae8c2e
fcl-passrc: parse delphi generic arrays
...
git-svn-id: trunk@42529 -
2019-07-29 14:19:50 +00:00
pierre
92f085fdd9
Try to fix bug introduced in previous commit #42527 , hopefully fixing bug report 35902
...
git-svn-id: trunk@42528 -
2019-07-29 11:54:27 +00:00
pierre
f2b200e4f0
Fix recordtoken writing into ppu files to allow correct
...
handling in cross-configuration with different endianess.
The code has been modified to use the same scheme as the writing of
the other parts of the ppu, i.e. change_endian filed has been
added also to tscannerfile class of scanner unit.
This field is then used to swap values that required endianess
conversion.
* scanner.pas: change_endian filed added to tscannerfile class.
The value of this field is set as the same field in tentryfile class of entfile unit.
Token read and write methods converted to use change_endian field.
* ppu.pas: Increase CurrentPPILongVersion
* utils/ppuutils/ppudump.pp: Remove unneeded FPC_BIG_ENDIAN code
which was needed because tokens were previously written using a
different rule.
git-svn-id: trunk@42527 -
2019-07-29 05:33:00 +00:00
florian
3ef319c0b0
* compilation of tests on 32 bit targets fixed, using while loops so keeping the type sizes
...
git-svn-id: trunk@42526 -
2019-07-28 21:06:37 +00:00
florian
b3ed34592f
+ software handling of exceptions on arm
...
* reworked software handling of exceptions so they can be check lazily
git-svn-id: trunk@42525 -
2019-07-28 21:06:36 +00:00
Mattias Gaertner
847ac91d1d
pastojs: skip generic type
...
git-svn-id: trunk@42524 -
2019-07-28 20:17:12 +00:00