the value set by -Ch or the second parameter to the $M directive). This is
equivalent to the heapmin value in Turbo Pascal 7 and ensures that the program
has at least this amount of heap space available (otherwise DOS will show a
'not enough memory' error and will refuse to load the program).
git-svn-id: trunk@28002 -
itself (instead of having a fixed 16k stack in the startup code). This allows
setting the stack size in these models with the -Cs option.
git-svn-id: trunk@27820 -
* Dropped TObjInput.newObjData method. Instead, TObjData instances are created directly in ReadObjData, this gives possibility to create a different type of TObjData based on file header.
- Dropped TObjInput destructor, it does nothing except calling inherited.
git-svn-id: trunk@23118 -
* For Win32 and Win64 targets made sec_rodata read-only, too (for these targets it doesn't matter if read-only section contains relocations).
git-svn-id: trunk@23025 -
* TExeOutput.FixupSymbols:
+ Collect AT_GNU_IFUNC symbols in IndirectObjSymbols list for further processing by ELF back-end.
* Do not overwrite bind and size while fixing AB_COMMON symbols, this removes need in storing symbol size in every relocation and dedicated handling of oso_common section.
* Remove symbols with objsection<>nil from lists, so calling FixupSymbols several times skips already processed symbols.
git-svn-id: trunk@22393 -
+ Added TObjSection.WriteBytes method that writes just a string (without zero byte).
* ogelf.pas: Fixed st_value of COMMON symbols, it must contain required symbol alignment.
+ ogelf.pas: Some more definitions.
git-svn-id: trunk@22332 -
* Optimized COFF importing code using the new method.
- Don't create .text sections for imported variables.
- Don't create .idata$6 sections for imports by ordinal.
git-svn-id: trunk@22086 -
- PE_FILE_RELOCS_STRIPPED flag is meaningless for object files.
- Don't write PE_FILE_BYTES_REVERSED_LO as well, it is deprecated and GNU tools don't write it either.
- Don't set PE_FILE_32_BIT_MACHINE flag in x86_64 object files.
git-svn-id: trunk@21710 -
* Also simplified COFF symbol loading, separate array of symbol sizes is not needed because these sizes never change during the load.
git-svn-id: trunk@21704 -
* Enable smart linking on go32v2
* Adapted external linker script for long section names (ld 2.17 from fpcbuild repository does not seem to actually remove unused sections though)
* Do not pass '-lc' twice to external linker
* Pass -Map with correct filename to external linker if -Xm is specified on command line
* Debug sections for DJCOFF must have zero memory position and flag COFF_STYP_INFO (not COFF_STYP_NOLOAD).
git-svn-id: trunk@21435 -
* Fixed header data positions for DJCOFF executables, they need adjustment by stub size.
* Fixed symbol values in DJCOFF executables, they must be absolute.
* Fixed missing oso_common flag on TExeOutput.commonObjSection, causing incorrect COFF relocations to this section.
git-svn-id: trunk@21408 -
* Assign section indexes independent from symbol indexing.
* Fixed section flags not assigned while reading DJGPP object files.
* Fixed objData type for TDJCoffexeoutput.
* Fixed entry point address of DJGPP executables.
* Fixed filling exe section headers for DJGPP.
git-svn-id: trunk@21396 -
- removed empty destructor and checks for nil before .Free (they are done in tobject.free itself)
+ added COMDAT definitions.
git-svn-id: trunk@21383 -
that deal with paths/filenames with TPathStr (= ansistring) to prevent
cutting off long paths (no change in speed when compiling the compiler,
1% extra memory usage)
git-svn-id: trunk@21120 -
of the AVR-specific ifdef'ed variant
o since the only special character we use in mangled names on all platforms
is $, added a new field to tasminfo called "dollarsign" that holds the
character $'s should be replaced with (if it doesn't have to be replaced,
leave it at $)
git-svn-id: trunk@20801 -
* eliminate warnings in compiler (i386 & i368->x86_64) and minor refactorings
- comment out unused vars and types
- comment out unneeded comparisons (Longword <=> 0)
- suppress some "comparison always true|false" warnings
- tweak visiblity sections
git-svn-id: trunk@19385 -
* Changed alignment of .pdata section to 4.
+ Support saving RELOC_NONE relocations to .o files and reading them back on x86_64.
git-svn-id: trunk@19070 -
* Clear bits in section flags, that are only valid for object files
* Round section datasize up to filealignment (PECOFF v8 documentation requires this)
* Zero datapos and datasize for all sections w/o data, not just for .bss
* Produce IMPORT_ADDRESS_TABLE directory in exe header
* Entirely smartlink away unused DLLs (these used to have two terminating thunks left)
git-svn-id: trunk@17949 -
+ parsing of section directive for variables
+ section test
+ write section names in the assembler/binary writers correctly
* allow section only after ; and for embedded targets
git-svn-id: branches/usersections@17154 -