Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
c9c0b66f
Commit
c9c0b66f
authored
Jan 22, 2020
by
Sandrine Bailleux
Committed by
TrustedFirmware Code Review
Jan 22, 2020
Browse files
Merge "Set lld as the default linker for Clang builds" into integration
parents
e5eaf885
641f16e7
Changes
2
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
c9c0b66f
...
...
@@ -209,7 +209,10 @@ PP = $(CC) -E $(TF_CFLAGS_$(ARCH))
else
ifneq
($(findstring clang,$(notdir $(CC))),)
TF_CFLAGS_aarch32
=
$
(
target32-directive
)
$
(
march32-directive
)
TF_CFLAGS_aarch64
=
-target
aarch64-elf
$
(
march64-directive
)
LD
=
$(LINKER)
LD
=
ld.lld
ifeq
(, $(shell which $(LD)))
$(error
"No $(LD) in PATH, make sure it is installed or set LD to a different linker"
)
endif
AS
=
$(CC)
-c
-x
assembler-with-cpp
$
(
TF_CFLAGS_
$(ARCH)
)
CPP
=
$(CC)
-E
PP
=
$(CC)
-E
...
...
@@ -317,10 +320,13 @@ endif
GCC_V_OUTPUT
:=
$(
shell
$(CC)
-v
2>&1
)
# LD = armlink
ifneq
($(findstring armlink,$(notdir $(LD))),)
TF_LDFLAGS
+=
--diag_error
=
warning
--lto_level
=
O1
TF_LDFLAGS
+=
--remove
--info
=
unused,unusedsymbols
TF_LDFLAGS
+=
$
(
TF_LDFLAGS_
$(ARCH)
)
# LD = gcc (used when GCC LTO is enabled)
else
ifneq
($(findstring gcc,$(notdir $(LD))),)
# Pass ld options with Wl or Xlinker switches
TF_LDFLAGS
+=
-Wl
,--fatal-warnings
-O1
...
...
@@ -337,11 +343,17 @@ ifneq (${ERRATA_A53_843419},1)
endif
TF_LDFLAGS
+=
-nostdlib
TF_LDFLAGS
+=
$(
subst
--
,-Xlinker
--
,
$
(
TF_LDFLAGS_
$(ARCH)
))
# LD = gcc-ld (ld) or llvm-ld (ld.lld) or other
else
TF_LDFLAGS
+=
--fatal-warnings
-O1
TF_LDFLAGS
+=
--gc-sections
# ld.lld doesn't recognize the errata flags,
# therefore don't add those in that case
ifeq
($(findstring ld.lld,$(notdir $(LD))),)
TF_LDFLAGS
+=
$
(
TF_LDFLAGS_
$(ARCH)
)
endif
endif
DTC_FLAGS
+=
-I
dts
-O
dtb
DTC_CPPFLAGS
+=
-P
-nostdinc
-Iinclude
-Ifdts
-undef
-x
assembler-with-cpp
...
...
docs/getting_started/initial-build.rst
View file @
c9c0b66f
...
...
@@ -18,9 +18,10 @@ Performing an Initial Build
It is possible to build TF-A using Clang or Arm Compiler 6. To do so
``CC`` needs to point to the clang or armclang binary, which will
also select the clang or armclang assembler. Be aware that the
GNU linker is used by default. In case of being needed the linker
can be overridden using the ``LD`` variable. Clang linker version 6 is
also select the clang or armclang assembler. Be aware that for Arm Compiler,
the GNU linker is used by default. However for Clang LLVM linker (LLD)
is used by default. In case of being needed the linker can be overridden
using the ``LD`` variable. LLVM linker (LLD) version 9 is
known to work with TF-A.
In both cases ``CROSS_COMPILE`` should be set as described above.
...
...
@@ -114,4 +115,4 @@ Performing an Initial Build
--------------
*Copyright (c) 20
19
, Arm Limited. All rights reserved.*
*Copyright (c) 20
20
, Arm Limited. All rights reserved.*
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment