Commit Graph

207 Commits

Author SHA1 Message Date
florian
e8fabb752a + basic xtensa-linux support in the compiler
git-svn-id: trunk@44611 -
2020-04-05 21:12:12 +00:00
svenbarth
9c088bda6a * fix for Mantis #36706: only link a library against the dynamic loader if we're not linking against the C library anyway
Note: I did not yet find a case where we *do* need to link a library against the loader; this will have to be investigated further, but for 3.2.0 this is safest

git-svn-id: trunk@44256 -
2020-03-02 22:04:36 +00:00
pierre
346118187b Fix linking error, in which libc.so.6 is not found on aarch64-linux when libdl.so is loaded, by adding appropriate directory
git-svn-id: trunk@44215 -
2020-02-19 15:33:11 +00:00
svenbarth
4ad7d552a1 * increase support for multilib binutils for RISC V by passing the correct ABI to the linker
git-svn-id: trunk@43789 -
2019-12-25 15:23:25 +00:00
florian
266daa62f1 * updated arm linker script as proposed by Alfred, resolves #36395
git-svn-id: trunk@43651 -
2019-12-05 20:07:16 +00:00
florian
bdd36d20ac * patch by Alfred: remove superfluous linker script entry, resolves #36345
git-svn-id: trunk@43570 -
2019-11-24 12:16:29 +00:00
florian
f20e6ff323 * update generic linker script
git-svn-id: trunk@43426 -
2019-11-09 16:58:58 +00:00
Jonas Maebe
6483b3f5e3 * fixed opt-in sysroot substitution again, renamed the three-argument version
TSearchPathList.AddPath() to AddLibraryPath() to make it clear it's only
    to be used for adding library search paths (and replaced one case where
    it was used for a source file search path with a call to the
    two-argument version)
  * also added some missing '=' prefixes to built-in library search paths,
    and fixed wrong DirectoryExists checks in t_linux in case of using
    a sysroot, cross-compiling or linking on target

