<feed xmlns='http://www.w3.org/2005/Atom'>
<title>software/arm-trusted-firmware.git/make_helpers/cflags.mk, branch master</title>
<subtitle>Trusted Firmware-A</subtitle>
<id>https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/atom?h=master</id>
<link rel='self' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/'/>
<updated>2026-09-07T11:41:30+00:00</updated>
<entry>
<title>feat(build): enable -Wundef for C files if W &gt;= 1</title>
<updated>2026-09-07T11:41:30+00:00</updated>
<author>
<name>Yann Gautier</name>
<email>yann.gautier@st.com</email>
</author>
<published>2026-08-28T12:33:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=ccb3eb9aefd8b2f6d762366c4c7ba0a2e81b720e'/>
<id>urn:sha1:ccb3eb9aefd8b2f6d762366c4c7ba0a2e81b720e</id>
<content type='text'>
Add -Wundef to BL_FLAGS. This will then be enabled for all TF-A C files
through MAKE_C macro, but not for libs.
This flag is enabled only when W is defined in the build command line
and greater or equal to 1.

Change-Id: I6c327584b1e1bb0e1eb59c774a6c6a6788139b99
Signed-off-by: Yann Gautier &lt;yann.gautier@st.com&gt;
</content>
</entry>
<entry>
<title>fix(build): fix misapplication of errata A53 843419</title>
<updated>2026-08-05T13:28:18+00:00</updated>
<author>
<name>Chris Kay</name>
<email>chris.kay@arm.com</email>
</author>
<published>2026-07-24T17:30:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=810a5bc4f038e4b2671db284092e52a924614093'/>
<id>urn:sha1:810a5bc4f038e4b2671db284092e52a924614093</id>
<content type='text'>
When `ERRATA_A53_843419` is disabled, the build system tries to
counter-act the default toolchain configuration behaviour by querying
the linker for support for a `--no-fix-cortex-a53-843419` option, and
passing it if it is supported. This option, however, is completely
fictional; neither LD nor LLD can be configured to enable this errata
work-around by default.

GCC, on the other hand, *can* be configured to enable it by default.
When a GCC configured this way is used as the linker, it behaves as if
it was passed the `-mfix-cortex-a53-843419` option, which then passes
the `--fix-cortex-a53-843419` option to the linker. Consequently, in
this situation the errata work-around is applied regardless of the value
of the `ERRATA_A53_843419` build option.

The veneers generated by the linker when this work-around is enabled can
change the image layout, as was discovered when the Debian maintainers
encountered this as a section size overflow when building RK3328:

  - https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/36981/comments/877be809_5abf10d8

To resolve this, add a separate toolchain helper for probing options
accepted directly by the linker driver without going to the linker
itself, and use it to pass `-mno-fix-cortex-a53-843419` when the
work-around is disabled.

Change-Id: Ifffc683c0a5253a1085e1a1c2a2203950a232460
Signed-off-by: Chris Kay &lt;chris.kay@arm.com&gt;
LTS-candidate: yes
</content>
</entry>
<entry>
<title>fix(errata-abi): update management of REPORT_ERRATA</title>
<updated>2026-06-23T16:06:40+00:00</updated>
<author>
<name>Yann Gautier</name>
<email>yann.gautier@st.com</email>
</author>
<published>2026-05-27T15:38:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=43a605dc8d0f8e0524a92c9153a968f4da5e020a'/>
<id>urn:sha1:43a605dc8d0f8e0524a92c9153a968f4da5e020a</id>
<content type='text'>
For BL2, or when compiling libc, REPORT_ERRATA will not be defined.
To avoid warnings when enabling -Wundef flag, force REPORT_ERRATA to 0
for BL2.
For libc, when compiling setjmp.S, the issue is that it cannot be
defined the same way. As REPORT_ERRATA will only be enabled for BL1,
BL31 or BL32, rework the cpu_ops.h file to always check one of those
images is used before checking REPORT_ERRATA.

