Commit Graph

85 Commits

Author SHA1 Message Date
florian
c13517634f * patch by Rika: Replace some instances of manual work with endianness with cryptic oneliners, resolves #39719 2022-06-08 22:59:39 +02:00
florian
637976e83f * patch by Marģers to unify internal error numbers, resolves #37888
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
florian
e0041a8244 * compilation of x86 and PowerPC fixed
git-svn-id: trunk@43158 -
2019-10-09 19:26:59 +00:00
Jonas Maebe
c262c5dbc9 * synchronised with trunk till r42256
git-svn-id: branches/debug_eh@42257 -
2019-06-20 17:21:34 +00:00
nickysn
5d4af28c0f + implemented TOmfRecord_COMENT_IMPDEF.DecodeFrom
git-svn-id: trunk@42242 -
2019-06-17 01:53:38 +00:00
nickysn
fbbf1f4f1c + Implemented TOmfRecord_COMENT_EXPDEF.DecodeFrom
git-svn-id: trunk@42238 -
2019-06-15 22:14:09 +00:00
nickysn
cbf95aebf4 + introduced the TOmfRecord_COMENT_EXPDEF class. Use that to generate export
libraries instead of generating the magic string directly.

git-svn-id: trunk@42237 -
2019-06-15 00:30:07 +00:00
nickysn
eea3eb1a8e + introduced the TOmfRecord_COMENT_IMPDEF class. Use it to encode the IMPDEF
records instead of encoding them directly.

git-svn-id: trunk@42236 -
2019-06-14 23:50:48 +00:00
nickysn
85684eb66d + introduced the TOmfRecord_COMENT_Subtype abstract class
git-svn-id: trunk@42235 -
2019-06-14 23:26:37 +00:00
nickysn
cdd2ba1a4d + added constants for the known CC_OmfExtension record subtypes (IMPDEF and
EXPDEF are the ones we care about - they are used in win16 dll import and
  export libraries)

git-svn-id: trunk@42231 -
2019-06-14 22:59:50 +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
pierre
e49025a086 More -CriotR fixes:
* entfile.pas: Change PPU header falgs filed from longint to dword.
  * ngtcon.pas: Change local variable startoffset type to aword.
  * omfbase.pas: Avoid calling move with a nil string s indexed as s[1],
    to avoid a range check error.
  * owomflib.pas: Disable range check explicitly in hash computation.
  * utils/ppuutils/ppudump.pp: Adapt to flags type change in entfile.pas

git-svn-id: trunk@40163 -
2018-11-01 21:58:54 +00:00
florian
68eb921d46 * broken compilation after r39347 fixed
git-svn-id: trunk@39349 -
2018-06-30 12:30:25 +00:00
nickysn
45337b67fe + when using the i8086 with section based smartlinking, create OMF section
groups, named 'CGROUP' or 'CGROUP_UNITNAME', which include all the code
  sections, that need to be put in the same segment

git-svn-id: trunk@39277 -
2018-06-22 15:02:39 +00:00
nickysn
ab47c8b899 + introduce the omf_section_primary_group function. Use it instead of
section_belongs_to_dgroup, to allow sections to belong to groups, other than
  dgroup.

git-svn-id: trunk@39268 -
2018-06-21 13:21:53 +00:00
nickysn
5eb69edf9e + support segments (sections) with a primary group, other than 'DGROUP' in the
OMF internal object writer

git-svn-id: trunk@39245 -
2018-06-20 14:57:20 +00:00
nickysn
bfdd75eabf + support AB_LOCAL symbols in OMF object files, by implementing support for
LPUBDEF/LPUBDEF32 OMF records

git-svn-id: trunk@39210 -
2018-06-11 15:29:23 +00:00
nickysn
98634899f2 + support OMF fixups, determined by thread
git-svn-id: trunk@39151 -
2018-05-30 15:49:27 +00:00
nickysn
189cba817e + added method TOmfSubRecord_THREAD.ApplyTo, which applies the data in the
current thread subrecord to a TOmfThreads object

git-svn-id: trunk@39148 -
2018-05-30 13:52:34 +00:00
nickysn
26e808e155 + added classes for maintaining the OMF fixup thread state
git-svn-id: trunk@39147 -
2018-05-30 13:35:52 +00:00
nickysn
54a8d8de58 + added class for decoding/encoding THREAD OMF subrecords
git-svn-id: trunk@39142 -
2018-05-29 15:05:07 +00:00
nickysn
0a01c0c76f * autoswitch to writing 32-bit SEGDEF OMF records if there's a need to encode a
32-bit segment length

git-svn-id: trunk@39095 -
2018-05-22 14:03:59 +00:00
nickysn
70be0dc6e9 * changed internal error number to make it unique
git-svn-id: trunk@39094 -
2018-05-22 13:49:40 +00:00
nickysn
dcdfecbf35 * changed internal error number to make it unique
git-svn-id: trunk@39090 -
2018-05-22 12:55:53 +00:00
nickysn
a656d98657 * autoswitch to writing 32-bit PUBDEF OMF records if there's a need to encode a
32-bit offset

