On 24/10/2019 11:15, Hesham Almatary wrote:
On Thu, 24 Oct 2019 at 09:58, Sebastian Huber
<sebastian.hu...@embedded-brains.de>  wrote:
On 23/10/2019 15:44, Hesham Almatary wrote:
LLVM/LLD does not support STARTUP and ALIGN_WITH_INPUT directives that
GNU LD support. INPUT and ALIGN(8) are supported by LLVM/LLD and can
replace the unsupported STARTUP/ALIGN_WITH_INPUT directives.

The commit conditionally adds the supported directive that linkers
can understand depending on the toolchain used to compile RTEMS
i.e., clang or gcc. Clang is assumed to use LLD by default.
---
   bsps/riscv/shared/start/linkcmds.base.in  | 102 +++++++++++-----------
   c/src/lib/libbsp/riscv/riscv/configure.ac |  13 +++
   2 files changed, 64 insertions(+), 51 deletions(-)

diff --git a/bsps/riscv/shared/start/linkcmds.base.in 
b/bsps/riscv/shared/start/linkcmds.base.in
index 7d889ab38c..857bf2dabd 100644
--- a/bsps/riscv/shared/start/linkcmds.base.in
+++ b/bsps/riscv/shared/start/linkcmds.base.in
@@ -33,7 +33,7 @@

   OUTPUT_ARCH(riscv)
   ENTRY(_start)
-STARTUP(start.o)
+@RISCV_LINKER_START_DIRECTIVE@(start.o)
Works INPUT() instead of STARTUP() with GNU ld as well?

Unfortunately not. It complains about undefined references in start.o
(because of the un(order) the libs and start.o are linked)

Ok, the change is fine.

Maybe the LLVM linker could be improved to support STARTUP() and also ALIGN_WITH_INPUT(). I added ALIGN_WITH_INPUT() to GNU ld specifically to support the RTEMS linkcmds.base. It is important for systems without a bootloader which move data in start.o, e.g. from a read-only flash to a RAM.

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to