Change-Id: Ie4b708cfbb7f8eee9db3254069f179b148c5db6d
Signed-off-by: Yann Gautier &lt;yann.gautier@st.com&gt;
</content>
</entry>
<entry>
<title>fix(build): pass -flto-partition to the linker and not the compiler</title>
<updated>2026-02-02T09:29:51+00:00</updated>
<author>
<name>Boyan Karatotev</name>
<email>boyan.karatotev@arm.com</email>
</author>
<published>2026-02-02T09:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=ee0f27388fcad40e8ef3b094ef7c84215727d00b'/>
<id>urn:sha1:ee0f27388fcad40e8ef3b094ef7c84215727d00b</id>
<content type='text'>
It's irrelevant to the compiler, although most of the times it gets
enabled when compiler==linker so this doesn't show up. It is possible
that compiler!=linker (eg compiler=armclang, linker=gcc) with LTO
enabled though. Then this blows up since the check was done on the
linker and the argument passed to the compiler.

Change-Id: Ibc740599c71e892cae873976fed35e1b57658ff4
Signed-off-by: Boyan Karatotev &lt;boyan.karatotev@arm.com&gt;
</content>
</entry>
<entry>
<title>fix(build): fix BL2_CPPFLAGS when ENABLE_RME is set</title>
<updated>2026-01-27T16:38:53+00:00</updated>
<author>
<name>Arunachalam Ganapathy</name>
<email>arunachalam.ganapathy@arm.com</email>
</author>
<published>2025-11-06T11:55:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=6c3cfbd09c2ecd8efc98c9a29abe8c88b99411ee'/>
<id>urn:sha1:6c3cfbd09c2ecd8efc98c9a29abe8c88b99411ee</id>
<content type='text'>
Add IMAGE_AT_EL3 to BL2_CPPFLAGS as BL2 runs at EL3 when ENABLE_RME is
set. And use IMAGE_AT_EL3 for misc_helpers.S that is common for all BLs.

This fix enables cpu_reset ops in CPU libs when RME is enabled.

Signed-off-by: Arunachalam Ganapathy &lt;arunachalam.ganapathy@arm.com&gt;
Change-Id: I9d30b6f900a5fed1993b1c09156830290203ed33
</content>
</entry>
<entry>
<title>fix(build): assign the ldflags-common variable before appending to it</title>
<updated>2026-01-19T08:37:00+00:00</updated>
<author>
<name>Boyan Karatotev</name>
<email>boyan.karatotev@arm.com</email>
</author>
<published>2026-01-13T17:28:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=c46f2d9882b497d40a9808fc2854fa5e2bf86b76'/>
<id>urn:sha1:c46f2d9882b497d40a9808fc2854fa5e2bf86b76</id>
<content type='text'>
Otherwise the first value is lost, causing odd behaviours.

Change-Id: I6df892bf8f706db71d0aa7e67f5076cc9583e477
Signed-off-by: Boyan Karatotev &lt;boyan.karatotev@arm.com&gt;
</content>
</entry>
<entry>
<title>feat(morello): add Morello capability enablement changes</title>
<updated>2026-01-13T08:02:15+00:00</updated>
<author>
<name>Manoj Kumar</name>
<email>manoj.kumar3@arm.com</email>
</author>
<published>2020-10-02T16:11:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=27bc1386f00a2a5089e27ff00f97b41821dc08ed'/>
<id>urn:sha1:27bc1386f00a2a5089e27ff00f97b41821dc08ed</id>
<content type='text'>
This patch adds a build macro ENABLE_FEAT_MORELLO which when set will
compile BL31 firmware with changes required to boot capability
aware software.

It also adds helper function in c and assmbly to check if morello
hardware is present and if morello capability is enabled or not.