git-svn-id: trunk@39089 -
2018-05-22 12:54:11 +00:00
nickysn
a12622e06f * use 1-byte alignment instead of 4-byte alignment for the OMF dwarf sections
(otherwise the alignment screws up the dwarf debug info)

git-svn-id: trunk@39071 -
2018-05-20 20:59:39 +00:00
nickysn
3d6d020fca + implemented the actual writing of LINNUM OMF records
git-svn-id: trunk@39008 -
2018-05-16 17:37:28 +00:00
nickysn
42164b5c01 + omf writer: support writing partial LINNUM records (up to 1024 bytes,
according to the spec)

git-svn-id: trunk@38995 -
2018-05-15 14:45:22 +00:00
nickysn
2741a30f20 + added method TOmfSubRecord_LINNUM_MsLink_LineNumberList.Clear
git-svn-id: trunk@38970 -
2018-05-10 14:16:29 +00:00
nickysn
0b296ac828 * extracted the parts of the TOmfRecord_LINNUM_MsLink class, which implement a
container of TOmfSubRecord_LINNUM_MsLink_Entry objects to a separate class
  TOmfSubRecord_LINNUM_MsLink_LineNumberList

git-svn-id: trunk@38968 -
2018-05-10 13:56:11 +00:00
nickysn
718e83954f * merge duplicate strings in the LNAMES section, when writing OMF object
modules. This results in slightly smaller obj files.

git-svn-id: trunk@38967 -
2018-05-10 13:07:32 +00:00
nickysn
fc9d331b42 + added classes for reading/writing LINNUM OMF records in the Microsoft LINK
specific format

git-svn-id: trunk@38959 -
2018-05-09 14:55:34 +00:00
nickysn
ba2c06a239 + added class for reading/writing LINNUM (line number debug info) records in the
OMF object format

git-svn-id: trunk@38953 -
2018-05-08 16:00:51 +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
nickysn
7ee133162c * use OMF section names, starting with dot for the dwarf debug info for
compatibility with the Watcom linker and debugger

git-svn-id: trunk@34708 -
2016-10-12 13:05:12 +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
nickysn
4edbd27774 * support writing omf libraries with size greater than 251 blocks
git-svn-id: trunk@32268 -
2015-11-07 16:54:23 +00:00
nickysn
f14f4ff924 * use the 'FAR_DATA' segment class name instead of 'DATA' or 'BSS' in the huge
memory model

git-svn-id: trunk@31497 -
2015-09-03 17:53:15 +00:00
nickysn
cfab5d3d3e * the omfbase.omf_segclass const array converted to function in order to be able
to return different names for some sections in the huge memory model

git-svn-id: trunk@31496 -
2015-09-03 17:48:07 +00:00
nickysn
cc2e27b555 * the function which returns the alignment of omf sections moved to unit
omfbase, so it can be used by the nasm asm writer as well

git-svn-id: trunk@31486 -
2015-09-03 12:36:58 +00:00
nickysn
efef3882a0 * moved the code for determining whether an omf object section should
belong to group DGROUP to a function in unit omfbase (so it can be used in the
  future by the nasm asm writer as well)

git-svn-id: trunk@31484 -
2015-09-02 16:11:02 +00:00
nickysn
2e6d462ff6 * omf segment class names moved to a const array in omfbase, so they can be used
(in the future) in the nasm asm writer as well

git-svn-id: trunk@31483 -
2015-09-02 14:37:20 +00:00
nickysn
4061628ffb * the i8086-msdos default code segment (in near code memory models) renamed
'_TEXT'. This name is used in object modules, produced by Borland C and Open
  Watcom.

git-svn-id: trunk@31482 -
2015-09-02 13:14:12 +00:00
nickysn
1a8e203bf5 * moved the omf section names constant to the omfbase unit and use it also in
the nasm asm writer when targeting i8086-msdos

git-svn-id: trunk@31481 -
2015-09-02 12:28:46 +00:00
nickysn
7923b6142e + finished the internal omf library writer (implementing writing of the library
dictionary at the and of the file) and enabled it for the i8086 internal asm

git-svn-id: trunk@30701 -
2015-04-21 23:31:02 +00:00
nickysn
3fa81fa7cd + added overloaded methods TOmfRawRecords.ReadFrom and .WriteTo for reading from
and writing to TDynamicArray

git-svn-id: trunk@30699 -
2015-04-21 20:22:30 +00:00
nickysn
32e0eca0dc + added read only property TOmfSubRecord_FIXUP.LocationSize, which returns the
size in bytes of the fixup

git-svn-id: trunk@30678 -
2015-04-19 22:57:33 +00:00