Commit Graph

939 Commits

Author SHA1 Message Date
Jonas Maebe
e06a759e20 - reverted r31664, it causes crashes with some ld versions :/
git-svn-id: trunk@31670 -
2015-09-13 20:14:46 +00:00
Jonas Maebe
cd41bf672c * use binutils 2.19+ linker script "augmentation" functionality to specify
how the fpc sections have to be linked *on Linux*. This prevents the
    "did you forget -T" warnings from ld, and in general is more correct than
    our previous approach of specifying a complete linker script without -T
    and hoping that there won't be any unexpected interactions with ld's
    built-in linker script
   o use the new -X9 command line option to generate linker scripts that
     are compatible with binutils older than 2.19 (reverts to the old
     behaviour)

git-svn-id: trunk@31664 -
2015-09-13 19:06:14 +00:00
nickysn
d579c45656 * pass the option "dosseg" to wlink when compiling for win16 to ensure the
proper segment ordering

git-svn-id: trunk@31613 -
2015-09-12 00:08:23 +00:00
nickysn
e323a08b20 + also write the omf special segment attributes in the nasm writer for the win16 target
+ enabled the internal omf obj writer for the win16 target

git-svn-id: trunk@31576 -
2015-09-07 22:26:14 +00:00
nickysn
bdfd23cc2e + new target switch "FarProcsPushOddBP", which causes the i8086 compiler to push
odd values of BP if the procedure is far. Enabled this by default for Win16.

git-svn-id: trunk@31569 -
2015-09-07 19:05:18 +00:00
nickysn
4b80bc958c + set the win16 local heap size in the executable
git-svn-id: trunk@31552 -
2015-09-06 13:52:22 +00:00
nickysn
393d86a2e5 + implemented writing proper win16 dll import libraries
git-svn-id: trunk@31532 -
2015-09-05 13:45:23 +00:00
nickysn
839ab714cc + started implementing a win16 target :)
git-svn-id: trunk@31521 -
2015-09-05 02:47:42 +00:00
nickysn
97f65d350d + position the 'FAR_DATA' segments after the 'CODE' segments and before the
regular 'DATA' segments

git-svn-id: trunk@31498 -
2015-09-03 17:57:27 +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
Jonas Maebe
4f38317bd2 * fixed small linker script syntax error in r31459
git-svn-id: trunk@31460 -
2015-08-30 15:45:57 +00:00
Jonas Maebe
6d29ad44f7 * always use a minimal linker script when we are not using -T, so that the
chance of conflicts with the built-in linkerscript is minimised
   o removed special case for AArch64 which that already
   o check the diff without whitespace changes, most is indentation

git-svn-id: trunk@31459 -
2015-08-30 15:25:44 +00:00
Jonas Maebe
6bb430e97c * also use the ARM/EABI linker script when targeting armhf
git-svn-id: trunk@31451 -
2015-08-29 13:00:03 +00:00
Jonas Maebe
882421a3ad * also use -T when cross-compiling a shared library using a sysroot on
Linux (we want to replace the entire built-in linker script in that case)

git-svn-id: trunk@31450 -
2015-08-29 12:26:12 +00:00
Jonas Maebe
e391a37b30 * add the sysrootpath to the path of the dynamic linker in the INPUT()
section for Linux

git-svn-id: trunk@31449 -
2015-08-29 12:26:08 +00:00
Jonas Maebe
3f9f498e0d - removed leftover alpha, ia64 and vis code
git-svn-id: trunk@31446 -
2015-08-28 22:31:29 +00:00
Jonas Maebe
0d74e4f719 * changed paratargetdbg from a global variable into a field of toption
git-svn-id: trunk@31443 -
2015-08-28 22:31:17 +00:00
nickysn
0894ede9cd + enable the i8086-msdos internal linker
git-svn-id: trunk@31417 -
2015-08-25 01:32:46 +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
ea27b97f3a * fixed the order of the _NULL and _AFTERNULL segments
git-svn-id: trunk@31395 -
2015-08-24 18:14:55 +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
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
nickysn
eed7e3aa6b + implemented GetCode/Data/BssSize in the i8086-msdos internal linker
git-svn-id: trunk@31351 -
2015-08-20 21:11:09 +00:00
nickysn
ebde434255 * specify the proper segment ordering in the link script of the i8086-msdos
internal linker

git-svn-id: trunk@31341 -
2015-08-18 14:44:00 +00:00
nickysn
0dab94e35d * i8086-msdos internal linker: put the static libraries in a group, to enable
multiple passes when resolving symbols

git-svn-id: trunk@31338 -
2015-08-18 13:37:57 +00:00
nickysn
ef207475fd + parse omf modend records and add symbol for module start address
git-svn-id: trunk@31324 -
2015-08-14 15:42:43 +00:00
nickysn
e1298a035c * provide msdos-specific dummy overrides for GetCode/Data/BssSize to avoid crash
when using the (not yet finished) internal linker

git-svn-id: trunk@31323 -
2015-08-14 14:36:18 +00:00
nickysn
d4a4b9a57b * refactored the internal linker ar object reader object creation to allow using
different 'ar' implementations under different platforms
* use the omflib reader instead of the ar reader in the msdos internal linker

git-svn-id: trunk@31322 -
2015-08-14 13:52:45 +00:00
Jeppe Johansen
2b80d46492 Added STM32F7xx controller units and types.
git-svn-id: trunk@31257 -
2015-07-31 22:21:16 +00:00
Jeppe Johansen
55669f62b1 Added most AVR controllers.
Made absolutevarsym use PUint instead of AWord for its offset to fix range errors.

git-svn-id: trunk@31242 -
2015-07-29 21:01:21 +00:00
florian
4d3552943d * correctly write OUTPUT_ARCH to the linker script, resolves issue #28395
git-svn-id: trunk@31236 -
2015-07-27 19:49:00 +00:00
pierre
014d2f805d Use /libexec/ld-elf.so.2 as dynamic linker for DragonFly OS
git-svn-id: trunk@31210 -
2015-07-14 21:59:23 +00:00
Károly Balogh
0d1c85a095 Amiga-likes: support unit_env environment variable for unit paths
git-svn-id: trunk@31180 -
2015-06-29 21:42:40 +00:00
Károly Balogh
a5abd4acd7 AROS/x86_64: fixed resources to use res_elf, set default stacksize for the more sensible 1MB instead of 8MB
git-svn-id: trunk@31179 -
2015-06-29 21:30:53 +00:00
Károly Balogh
02b9b1743e AROS/x86_64: fixed linker support by removing duplicated code and unifying it with i386
git-svn-id: trunk@31178 -
2015-06-29 21:28:51 +00:00
Jonas Maebe
acd88cac92 * fixed selection of startup code files for all iOS and simulator targets
o in particular fixes linking for the iPhoneSimulator 8.3 and later on
     i386

git-svn-id: trunk@31045 -
2015-06-13 22:47:53 +00:00
Jeppe Johansen
ab9c8bb569 Fixed startup assembler code for the case where there's no data in .bss and/or in .data.
Fixed _stack_top symbol calculation so it works for all controllers.
Added ATTINY2313 controller.

git-svn-id: trunk@31031 -
2015-06-13 12:30:50 +00:00
Károly Balogh
21329e6606 Amiga: enable using of external resources we have no internal resource support yet for Amiga Hunk executables
git-svn-id: trunk@31007 -
2015-06-07 18:07:06 +00:00
Károly Balogh
8a09c5f40d MorphOS: register ELF resources info
git-svn-id: trunk@31004 -
2015-06-07 17:37:22 +00:00
Károly Balogh
8e3ebb87cd use res_elf on MorphOS for resources
git-svn-id: trunk@31003 -
2015-06-07 16:42:32 +00:00
Jeppe Johansen
db6093023b Fixed initialization code for MK20D7 controllers.
Added flash configuration section to RTL and linker script.

git-svn-id: trunk@30972 -
2015-06-02 22:59:03 +00:00
Jeppe Johansen
36dfe750d8 Added Freescale MK20D7 controller support.
git-svn-id: trunk@30925 -
2015-05-28 11:46:22 +00:00
Jonas Maebe
8628d50aba + Linux/AArch64 compiler support (patch by Edmund Grimley Evans)
git-svn-id: trunk@30893 -
2015-05-22 09:25:05 +00:00
nickysn
91d3cb1cd0 + initial implementation of TInternalLinkerMsDos.DefaultLinkScript
git-svn-id: trunk@30863 -
2015-05-15 22:22:36 +00:00
nickysn
3b288554e7 + more msdos internal linker classes added
git-svn-id: trunk@30811 -
2015-05-06 14:49:07 +00:00
nickysn
93ec811c97 + created the msdos internal linker class (empty for now)
git-svn-id: trunk@30810 -
2015-05-06 13:45:39 +00:00
nickysn
211dbb9752 * set procalign and loopalign to 1 for the i8086-msdos target
git-svn-id: trunk@30686 -
2015-04-20 15:12:48 +00:00
nickysn
030801a18b * switch the msdos target to the internal assembler/omf object writer
git-svn-id: trunk@30681 -
2015-04-20 01:53:01 +00:00
nickysn
7ff6c2a675 - rm tf_smartlink_library from targets that define tf_smartlink_sections, since
in certain places, the code in the compiler assumes that only one of the two
  is defined, resulting in libraries with missing externals when both are
  defined and there's no much point in supporting both anyway, since section
  based smartlinking achieves the same thing (in a better way) on these
  platforms.

git-svn-id: trunk@30668 -
2015-04-19 18:47:44 +00:00
nickysn
d204aaab72 * refactored "ar" object writer creation in the internal assembler to allow
having different implementations of an internal "ar" writer

git-svn-id: trunk@30667 -
2015-04-19 16:35:16 +00:00