git-svn-id: trunk@43312 -
2019-10-26 13:48:30 +00:00
Jonas Maebe
78fb35525f * change convention for searching sysroot library paths to be the same as the
one used by GNU ld: only search for library paths in the sysroot if they
    are built into the compiler or start with "=". Previously, all
    user-provided library paths were also searched in the sysroot
    (mantis #36198)

git-svn-id: trunk@43279 -
2019-10-20 17:26:44 +00:00
pierre
9d765af693 Fix parsing error in GNU linker script, KEEP needs braces
git-svn-id: trunk@43197 -
2019-10-14 16:04:02 +00:00
florian
f6667a5143 * we have to use __tls_get_addr from the dyn. linker lib else tls on programs with pure pascal dyn. libraries fail
git-svn-id: trunk@43069 -
2019-09-25 21:19:01 +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
b71164deca * fix warnings
git-svn-id: branches/debug_eh@42256 -
2019-06-20 17:13:59 +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
svenbarth
0bd1687398 * fix for Mantis #35326 (applied patch by Cyrax): objcopy's --add-gnu-debuglink parameter doesn't handle quoted paths correctly, so quote the whole path
git-svn-id: trunk@42025 -
2019-05-10 12:59:26 +00:00
Jonas Maebe
fc60ec2ea4 + support for LLVM LTO: compile units with -CLflto -> when compiling a main
program/library also with -Clflto, all units compiled with that option
    will be linked using their bitcode files and LTO
   o compiling with -CLflto will compile all units twice: once for normal
     (static or smart) linking, and once for LTO. So the result can be
     used both with and without LTO.

git-svn-id: branches/debug_eh@41910 -
2019-04-20 18:56:11 +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
Jonas Maebe
b3a8543a56 * synchronised with trunk till r40942
git-svn-id: branches/debug_eh@40943 -
2019-01-20 17:37:07 +00:00
pierre
bbede67175 Also add /usr/lib/CPU-linux-gnu to link directory list for mips and mipsel
git-svn-id: trunk@40905 -
2019-01-19 16:06:04 +00:00
Jonas Maebe
37ae70f925 * pass --eh-frame-hdr to the linker on Linux when using Dwarf-based EH, as
libgcc's unwinder does not work without it

git-svn-id: branches/debug_eh@40435 -
2018-12-01 20:30:37 +00:00
Jeppe Johansen
90d5f5e760 Added library search paths.
Removed GP and TP from allocatable registers for now. GP should not be overwritten.
Ported dllprt0.as
Fixed register usage in cprt0.as

git-svn-id: branches/laksen/riscv_new@39522 -
2018-07-29 13:08:15 +00:00
Jeppe Johansen
76dda5813e Updated dynlinker filename.
Fix passing of vararg register pairs.
Fix passing of big record, and return of records.
Disabled framepointer elimination for the time being.

git-svn-id: branches/laksen/riscv_new@39519 -
2018-07-28 20:06:06 +00:00
Jeppe Johansen
ceb38833f2 Added RiscV32/64 target, from a cleaned up version of branches/laksen/riscv/trunk.
git-svn-id: branches/laksen/riscv_new@39474 -
2018-07-20 08:21:15 +00:00
michael
f6867cbd63 * Patch by Cyrax to allow creating map file on linux (bug ID 33982)
git-svn-id: trunk@39449 -
2018-07-14 08:12:38 +00:00
pierre
6cab9fd7db Add replacement of $GCSECTIONS for shared libraries
git-svn-id: trunk@39403 -
2018-07-07 07:22:51 +00:00
marco
2a80eb3fdd * patch from #31920, pass gc-sections to .so's
git-svn-id: trunk@39392 -
2018-07-06 08:17:10 +00:00
florian
35d49f804c * search also the "lib" path variants on x86-64 if the "lib64" ones are not
found, some distros use lib instead of lib64 for x86-64

git-svn-id: trunk@38557 -
2018-03-17 21:58:24 +00:00
pierre
dcc6a20d22 Call RegisterTarget for system_x86_6432_linux_info
git-svn-id: trunk@37891 -
2018-01-02 16:52:41 +00:00
Károly Balogh
e6aed467b5 renamed script unit to cscript to avoid namespace conflict with univint package on Darwin. this makes it possible to build the textmode IDE on Darwin
git-svn-id: trunk@37598 -
2017-11-17 11:27:19 +00:00
florian
13801bebfe * pass debian specific path to c init files to ld for sparc64 as it is done on other targets as well
git-svn-id: trunk@36676 -
2017-07-07 22:33:42 +00:00
Károly Balogh
8a22807efa m68k: also add Debian's custom library path like on other CPUs
git-svn-id: trunk@36645 -
2017-07-04 22:51:08 +00:00
florian
ac16c90357 * linker command for sparc64-linux fixed
git-svn-id: trunk@36517 -
2017-06-18 15:45:32 +00:00
florian
21e5f99faa + some basic compiler support for sparc64-linux
git-svn-id: trunk@36418 -
2017-06-04 22:07:24 +00:00
florian
1f4432af6b * sparc64 compiler can be build, not working yet
git-svn-id: trunk@36399 -
2017-06-02 20:13:30 +00:00
Károly Balogh
1252aefb86 t_linux: whitespace and tab 2 space fix. no functional change.
git-svn-id: trunk@36370 -
2017-05-29 16:11:24 +00:00
florian
b1dff29cbf * removed unused units
git-svn-id: trunk@36165 -
2017-05-09 19:53:14 +00:00
florian
f274e316fe + search /usr/lib/powerpc-linux-gnu for powerpc startup files
git-svn-id: trunk@34365 -
2016-08-22 10:01:47 +00:00
Jonas Maebe
5cb2d10c9a * add aarch64 multi-arch library directory (patch by Edmund Grimley Evans)
git-svn-id: trunk@31981 -
2015-10-08 18:56:35 +00:00
Jonas Maebe
21d6b45020 * add i386 multi-arch library directory (patch by Edmund Grimley Evans)
git-svn-id: trunk@31980 -
2015-10-08 18:55:56 +00:00
Jonas Maebe
4564bffb85 * 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 (fixed version of r31664, thanks to Alan Modra)
   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@31675 -
2015-09-14 07:24:54 +00:00
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
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
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
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