diff --git a/.gitattributes b/.gitattributes index 9aff814f5f..b0e20ab483 100644 --- a/.gitattributes +++ b/.gitattributes @@ -493,6 +493,7 @@ compiler/ogmacho.pas svneol=native#text/plain compiler/ogmap.pas svneol=native#text/plain compiler/ognlm.pas svneol=native#text/plain compiler/ogomf.pas svneol=native#text/plain +compiler/omfbase.pas svneol=native#text/plain compiler/optbase.pas svneol=native#text/plain compiler/optconstprop.pas svneol=native#text/pascal compiler/optcse.pas svneol=native#text/plain diff --git a/compiler/ogomf.pas b/compiler/ogomf.pas index 222a973410..74cd38c781 100644 --- a/compiler/ogomf.pas +++ b/compiler/ogomf.pas @@ -33,6 +33,8 @@ interface systems, { assembler } cpuinfo,cpubase,aasmbase,assemble,link, + { OMF definitions } + omfbase, { output } ogbase, owbase; diff --git a/compiler/omfbase.pas b/compiler/omfbase.pas new file mode 100644 index 0000000000..7686e3d29a --- /dev/null +++ b/compiler/omfbase.pas @@ -0,0 +1,73 @@ +{ + Copyright (c) 2015 by Nikolay Nikolov + + Contains Relocatable Object Module Format (OMF) definitions + This is the object format used on the i8086-msdos platform. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + **************************************************************************** +} +unit omfbase; + +{$i fpcdefs.inc} + +interface + + const + { OMF record types } + RT_THEADR = $80; { Translator Header Record } + RT_LHEADR = $82; { Library Module Header Record } + RT_COMENT = $88; { Comment Record } + RT_MODEND = $8A; { Module End Record } + RT_MODEND32 = $8B; + RT_EXTDEF = $8C; { External Names Definition Record } + RT_PUBDEF = $90; { Public Names Definition Record } + RT_PUBDEF32 = $91; + RT_LINNUM = $94; { Line Numbers Record } + RT_LINNUM32 = $95; + RT_LNAMES = $96; { List of Names Record } + RT_SEGDEF = $98; { Segment Definition Record } + RT_SEGDEF32 = $99; + RT_GRPDEF = $9A; { Group Definition Record } + RT_FIXUPP = $9C; { Fixup Record } + RT_FIXUPP32 = $9D; + RT_LEDATA = $A0; { Logical Enumerated Data Record } + RT_LEDATA32 = $A1; + RT_LIDATA = $A2; { Logical Iterated Data Record } + RT_LIDATA32 = $A3; + RT_COMDEF = $B0; { Communal Names Definition Record } + RT_BAKPAT = $B2; { Backpatch Record } + RT_BAKPAT32 = $B3; + RT_LEXTDEF = $B4; { Local External Names Definition Record } + RT_LEXTDEF32 = $B5; + RT_LPUBDEF = $B6; { Local Public Names Definition Record } + RT_LPUBDEF32 = $B7; + RT_LCOMDEF = $B8; { Local Communal Names Definition Record } + RT_CEXTDEF = $BC; { COMDAT External Names Definition Record } + RT_COMDAT = $C2; { Initialized Communal Data Record } + RT_COMDAT32 = $C3; + RT_LINSYM = $C4; { Symbol Line Numbers Record } + RT_LINSYM32 = $C5; + RT_ALIAS = $C6; { Alias Definition Record } + RT_NBKPAT = $C8; { Named Backpatch Record } + RT_NBKPAT32 = $C9; + RT_LLNAMES = $CA; { Local Logical Names Definition Record } + RT_VERNUM = $CC; { OMF Version Number Record } + RT_VENDEXT = $CE; { Vendor-specific OMF Extension Record } + +implementation + +end. diff --git a/compiler/ppc8086.lpi b/compiler/ppc8086.lpi index 93cf1172c1..5f14dba7e8 100644 --- a/compiler/ppc8086.lpi +++ b/compiler/ppc8086.lpi @@ -28,7 +28,7 @@ - + @@ -62,6 +62,7 @@ + @@ -1004,6 +1005,11 @@ + + + + +