CE field, bits [23:20] in ID_AA64PFR1_EL1 defines whether morello
architecture is present or not, 0b0000 indicates that it is absent
and 0b0001 indicates that it is present. While whether capabilities
are enabled or not is decided at runtime with ENABLE_FEAT_MORELLO build
option.

Reference: https://developer.arm.com/documentation/ddi0606/latest/

Signed-off-by: Manoj Kumar &lt;manoj.kumar3@arm.com&gt;
Signed-off-by: Varshit Pandya &lt;varshit.pandya@arm.com&gt;
Change-Id: Ib16877acbfcb72c4bd8c08e97e44edc0a3e46089
</content>
</entry>
<entry>
<title>fix(build): set linker to lld before evaluating ld_option</title>
<updated>2025-11-10T08:36:29+00:00</updated>
<author>
<name>Dmitrii Sharshakov</name>
<email>d3dx12.xx@gmail.com</email>
</author>
<published>2025-11-10T08:09:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=5ecae95170dc730e187bcc34130b2c26e18fb915'/>
<id>urn:sha1:5ecae95170dc730e187bcc34130b2c26e18fb915</id>
<content type='text'>
This ensures ld_option is called with valid -fuse-ld option, therefore
filtering options against ones supported by lld and not the
system default linker Clang chooses without the option specified.

This change should not affect toolchains other than llvm-clang, since it
only moves a conditional concerning the said toolchain.

Resolves the following linking error that manifests itself when using
Clang versions 21 and higher for building TF-A:

&gt; ld.lld: error: unknown argument '--no-warn-rwx-segments'

Change-Id: I466f733377327a7c38ee27899be6681debf61e11
Signed-off-by: Dmitrii Sharshakov &lt;d3dx12.xx@gmail.com&gt;
</content>
</entry>
<entry>
<title>fix(build): put the -target definitions in toolchain.mk</title>
<updated>2025-10-20T13:16:13+00:00</updated>
<author>
<name>Boyan Karatotev</name>
<email>boyan.karatotev@arm.com</email>
</author>
<published>2025-09-10T12:57:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=aa6edba3954811559a5cc5bb3cd7968d45f3e1d2'/>
<id>urn:sha1:aa6edba3954811559a5cc5bb3cd7968d45f3e1d2</id>
<content type='text'>
Knowing the target is quite important and must be known early - it is
necessary for flag discovery and should be available much earlier than
cflags.mk's inclusion. So put it in toolchain.mk with the rest of the
toolchain configuration.

Change-Id: Ia8b522376d27171ad1282d05c162cddc0fca69ab
Signed-off-by: Boyan Karatotev &lt;boyan.karatotev@arm.com&gt;
</content>
</entry>
<entry>
<title>fix(build): align the cpu-ops flags with all others</title>
<updated>2025-10-20T13:16:01+00:00</updated>
<author>
<name>Boyan Karatotev</name>
<email>boyan.karatotev@arm.com</email>
</author>
<published>2025-09-10T12:51:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=28973741944acf2081463fd933e358e108ce2ab1'/>
<id>urn:sha1:28973741944acf2081463fd933e358e108ce2ab1</id>
<content type='text'>
Since the cpu-ops file was created we've obtained the constraints.mk and
cflags.mk files and we also have the defaults.mk. The cpu-ops file is
not much different to these three, just much more complex. This patch
keeps the complicated bit in cpu-ops.mk but it makes it behave like
defaults.mk. The non-complicated bits (like cross referencing and
compiler flags) go to their corresponding files. This centralises
responsibilities and makes it nicer to keep track of.

The reason for doing this untangling is that the order of defaulting,
cross referencing, and compiler flag selection is significant and we can
run into problems where seemingly identical lines of code produce
different outcomes.

Change-Id: Id4b7714e432a0d628d33412836fd5c93f0488970
Signed-off-by: Boyan Karatotev &lt;boyan.karatotev@arm.com&gt;
</content>
</entry>
</feed>
