1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-07-18 16:37:08 +00:00

Compare commits

...

53 Commits

Author SHA1 Message Date
Ralph Siemsen 5c09684863 arm-toolchain: ignore CVE-2019-15847 CVE-2021-37322
CVE-2019-15847 is a bug in gcc POWER9 back-end, which is not relevant
for ARM architecture. (It has been fixed in gcc 8.4, 9.3, and 10.1).

CVE-2021-37322 is a bug in c++filt, which is part of binutils rather
than gcc. The issue was fixed in binutils 2.32 (poky has 2.34).

These exclusions are needed only in the dunfell branch, as it is the
only one with affected gcc versions. Master branch has gcc 11.2,
hardknott has 10.2, and honister has 10.3.

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-08 14:48:17 -04:00
Jon Mason d21ded082c arm-bsp/gem5: ignore compiler warnings on aarch64
Some errors/warnings were still being seen on aarch64 builders.  Disable
the relevant GCC options to work around the issue.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-09 11:24:03 -05:00
Jon Mason 4158478279 arm-bsp/gem5: ignore compiler warnings
Compiler warnings for array-bounds and type-limits are causing the
builds to break.  Since they are not normally fatal, ignore them for
now.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-07 16:44:39 -05:00
Jon Mason ce07298783 arm-bsp: fix yyloc kernel build error
Backport patch from upstream to address the following error:
scripts/dtc/dtc-parser.tab.o:(.bss+0x20): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here

Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-07 10:23:54 -05:00
Sumit Garg 75e7f371f5 arm-toolchain: gcc-arm-9.2: Fix mangled patch
Apply commit dce28d8ac7fb ("gcc: Fix mangled patch") to
meta-arm-toolchain as well as it fixes a build problem when trying to
build kernel with gcc-plugins support.

Reported-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-02 08:55:59 -05:00
Ross Burton 3a2b7d55c7 CI: use the latest release of the Kas container
If we don't specify a tag name GitLab uses the 'latest' tag, which for
Kas is moved whenever an image build is made.

Instead explicitly use the latest-release tag, which is only updated
when a release is made.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-01-28 15:00:13 -05:00
Jon Mason ce535dfb96 CI: add ssh tests
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-09 16:09:56 -04:00
Jon Mason 9b64590a73 CI: merge testimage into the build stage
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-09 16:09:56 -04:00
Anastasios Kavoukis 7b36f95b77 CI: enable debug-tweaks IMAGE_FEATURE
This makes the images suitable for development and test,
debug-tweaks includes settings like empty root password.

All CI image builds inheriting from base.yml will
have this include this setting.

Signed-off-by: Anastasios Kavoukis <anastasios.kavoukis@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-09 16:09:56 -04:00
Timothy Mertz b79b9122e0 external-arm-sdk-toolchain: Fix parsing error with INCOMPATIBLE_LICENSE
This change fixes parsing error that occurs when INCOMPATIBLE_LICENSE =
"GPLv3" by defining EAT_BFD_LICENSE, EAT_GDB_LICENSE and EAT_RLE_LICENSE
in license.inc and requiring it in external-arm-sdk-toolchain.bb

Definitions in external-arm-toolchain-versions.inc are made redundant so
they are removed.

Signed-off-by: Timothy Mertz <timothy.mertz@garmin.com>
Signed-off-by: Joshua Watt <Joshua.Watt@garmin.com>
Reviewed-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-01 21:36:35 -04:00
Jon Mason ceb42f2d6c CI: add testing and testimage
Add a testing task to the gitlab CI and run testimage in that job.
Currently, it only runs against some of the qemu based machines.
Using slirp, there is no need for a privileged container or tun/tap
devices.

Change-Id: Ia85a3d0089f7d4dc7595c3a45d328c79d8e675f1
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-29 11:31:47 -04:00
Ross Burton c4b287c15d CI: mark build jobs as interruptible
Mark the build jobs as interruptible, as they don't write to shared
resources (unlike update-repos or get-binary-toolchains). This means
that if the same branch is pushed again GitLab is likely to be able to
abort the obsolete pipeline to start the new build sooner.

Change-Id: I9284273e9b3118b616d3cb062cb957d98fc5e37e
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-06-29 11:31:47 -04:00
Ross Burton c3bf8697b8 CI: report disk usage before/after pruning sstate
Change-Id: I66853ce1bf5e33c37094cc8fff04cbd4daaadf91
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-29 11:31:47 -04:00
Jon Mason 59974ccd5f ci: clean regularly to reduce size
The Gitlab CI executors do not clean-up after each run, which will
result in a ballooning size over time. Remove all files in the work
tree, removing the problem.  SSTATE should prevent this from causing
any performance by not having the files there.

Change-Id: I57df3cf470c519286fe194739a0a7722794f3b25
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-08 14:47:34 -04:00
Ross Burton 9dadb61b36 ci/base: don't try to make warnings fatal
The generated local.conf has ERROR_QA=${WARN_QA} in an attempt to make
warnings fatal, but this appears to be just disabling some warnings and
error instead.

As we already have warning detection in the GitLab CI script, this is
redundant and can be removed.

Change-Id: I393874edbae148ee338a7069bbf800603c028242
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-25 12:50:49 +01:00
Jon Mason d11487b64e CI: use public KAS image
Use the KAS docker image provided by the KAs project for Gitlab CI.
This allows for the external (non-Arm Corp) users/developers to run
Gitlab CI.

Change-Id: I9fee9a0d571e3fd60862d4ccd36176f9e583fc91
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-30 13:32:22 -04:00
Jon Mason 9545c366da CI: Reorder manual tasks to be alphabetical
Change-Id: I2e5bfdf5794c99da530bc2645fb56a5444444be3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-30 13:32:22 -04:00
Jon Mason 278cc2d30f CI: Add repo dir to disk usage and ability to purge everything
Add the newly added repo dir to the disk usage calculation and add the
ability to remove each of the persistent directories.

Change-Id: Ib922ad42c62efdeccf01851ac751742ed67748ae
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-23 14:13:56 -04:00
Jon Mason cfd4f06db6 Rename top-level kas/ to ci/
The files in kas/ are not generic Kas files, but instead designed
specifically and solely around the CI system.

Change-Id: I30082392ad2231a4c1c41e54a292595adf81715b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-23 14:13:02 -04:00
Ross Burton 76ea95b680 CI: move utility tasks to prep so they don't cause a fetch
Re-order the tasks so that the utility tasks don't cause update-repos to
run.

Change-Id: I86a528c98fe32e20428f9efbd5fb82c374aefc8a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-23 14:11:18 -04:00
Ross Burton 1a212b2fd9 CI: maintain centralised repositories to speed fetching
Kas supports 'reference repositories' which are used as a local source
of git objects to speed up fetches.  At the beginning of the CI run we
can update these repositories once to speed up later fetches.

Change-Id: I138051fd3cf9b5675e0fa5007cd8088abd17db4e
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-23 14:11:08 -04:00
Ross Burton 32dd6a45e0 CI: add qemuarm and qemuarmv5
Change-Id: Ie5e1fdf0870ed578faaf6ca2d6c6e73bad340f1e
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-23 14:10:37 -04:00
Ross Burton a830823270 CI: delete-sstate needs to delete contents
Change-Id: I278d470540e20db8d789a1428e927356e3a5d8b1
2021-04-23 14:09:26 -04:00
Ross Burton ccd4623b86 CI: add task to delete all sstate
Change-Id: If89c6c27cafe6ae7e93b5db5d37b9e8ecdaee131
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-04-23 14:09:08 -04:00
Ross Burton 1cfe374b97 CI: don't retry jobs
We can't retry jobs blindly because if a build fails with warnings we want
to fail the job.  With retries enabled the job fails, but is immediately
retried and builds quickly from sstate without any warnings.

Thus, all and any warnings are hidden.

Disabling retries. We may get occasional failures from Docker, we'll have
to see how bad they are.

Change-Id: Ib726f14a264c029fdf372fc1b8a02aca52bf5e4c
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-04-23 14:08:11 -04:00
Nathan Dunne 1cf8b975e1 arm-autonomy/u-boot: Modified kernel_addr for fvp-base with xen
Modified the default booti command for fvp-base with xen to boot
into xen at 0x84000000, rather than requiring the user to break
into the u-boot prompt.

Issue-Id: SCM-2195
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I91f324ce77716474596a78f97e74f432969d9803
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-25 09:32:31 -04:00
Richard Neill b8b0d88d58 arm-autonomy: Add meta-networking dependency to autonomy layer config
meta-arm-autonomy requires the bridge-utils package, which is provided by the
meta-openembedded/meta-networking layer. This patch adds the explicit
dependency.

Issue-Id: SCM-2166
Signed-off-by: Richard Neill <richard.neill@arm.com>
Change-Id: I7e8640a0688e5eb0a1c1d91202004f9b27731b1b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-04 15:17:36 -05:00
Jon Mason 02c6605216 arm-toolchain: Fix potential runtime crash
GCCv9 tree vectorization code is faulty and can cause random crashes at
runtime (when using -O3).  Add the backported patch to address this
issue.

Change-Id: If7bb0ba0720bab42e7d34f3679d988934f657392
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-16 09:46:11 -05:00
Jon Mason f7c5e7d509 arm-bsp/u-boot: fix a5ds compile warning
a5ds has the following warning:

WARNING: Fuzz detected:

checking file arch/arm/Kconfig
Hunk #1 succeeded at 628 with fuzz 2.
checking file board/armltd/designstart/Kconfig
checking file board/armltd/designstart/Makefile
checking file board/armltd/designstart/designstart.c
checking file configs/designstart_ca5_defconfig
checking file include/configs/designstart_ca5.h

patching file arch/arm/Kconfig
Hunk #1 succeeded at 628 with fuzz 2.
patching file board/armltd/designstart/Kconfig
patching file board/armltd/designstart/Makefile
patching file board/armltd/designstart/designstart.c
patching file configs/designstart_ca5_defconfig
patching file include/configs/designstart_ca5.h

The context lines in the patches can be updated with devtool:

    devtool modify u-boot
    devtool finish --force-patch-refresh u-boot <layer_path>

Don't forget to review changes done by devtool!

WARNING: QA Issue: Patch log indicates that patches do not apply cleanly. [patch-fuzz]

Followed above instructions to refresh the patches.  Warning goes away.
Everyone is happy.

Change-Id: I47da5f987f9a7ebfe5ca570ad1053e55cc1a509a
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 16:00:31 -05:00
Ross Burton 78131b1bed ci: fail any build that emits warnings
Using a custom logging.yml we can instruct BitBake's logger to write all
warnings and errors into a separate log file.

Then after the build has finished we can see if the log file is empty and if
not show it and abort the build.

Change-Id: Ida835b5c822941fb513dfb1758b4ec195e0050fc
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-17 12:10:11 +00:00
Ross Burton 68c43a96f8 ci: make bootstrap just another kas overlay
Simplify the gitlab-ci by having the bootstrap build as just another Kas
overlay file, so there's no duplication of build script.

Change-Id: I7341750d2ae7f3c146bfe323f61fa98c0f3121c0
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-17 12:09:48 +00:00
Ross Burton b634999990 kas: now that linux-stable is unused, remove it from kas
Change-Id: I263cf1658c6bfc774bcf7b9c24d164003e88f634
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-17 12:09:48 +00:00
Jon Mason 3786692d6a arm-bsp: Fix FVP kernel warning
ARM_TIMER_SP804 config entry is not being found.  Add COMPILE_TEST to
allow for it to show up.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 13:47:17 -05:00
Jon Mason b760504b77 arm-bsp: Fix Juno kernel config warnings
Juno kernel compilation is displaying warnings due to missing
dependencies.  Add the missing dependencies and the warnings go away.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 12:37:43 -05:00
Jon Mason d3263fceb5 arm-bsp: switch to linux-yocto for a5ds
Keeping with what is being done on the master branch, switch to using
linux-yocto for the 5.3 kernel.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 11:33:50 -05:00
Ross Burton 49046a8af4 Add experimental CI using Kas+GitLab
Add kas scripts that generic to test builds, and a GitLab CI runner.

This is mainly a cut-down copy of what is in the master/gatesgarth
branches with the following changes:

- Just the BSPs that are in the Dunfell release, obviously
- No clang testing. There are patches in master that can be backported
  if required.
- Added testing of the armgcc-9.2 compiler. This is currently broken for
  some configurations in master and the testing will be forward-ported
  when it passes.

Change-Id: I9c2a4f66318b3ccc066d423f3533202ee33f0c9d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 11:06:11 -05:00
Denys Dmytriyenko 316d9318ee external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries
Allows re-use of prebuilt ARM toolchain binaries for SDK generation.

This code is upstreamed from meta-arago layer.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
[Sumit: package headers corresponding to EAT_TARGET_SYS and add PV]
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Denys Dmytriyenko ad51ecbe91 external-arm-toolchain: check for TCLIBC being glibc
The old TARGET_OS check doesn't work, as it only checks for uclibc and musl at
the end, while TARGET_OS is usually "linux-musleabi", uclibc has been deprecated
and new options like "newlib" and "baremetal" were added. Plus it only works for
the target, but not SDK. Switch to simply checking for TCLIBC = glibc.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Denys Dmytriyenko 5b37926c76 external-arm-toolchain-versions: set per-component toolchain licenses
This code is upstreamed from meta-arago layer.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Denys Dmytriyenko c316a25b54 external-arm-toolchain-versions: also collect binutils/bfd version
To be used by SDK packaging for binutils cross.

This code is upstreamed from meta-arago layer.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Ross Burton 38646ed13e arm-toolchain/gcc-arm-none-eabi: support aarch64 hosts
This binary toolchain is also available for aarch64, so support fetching
that too.

Change-Id: I6206d8a9b4221d8461070d0cb7fff40c712c3df0
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Ross Burton 2e759bee20 arm-toolchain/gcc-aarch64-none-elf: support aarch64 hosts
This binary toolchain is also available for aarch64, so support fetching
that too.

Change-Id: I788fcd95c30b97f095593059e85de9a99710be05
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Ross Burton 4758aec30a arm-toolchain/arm-binary-toolchain: more QA skipping
When building nativesdk or target forms of these recipes more QA tests
are executed, which produce more warnings. As these recipes are quite
special, skip more tests:

- arch, as we ship ilp32 binaries in aarch64 packages
- dev-so, as the entire toolchain is put into a single package

Change-Id: Ib72b224749642c912278f0d5601fe04b30afc25f
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Ross Burton d9471e4ced arm-toolchain/recipes-devtools: move compatible host assignments
Some of the toolchains are available in more than just x86-64, so move
the COMPATIBLE_HOST assignment out of the include and into the recipes.

Change-Id: I10977593935bc7dc50196132d43541aed585cc18
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Ross Burton 9502510a61 arm-toolchain/gcc-aarch-none-elf: don't use GFLD as license checksum
The GFDL license statement isn't a good choice for the GCC license
checksum, instead use Copying.html from the documentation.

Change-Id: I265bb0add795f3de40f49f8c31127ac9215d2566
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Ross Burton 06c331c922 arm-toolchain/external-arm-toolchain: rename common include
These recipes all used a common include
external-arm-toolchain-x86host.inc, but that name isn't very meaningful:
the recipes are for x86-64, there typically are more than x86-64
binaries available, and it's not for an external toolchain but
integrating a binary toolchain.

Rename the include to arm-binary-toolchain.inc, as they're all the Arm
binary toolchain.

Change-Id: I59f5faa7373686958e226db0aa68e7880d36400e
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Gabor Abonyi a35a629c92 arm-toolchain: armcompiler: Add Arm Clang recipe
Adds Arm Clang recipe to pull down the prebuilt Armcompiler for
compiling for Cortex-A, Cortex-R, and Cortex-M processors from ARM.
This toolchain is required to build Arm trusted-firmware-m with
different optimisations than GCC can provide for M-class processors.

This recipe is based on the gcc-arm-none-eabi-native toolchain.

Change-Id: I0110f899ec6e5b355c5b7661db1f4aa0e254e7e2
Signed-off-by: Gabor Abonyi <gabor.abonyi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Gabor Abonyi c63ac9cf0e arm-toolchain: external-arm-toolchain: Rename
Rename common external-arm-toolchain file, so it can be used by non-gcc
external toolchains too.

Change-Id: I48345dc53bc3d20f33b44fc0224b511f30107036
Signed-off-by: Gabor Abonyi <gabor.abonyi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Sumit Garg 246ff54a93 external-arm-toolchain: Add package specific licenses
Add license.inc file to state license of various packages provided by
pre-built Arm tool-set.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Sumit Garg 1644922ac6 external-arm-toolchain: Align glibc packaging to OE TARGET_SYS
OE native and cross compilers (in case of SDK) uses OE TARGET_SYS to
create standard paths to search for libraries and headers during
compilation.

Currently external-arm-toolchain recipe temporarily override TARGET_SYS
with EAT_TARGET_SYS and packages libraries and headers corresponding to
EAT_TARGET_SYS which leads to failures during native and cross compilation
(in case of SDK) such as:

$ $CXX -o hello++ hello.cpp
In file included from hello.cpp:1:
/tmp/armsdk/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/include/c++/9.2.1/iostream:38:10: fatal error: bits/c++config.h: No such file or directory
   38 | #include <bits/c++config.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.

$ $CC hello.c
real-ld: cannot find crtbeginS.o: No such file or directory

So remove temp override of TARGET_SYS and rather package libraries and
headers corresponding to OE TARGET_SYS.

This fixes changes added in commit:
https://git.linaro.org/openembedded/meta-linaro.git/commit/?id=91ea4d017bf0598e49944e76c889e66d58c066ce

Also, update location for unwind.h gcc-arm-common.inc accordingly.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Sumit Garg f80387554c external-arm-toolchain: Refine dev libraries/headers packaging
OE core by default package all libraies/headers installed as
"${libdir}/lib*.so", "${libdir}/*.la" and {includedir} as part of
FILES_${PN}-dev" but in case of external Arm toolchain recipe, multiple
packages are provided which needs to include specific libraries and
headers. And "${PN}-dev" is only meant to pick up remaining dev libraries
and headers that aren't picked up by other packages.

So in order to achieve above objective, re-order PACKAGES list to shift
${PN}-dev towards the end. And since some static libraries needs to be
packaged in ${PN}-dev, so we need to keep ${PN}-staticdev later in order.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Sumit Garg e2b31d1894 external-arm-toolchain: Remove glibc locale dependency
Currently external Arm toolchain recipe doesn't provide packages
corresponding to OE glibc locale recipe. So explicitly remove corresponding
libc dependencies until we sort out glibc locale packaging rather than
blocking OE SDK generation which is still useful without glibc locale
packaging.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
Denys Dmytriyenko 0078d68b46 external-arm-toolchain: un-break target compilation
Compiling on the target using runtime libs from external-arm-toolchain
requires libgcc.a, as libgcc_s.so explains:

/* GNU ld script
   Use the shared library, but some functions are only in
   the static library.  */
GROUP ( libgcc_s.so.1 -lgcc )

Otherwise it results in errors like:
| /usr/lib/gcc/arm-linux-gnueabi/9.2.1/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgcc
| /usr/lib/gcc/arm-linux-gnueabi/9.2.1/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgcc
| collect2: error: ld returned 1 exit status

This already has been fixed before in this commit:
https://git.linaro.org/openembedded/meta-linaro.git/commit/?id=91ea4d017bf0598e49944e76c889e66d58c066ce

But then it got broken/undone here w/o due review:
https://git.linaro.org/openembedded/meta-linaro.git/commit/?id=b43d5f0ce431ba1e242504641266a63293ded5db

Even though it's a static library, we want it to be in libgcc-dev as it's
not optional, but rather required for development.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 11:23:24 -05:00
59 changed files with 5195 additions and 69 deletions
+144
View File
@@ -0,0 +1,144 @@
image: ghcr.io/siemens/kas/kas:latest-release
# First do a common bootstrap, and then build all the targets
stages:
- prep
- bootstrap
- build
# Common job fragment to get a worker ready
.setup:
stage: build
variables:
KAS_WORK_DIR: $CI_PROJECT_DIR/work
KAS_REPO_REF_DIR: $CI_BUILDS_DIR/persist/repos
SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate
DL_DIR: $CI_BUILDS_DIR/persist/downloads
BB_LOGCONFIG: $CI_PROJECT_DIR/ci/logging.yml
IMAGE_DIR: $CI_PROJECT_DIR/work/build/tmp/deploy/images
before_script:
- echo KAS_WORK_DIR = $KAS_WORK_DIR
- echo SSTATE_DIR = $SSTATE_DIR
- echo DL_DIR = $DL_DIR
- rm -rf $KAS_WORK_DIR
- mkdir --verbose --parents $KAS_WORK_DIR $KAS_REPO_REF_DIR $SSTATE_DIR $DL_DIR
# Generalised fragment to do a Kas build
.build:
extends: .setup
interruptible: true
script:
- KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME)
- kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
- kas build $KASFILES
- ./ci/check-warnings $KAS_WORK_DIR/build/warnings.log
#
# Prep stage, update repositories once
#
update-repos:
extends: .setup
stage: prep
script:
- flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos
#
# Bootstrap stage, bootstrap and machine coverage
#
# Build a number of native tools first to ensure the other builders don't race
# over them
n1sdp/bootstrap:
extends: .build
stage: bootstrap
# What percentage of machines in the layer do we build
machine-coverage:
stage: bootstrap
script:
- ./ci/check-machine-coverage
coverage: '/Coverage: \d+/'
#
# Build stage, the actual build jobs
#
a5ds:
extends: .build
foundation-armv8:
extends: .build
fvp-base:
extends: .build
gem5-arm64:
extends: .build
juno:
extends: .build
juno/musl:
extends: .build
n1sdp:
extends: .build
n1sdp/armgcc:
extends: .build
qemuarm/testimage:
extends: .build
qemuarmv5/testimage:
extends: .build
tc0:
extends: .build
#
# Utility tasks, not executed automatically
#
delete-dl-dir:
extends: .setup
stage: prep
when: manual
script:
- rm -rf $DL_DIR/*
delete-repo-dir:
extends: .setup
stage: prep
when: manual
script:
- rm -rf $KAS_REPO_REF_DIR/*
# Delete all sstate
delete-sstate:
extends: .setup
stage: prep
when: manual
script:
- rm -rf $SSTATE_DIR/*
# Wipe out old sstate
prune-sstate:
extends: .setup
stage: prep
when: manual
script:
- du -h -s $SSTATE_DIR
- find $SSTATE_DIR -type f -atime +30 -delete
- du -h -s $SSTATE_DIR
# Report on disk usage
usage:
extends: .setup
stage: prep
when: manual
script:
- du -h -s $DL_DIR $SSTATE_DIR $KAS_REPO_REF_DIR
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: a5ds
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
local_conf_header:
libc: |
GCCVERSION = "arm-9.2"
+48
View File
@@ -0,0 +1,48 @@
header:
version: 9
distro: poky
defaults:
repos:
refspec: dunfell
repos:
meta-arm:
layers:
meta-arm:
meta-arm-bsp:
meta-arm-toolchain:
poky:
url: https://git.yoctoproject.org/git/poky
layers:
meta:
meta-poky:
meta-openembedded:
url: https://git.openembedded.org/meta-openembedded
layers:
meta-oe:
env:
BB_LOGCONFIG: ""
local_conf_header:
base: |
CONF_VERSION = "1"
PACKAGE_CLASSES = "package_ipk"
LICENSE_FLAGS_WHITELIST += "armcompiler"
PACKAGECONFIG_remove_pn-qemu-system-native = "gtk+ sdl"
EXTRA_IMAGE_FEATURES_append = " debug-tweaks"
BB_NUMBER_THREADS = "16"
PARALLEL_MAKE = "-j16"
INHERIT += "rm_work"
ptest: |
DISTRO_FEATURES_remove = "ptest"
machine: unset
target:
- core-image-base
# - perf
+9
View File
@@ -0,0 +1,9 @@
header:
version: 9
target:
- binutils-cross-aarch64
- gcc-cross-aarch64
- python3-native
- opkg-native
- rpm-native
+26
View File
@@ -0,0 +1,26 @@
#! /usr/bin/env python3
from pathlib import Path
import sys
metaarm = Path.cwd()
if metaarm.name != "meta-arm":
print("Not running inside meta-arm")
sys.exit(1)
# All machine configurations
machines = metaarm.glob("meta-*/conf/machine/*.conf")
machines = set(p.stem for p in machines)
# All ci files
ci = metaarm.glob("ci/*.yml")
ci = set(p.stem for p in ci)
missing = machines - ci
print(f"The following machines are missing: {', '.join(sorted(missing))}.")
covered = len(machines) - len(missing)
total = len(machines)
percent = int(covered / total * 100)
print(f"Coverage: {percent}%")
+18
View File
@@ -0,0 +1,18 @@
#! /bin/bash
# Expects the path to a log file as $1, and if this file has any content
# then display the contents and exit with an error code.
set -e -u
LOGFILE=$1
if test -s $LOGFILE; then
echo ==============================
echo The build had warnings/errors:
echo ==============================
cat $LOGFILE
exit 1
fi
exit 0
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
repos:
meta-clang:
url: https://github.com/kraj/meta-clang
local_conf_header:
clang: |
TOOLCHAIN = "clang"
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: foundation-armv8
+7
View File
@@ -0,0 +1,7 @@
header:
version: 9
includes:
- base.yml
machine: fvp-base
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
includes:
- base.yml
machine: gem5-arm64
target:
- core-image-minimal
- gem5-aarch64-native
Executable
+19
View File
@@ -0,0 +1,19 @@
#! /bin/bash
# Read a GitLab CI job name on $1 and transform it to a
# list of Kas yaml files
set -e -u
# Read Job namne from $1 and split on /
IFS=/ read -r -a PARTS<<<$1
# Prefix each part with ci/
PARTS=("${PARTS[@]/#/ci/}")
# Suffix each part with .yml
PARTS=("${PARTS[@]/%/.yml}")
# Print colon-separated
IFS=":"
echo "${PARTS[*]}"
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: juno
+13
View File
@@ -0,0 +1,13 @@
# Python logging configuration to write all warnings to a separate file
version: 1
handlers:
warnings:
class: logging.FileHandler
level: WARNING
filename: warnings.log
formatter: BitBake.logfileFormatter
loggers:
BitBake:
handlers: [warnings]
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
local_conf_header:
libc: |
TCLIBC = "musl"
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: n1sdp
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: qemuarm
+11
View File
@@ -0,0 +1,11 @@
header:
version: 9
includes:
- base.yml
machine: qemuarmv5
local_conf_header:
bugs: |
# Remove parselogs until errors can be resolved
TEST_SUITES_remove = "parselogs"
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: tc0
+17
View File
@@ -0,0 +1,17 @@
header:
version: 9
local_conf_header:
testimage: |
IMAGE_CLASSES += "testimage"
TESTIMAGE_AUTO = "1"
slirp: |
TEST_RUNQEMUPARAMS = "slirp"
TEST_SERVER_IP = "127.0.0.1"
QEMU_USE_SLIRP = "1"
packages: |
IMAGE_FEATURES_append = " ssh-server-dropbear"
# Multiple targets are available, put it down to just one
target:
- core-image-base
+41
View File
@@ -0,0 +1,41 @@
#! /usr/bin/env python3
# Update clones of the repositories we need in KAS_REPO_REF_DIR to speed up fetches
import sys
import os
import subprocess
import pathlib
def repo_shortname(url):
# Taken from Kas (Repo.__getattr__) to ensure the logic is right
from urllib.parse import urlparse
url = urlparse(url)
return ('{url.netloc}{url.path}'
.format(url=url)
.replace('@', '.')
.replace(':', '.')
.replace('/', '.')
.replace('*', '.'))
repositories = (
"https://git.yoctoproject.org/git/poky",
"https://git.openembedded.org/meta-openembedded",
"https://git.yoctoproject.org/git/meta-virtualization",
"https://git.yoctoproject.org/git/meta-zephyr",
"https://github.com/kraj/meta-clang",
)
if __name__ == "__main__":
if "KAS_REPO_REF_DIR" not in os.environ:
print("KAS_REPO_REF_DIR needs to be set")
sys.exit(1)
base_repodir = pathlib.Path(os.environ["KAS_REPO_REF_DIR"])
for repo in repositories:
repodir = base_repodir / repo_shortname(repo)
if repodir.exists():
subprocess.run(["git", "-C", repodir, "fetch"], check=True)
else:
subprocess.run(["git", "clone", "--bare", repo, repodir], check=True)
+1
View File
@@ -14,6 +14,7 @@ LAYERDEPENDS_meta-arm-autonomy = " \
core \
yocto \
openembedded-layer \
networking-layer \
virtualization-layer \
"
LAYERSERIES_COMPAT_meta-arm-autonomy = "dunfell"
@@ -115,6 +115,10 @@ To boot the system using an u-boot base board you will need to:
In this example the addresses might need to be adapted depending on your board.
For arm-autonomy host on FVP-Base u-boot has been modified such that
`booti 0x84000000 - 0x83000000` is the default boot command. If FVP-Base is your
MACHINE target there should be no need to interfere with u-boot.
Guest project
-------------
The guest projects are not target specific and will use a Yocto MACHINE defined
@@ -0,0 +1,16 @@
Upstream Status: Inappropriate [meta-arm-autonomy specifc u-boot config]
Signed-off-by: Nathan Dunne <nathan.dunne@arm.com>
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index e63c335f85..9ee050a4a6 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -162,7 +162,7 @@
#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
#define CONFIG_EXTRA_ENV_SETTINGS \
"kernel_name=Image\0" \
- "kernel_addr=0x80080000\0" \
+ "kernel_addr=0x84000000\0" \
"initrd_name=ramdisk.img\0" \
"initrd_addr=0x88000000\0" \
"fdtfile=devtree.dtb\0" \
@@ -0,0 +1,9 @@
# Machine specific u-boot
FILESEXTRAPATHS_prepend := "${THISDIR}/${BP}:"
#
# FVP BASE
#
SRC_URI_append_fvp-base = "${@bb.utils.contains('DISTRO_FEATURES', 'arm-autonomy-host', ' file://xen_u-boot_kernel_addr.patch', '', d)}"
+1 -1
View File
@@ -9,5 +9,5 @@ BBFILE_COLLECTIONS += "meta-arm-bsp"
BBFILE_PATTERN_meta-arm-bsp = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-arm-bsp = "6"
LAYERDEPENDS_meta-arm-bsp = "core openembedded-layer meta-arm meta-kernel"
LAYERDEPENDS_meta-arm-bsp = "core openembedded-layer meta-arm"
LAYERSERIES_COMPAT_meta-arm-bsp = "warrior zeus dunfell"
+3 -2
View File
@@ -6,9 +6,10 @@
require conf/machine/include/tune-cortexa5.inc
PREFERRED_PROVIDER_virtual/kernel ?= "linux-stable"
PREFERRED_VERSION_linux-stable ?= "5.3%"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "5.3%"
KBUILD_DEFCONFIG = "multi_v7_defconfig"
KCONFIG_MODE = "--alldefconfig"
EXTRA_IMAGEDEPENDS += "virtual/trusted-firmware-a u-boot"
@@ -1,12 +1,13 @@
From 8525c72c438b0aa66f1f38db37bd7aacf7e3ce34 Mon Sep 17 00:00:00 2001
From 42fd533d68fd70e23a1150715da3dea7ce87b51f Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Wed, 18 Dec 2019 21:52:34 +0000
Subject: [PATCH 1/2] armv7: add mmio timer
Subject: [PATCH] armv7: add mmio timer
This timer can be used by u-boot when arch-timer is not available in
core, for example, Cortex-A5.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
arch/arm/cpu/armv7/Makefile | 1 +
arch/arm/cpu/armv7/mmio_timer.c | 56 +++++++++++++++++++++++++++++++++
@@ -18,17 +19,17 @@ diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile
index 8c955d0d5284..82af9c031277 100644
--- a/arch/arm/cpu/armv7/Makefile
+++ b/arch/arm/cpu/armv7/Makefile
@@ -28,6 +28,7 @@ obj-$(CONFIG_ARMV7_PSCI) += psci.o psci-common.o
@@ -28,6 +28,7 @@ obj-$(CONFIG_ARMV7_PSCI) += psci.o psci-common.o
obj-$(CONFIG_IPROC) += iproc-common/
obj-$(CONFIG_KONA) += kona-common/
obj-$(CONFIG_SYS_ARCH_TIMER) += arch_timer.o
+obj-$(CONFIG_SYS_MMIO_TIMER) += mmio_timer.o
ifneq (,$(filter s5pc1xx exynos,$(SOC)))
obj-y += s5p-common/
diff --git a/arch/arm/cpu/armv7/mmio_timer.c b/arch/arm/cpu/armv7/mmio_timer.c
new file mode 100644
index 000000000000..1b905db8bb19
index 000000000000..5d6f66172398
--- /dev/null
+++ b/arch/arm/cpu/armv7/mmio_timer.c
@@ -0,0 +1,56 @@
@@ -100,6 +101,3 @@ index cf1808e051c8..8624714ae7a6 100644
CONFIG_SYS_MONITOR_
CONFIG_SYS_MONITOR_BASE
CONFIG_SYS_MONITOR_BASE_EARLY
--
2.25.0
@@ -1,12 +1,13 @@
From 2417d0991f73ee2c83946fcac208a7d6894f4530 Mon Sep 17 00:00:00 2001
From 9bd7c18ca08257826557ce177457bb5a89780e64 Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Wed, 8 Jan 2020 09:48:11 +0000
Subject: [PATCH 2/2] board: arm: add designstart cortex-a5 board
Subject: [PATCH] board: arm: add designstart cortex-a5 board
Arm added a new board, designstart, with a cortex-a5 chip, add the
default configuration, initialization and makefile for this system.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
arch/arm/Kconfig | 7 ++
board/armltd/designstart/Kconfig | 12 +++
@@ -22,13 +23,13 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
create mode 100644 include/configs/designstart_ca5.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f9dab073ea14..2cc9413114de 100644
index 36c9c2fecd01..4fe0796fd1f1 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -628,6 +628,12 @@ config ARCH_BCM6858
select OF_CONTROL
imply CMD_DM
select OF_CONTROL
imply CMD_DM
+config TARGET_DESIGNSTART_CA5
+ bool "Support Designstart Cortex-A5"
+ select CPU_V7A
@@ -36,8 +37,8 @@ index f9dab073ea14..2cc9413114de 100644
+ select PL01X_SERIAL
+
config TARGET_VEXPRESS_CA15_TC2
bool "Support vexpress_ca15_tc2"
select CPU_V7A
bool "Support vexpress_ca15_tc2"
select CPU_V7A
@@ -1782,6 +1788,7 @@ source "board/Marvell/gplugd/Kconfig"
source "board/armadeus/apf27/Kconfig"
source "board/armltd/vexpress/Kconfig"
@@ -48,7 +49,7 @@ index f9dab073ea14..2cc9413114de 100644
source "board/broadcom/bcm963158/Kconfig"
diff --git a/board/armltd/designstart/Kconfig b/board/armltd/designstart/Kconfig
new file mode 100644
index 000000000000..6446fe3f4492
index 000000000000..a9564e8655e2
--- /dev/null
+++ b/board/armltd/designstart/Kconfig
@@ -0,0 +1,12 @@
@@ -66,7 +67,7 @@ index 000000000000..6446fe3f4492
+endif
diff --git a/board/armltd/designstart/Makefile b/board/armltd/designstart/Makefile
new file mode 100644
index 000000000000..b64c905c7021
index 000000000000..d2dc2b74ed85
--- /dev/null
+++ b/board/armltd/designstart/Makefile
@@ -0,0 +1,8 @@
@@ -80,7 +81,7 @@ index 000000000000..b64c905c7021
+obj-y := designstart.o
diff --git a/board/armltd/designstart/designstart.c b/board/armltd/designstart/designstart.c
new file mode 100644
index 000000000000..b0400f110ce2
index 000000000000..658057a00330
--- /dev/null
+++ b/board/armltd/designstart/designstart.c
@@ -0,0 +1,49 @@
@@ -178,7 +179,7 @@ index 000000000000..a2a756740295
+
diff --git a/include/configs/designstart_ca5.h b/include/configs/designstart_ca5.h
new file mode 100644
index 000000000000..79c4b36060d2
index 000000000000..6db5b1cf4ac2
--- /dev/null
+++ b/include/configs/designstart_ca5.h
@@ -0,0 +1,122 @@
@@ -304,6 +305,3 @@ index 000000000000..79c4b36060d2
+#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE
+#define CONFIG_ENV_IS_IN_FLASH 1
+#endif
--
2.25.0
@@ -21,7 +21,7 @@ require gem5-aarch64-native.inc
require gem5-native.inc
# Get rid of compiler errors when building protobuf
GEM5_SCONS_ARGS_append = " CCFLAGS_EXTRA='-Wno-error=unused-variable' --verbose"
GEM5_SCONS_ARGS_append = " CCFLAGS_EXTRA='-Wno-error=unused-variable -Wno-error=array-bounds -Wno-error=parentheses -Wno-type-limits' --verbose"
# Get rid of linker errors and have a faster link process
GEM5_SCONS_ARGS_append = " LDFLAGS_EXTRA='${BUILD_LDFLAGS}' \
@@ -1,3 +1,4 @@
# Dual timer module
CONFIG_COMPILE_TEST=y
CONFIG_ARM_TIMER_SP804=y
CONFIG_CLK_SP810=y
@@ -1,5 +1,6 @@
CONFIG_PCI=y
CONFIG_PCI_MSI=y
CONFIG_PCI_IOV=y
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
@@ -2,6 +2,7 @@ CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_SEQUENCER_OSS=y
@@ -0,0 +1,54 @@
Upstream-Status: Backport
Signed-off-by: Jon Mason <jon.mason@arm.com>
From e33a814e772cdc36436c8c188d8c42d019fda639 Mon Sep 17 00:00:00 2001
From: Dirk Mueller <dmueller@suse.com>
Date: Tue, 14 Jan 2020 18:53:41 +0100
Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration
gcc 10 will default to -fno-common, which causes this error at link
time:
(.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here
This is because both dtc-lexer as well as dtc-parser define the same
global symbol yyloc. Before with -fcommon those were merged into one
defintion. The proper solution would be to to mark this as "extern",
however that leads to:
dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls]
26 | extern YYLTYPE yylloc;
| ^~~~~~
In file included from dtc-lexer.l:24:
dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here
127 | extern YYLTYPE yylloc;
| ^~~~~~
cc1: all warnings being treated as errors
which means the declaration is completely redundant and can just be
dropped.
Signed-off-by: Dirk Mueller <dmueller@suse.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
[robh: cherry-pick from upstream]
Cc: stable@vger.kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
---
scripts/dtc/dtc-lexer.l | 1 -
1 file changed, 1 deletion(-)
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 5c6c3fd557d7..b3b7270300de 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -23,7 +23,6 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
--
2.30.2
@@ -8,6 +8,7 @@ SRC_URI_append = " \
file://defconfig \
file://0001-drm-Add-component-aware-simple-encoder.patch \
file://0002-swap-red-and-blue-colors-in-HDLCD-driver.patch \
file://0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch \
"
KCONFIG_MODE = "--alldefconfig"
@@ -4,14 +4,13 @@ KBRANCH ?= "latest-4.19-armlt-19.01"
require recipes-kernel/linux/linux-yocto.inc
SRCREV_machine ?= "e97e8d868aba53467039dbef3b7436c857433ae3"
SRCREV_meta ?= "ad6f8b357720ca8167a090713b7746230cf4b314"
SRC_URI = "git://git.linaro.org/landing-teams/working/arm/kernel-release.git;name=machine;branch=${KBRANCH}; \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA} \
file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
file://0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch \
"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
@@ -13,6 +13,7 @@ KBRANCH = "n1sdp"
SRC_URI = "git://git.linaro.org/landing-teams/working/arm/kernel-release.git;nobranch=1 \
file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
file://0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch \
"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
@@ -1,3 +0,0 @@
# Add support for Arm Platforms (boards or simulators)
require linux-arm-platforms.inc
@@ -0,0 +1,17 @@
KBRANCH = "v5.3/base"
require recipes-kernel/linux/linux-yocto.inc
SRCREV_machine = "d4f3318ed8fab6316cb7a269b8f42306632a3876"
SRCREV_meta = "8d0ed83a864cc91eef4d2abbc90f13d4ecd1c213"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA} \
file://0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch \
"
LINUX_VERSION = "5.3.18"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
PV = "${LINUX_VERSION}+git${SRCPV}"
KMETA = "kernel-meta"
@@ -117,6 +117,15 @@ def eat_get_gdb_version(d):
first_line = stdout.splitlines()[0]
return first_line.split()[-1]
def eat_get_bfd_version(d):
try:
stdout, stderr = eat_run(d, 'as', '--version')
except bb.process.CmdError:
return 'UNKNOWN'
else:
first_line = stdout.splitlines()[0]
return first_line.split()[-1]
python external_arm_toolchain_version_handler () {
if not isinstance(e, bb.event.ConfigParsed):
return
@@ -129,5 +138,6 @@ python external_arm_toolchain_version_handler () {
d.setVar('EAT_VER_LIBC', eat_get_libc_version(ld))
d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld))
d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld))
d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld))
}
addhandler external_arm_toolchain_version_handler
@@ -45,6 +45,10 @@ PREFERRED_PROVIDER_glibc-mtrace = "external-arm-toolchain"
PREFERRED_PROVIDER_libc-mtrace = "external-arm-toolchain"
PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-arm-toolchain"
PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}"
PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}"
PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}"
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}"
DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-crypt \
@@ -58,6 +62,7 @@ DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-c
ENABLE_BINARY_LOCALE_GENERATION = "0"
GLIBC_INTERNAL_USE_BINARY_LOCALE = "precompiled"
LIBCOVERRIDE = ":libc-glibc"
LIBC_DEPENDENCIES_remove = "glibc-gconv-cp1252 glibc-gconv-ibm850 glibc-gconv-iso8859-1 glibc-gconv-iso8859-15 glibc-localedata-i18n"
ERROR_QA[type] ?= "list"
python toolchain_metadata_setup () {
+6
View File
@@ -8,8 +8,14 @@ BBFILE_COLLECTIONS += "arm-toolchain"
BBFILE_PATTERN_arm-toolchain := "^${LAYERDIR}/"
BBFILE_PRIORITY_arm-toolchain = "30"
# Additional license directories.
LICENSE_PATH += "${LAYERDIR}/custom-licenses"
LAYERDEPENDS_arm-toolchain = "core"
LAYERSERIES_COMPAT_arm-toolchain = "zeus dunfell"
# do not error out on bbappends for missing recipes
BB_DANGLINGAPPENDS_WARNONLY = "true"
# These variables are used for armcompiler license
BB_HASHBASE_WHITELIST_append = " ARM_TOOL_VARIANT ARMLMD_LICENSE_FILE LM_LICENSE_FILE"
@@ -0,0 +1,165 @@
END USER LICENSE AGREEMENT FOR ARM SOFTWARE DEVELOPMENT TOOLS
This end user license agreement ("License") is a legal agreement between you (a single individual), or the company or organisation (a single legal entity) that you represent and have the legal authority to bind, and Arm relating to use of the Arm Tools. Arm is only willing to license the Arm Tools on condition that you accept all of the terms of this License. By clicking "I Agree" or by installing or otherwise using the Arm Tools and/or any Update thereto (as permitted by this License) you indicate that you agree to be bound by all of the terms and conditions of this License. If you do not agree to the terms of this License, Arm will NOT license the Arm Tools to you, you may not install or use the Arm Tools or any part thereof, and you shall promptly return the Arm Tools to Arm or to your supplier (if not Arm) and ask for a refund of the license fee paid (if any).
NOTE - YOUR ATTENTION IS DRAWN TO THE FOLLOWING:
(A) The terms and conditions set out in this License shall apply to the supply by Arm of Arm Tools for both commercial and non-commercial use. If you are in receipt of a Non-Commercial Use License for the Arm Tools (each capitalised term as defined below), or the Arm Tools or any component thereof are identified or classified as such, or you are receiving a license for the Arm Tools free of charge, then notwithstanding any of the other terms and conditions of this License, your use of the Arm Tools shall be limited by the restrictions of use set out in clause 2.2 of this License.
(B) PLEASE NOTE any terms and conditions of use set out in the order documentation provided to you by Arm and the Software Information File(s) (as defined below) applicable to the Arm Tools provided to you with (or included within) either (i) the Arm Tools, and/or (ii) any Updates to the Arm Tools, which limit, extend or otherwise vary the permitted uses and restrictions applicable to the Arm Tools ("Special Conditions"). The Special Conditions form part of and are incorporated into this License. In the event of any conflict or inconsistency between the provisions set out in the main body of this License and any of the Special Conditions, the provisions set out in the Special Conditions shall prevail (in the order in which they are listed in this paragraph).
(C) This License (and any documents incorporated by reference herein) is the sole and exclusive agreement between you and Arm for the Arm Tools, and (except as agreed in writing to the contrary) no other document, including (but not limited to) your purchase order or any other document supplied by you, will form part of this License.
DEFINITIONS
For the purposes of this License the following words and expressions shall have the following meanings:
"Arm" means Arm Limited whose registered office is situated at 110 Fulbourn Road, Cambridge CB1 9NJ, England and/or any member of Arm's group of companies.
"Arm Documentation" means any printed, electronic or online documentation relating to Arm Software licensed to you by Arm under this License.
"Arm Software" means any and all software, firmware and data licensed to you by Arm under this License.
"Arm Tools" means any and all Arm Software and/or Arm Documentation owned or licensed by Arm, and any Updates to the Arm Software and/or Arm Documentation.
"Arm Tools Performance Data" means any results, benchmarking data or other information relating to or connected with your use or testing of the Arm Tools which are indicative of their performance, efficacy, reliability or quality.
"Fees" means any fee(s) payable by you for the provision by Arm to you of the Arm Tools and associated support and maintenance services, and any other fees payable by you in accordance with this License that are agreed by the parties from time to time.
"License Key" means an electronic license key issued to you by Arm which enables you to use and run one or more Licensed Seat of an Arm Tool or a component thereof in accordance with the terms of this License.
"Licensed Seats" means any and all Seats of the Arm Tools (including, if applicable, Updates) that you are licensed to run and use concurrently under the terms of this License, in the types and quantities specified in the order documentation provided to you by Arm, as well as any additional or replacement Seats of the Arm Tools that Arm agrees to provide to you from time to time during the License Term.
"License Term" means the term set out in the order documentation provided to you by Arm during which you shall be entitled to access and use the Arm Tools.
"Non-Commercial Use License" means an evaluation, preview, beta, pre-release, pilot, academic, educational or community use only license.
"Permitted Users" means your employees, workers, consultants, professional advisors, bona fide sub-contractors and service providers that use the Arm Tools in connection with the provision of work carried out for your benefit, and/or, other members of your organisation or third party users who use the Arm Tools with your express written permission on computers (physical or virtual) owned or controlled by you.
"Redistributables" means the example code, library files, configuration files, header files, and any other Arm Tools or components thereof owned by Arm (or licensed by Arm and provided to you under Arm's terms and conditions) which you are permitted to include within Your Software and redistribute or sub-license within Your Software to third parties, the details of which (if applicable) are set out in a file or folder (the "Redistributables File") typically named 'redistributables' located within an Arm Tool (or components thereof).
"Seat" means a written or electronic authorisation to run a software component subject to the terms and restrictions specified in that authorisation.
"Software Information File(s)" means Third Party Licenses Files, Redistributables Files, and/or Supplementary Terms Files (as the context requires).
"Special Conditions" is as defined above in Recital (B) of this License.
"Specified Project" means a single design and development activity undertaken by you or your Permitted Users relating to Your Software or Your Hardware, the details of which will be set out in the order documentation provided to you by Arm.
"Supplementary Terms File" means a software file or folder typically named 'supplementary_terms' located within an Arm Tool (or components thereof) which (if applicable) details any component-specific extensions, limitations or other variations to the terms of this License.
"Territory" means, if applicable, the geographical area detailed in the order documentation provided to you by Arm to which your use of the Arm Tools or any part thereof is restricted.
"Third Party Licenses File" means a software file or folder typically named 'third_party_licenses' located within an Arm Tool (or components thereof) which (if applicable) details any third party material included in the relevant Arm Tool which is not licensed under the terms of this License, and a reference to the applicable third party license terms and conditions.
"Update" means an update, patch, hotfix, bug fix, support release, modification or limited functional enhancement (as applicable) to an Arm Tool or component thereof, including but not limited to error corrections to any program or associated documentation developed by or for Arm comprised in the Arm Tools, which (i) Arm makes generally available to the market, and (ii) does not, in Arm's opinion, constitute an Upgrade or a new product.
"Upgrade" means a new release of an existing Arm Tool which Arm makes generally available to the market and which usually contains major functional improvements.
"Your Hardware" means hardware manufactured or developed by you or on your behalf, or hardware owned or licensed by you, which is supported by the Arm Tools.
"Your Reports" means any written reports or other information relating to the behavior or performance of Your Software or Your Hardware, in html, binary, text or any other format (excluding for the avoidance of doubt, Arm Tools Performance Data), generated by you from or using the Arm Tools and any modifications thereto.
"Your Software" means any software owned or licensed by you (including, but not limited to, applications, libraries and Arm API compliant plug-ins, but excluding Arm Software) which is supported by (or developed by you using) the Arm Tools.
1. LICENSE GRANT
1.1 Subject to your compliance with the terms and conditions of this License, and payment by you of the Fees (if any), Arm hereby grants to you and your Permitted Users during the License Term a non-exclusive, non-transferable license to receive and use the Arm Tools, certain components thereof, or optional functionality, in the Territory only on the Licensed Seats or for a Specified Project (as applicable) for the permitted uses set out in this clause 1 and subject to the restrictions set out in clause 2 (as limited, extended or otherwise varied by any terms, including product-specific permitted uses and restrictions, set out in the Special Conditions). Except as expressly permitted by this License, you and your Permitted Users shall NOT copy, modify, sub-license, redistribute or otherwise use any component of the Arm Tools.
1.2 PERMITTED USE OF THE ARM TOOLS: Except as otherwise provided in this License, use of the Arm Tools (or components thereof) is permitted for the purpose of:
(a) building, developing, testing, debugging, analysing and optimising Your Software or Your Hardware;
(b) generation of Your Reports, and use of Your Reports to develop, test, debug, analyse and optimise Your Software or Your Hardware; and
(c) only as expressly provided in the relevant Redistributables File: (i) incorporating, compiling and/or linking the files listed in that Redistributables File into Your Software, provided that Your Software contains substantial additional functionality; and (ii) subject to clause 2.1 below, reproducing and redistributing the files (and permitting your customers and/or your authorised distributors to reproduce and redistribute the files), only in object code form (unless otherwise specified in the relevant Redistributables Files), and only as part of Your Software. You agree that, except as expressly provided to the contrary in the relevant Redistributables File, you may only copy the Arm Tools (or any component thereof) to the extent that such copying is incidental to the permitted uses set out in this clause 1.2, including installation, backup and execution.
2. YOUR OBLIGATIONS AND RESTRICTIONS ON USE
2.1 OBLIGATIONS RELATING TO REDISTRIBUTION: Any redistribution as permitted by this License is subject to any restrictions set out in the applicable Special Conditions, and your compliance with the following:
(a) in cases where you are expressly permitted under this License (including for the avoidance of doubt by inclusion of agreed wording in the order documentation provided to you by Arm) to sub-license or redistribute any component of the Arm Tools to your customers, authorised distributors or other third parties, you are responsible for ensuring that such customers, authorised distributors and third parties accept, and are contractually bound (by agreement with you or directly with Arm) to comply with, the terms and conditions of this License;
(b) Any use by you of Arm's or any of its licensors' names, logos or trademarks to publicise or market any of Your Software containing (or developed or generated using) Arm Tools is subject to you obtaining express written permission from Arm;
(c) You warrant that you shall not make any representations or warranties on behalf of Arm in respect of any of the Arm Tools or in respect of any other software, reports or documentation developed or generated by you in accordance with the license grants set out in this License;
(d) You must reproduce or preserve (as applicable) any copyright notices which are included in or with any Arm Tools or components thereof; and
(e) Except as otherwise agreed by Arm (including for the avoidance of doubt by inclusion of the relevant permission in a Supplementary Terms File), you may not disclose or otherwise distribute any Arm Tools Performance Data. For the avoidance of doubt, nothing in this sub-clause 2.1 (e) shall prevent you from disclosing or otherwise distributing Your Reports.
2.2 NON-COMMERCIAL USE AND FREE OF CHARGE LICENSES: If you are in receipt of a Non-Commercial Use License for the Arm Tools, or the Arm Tools or any component thereof are identified or classified as such, and/or you are receiving the Arm Tools free of charge, then notwithstanding any of the other terms and conditions of this License, your use (which includes use by your Permitted Users) of the Arm Tools is limited as follows:
(a) if you are receiving the Arm Tools free of charge:
(i) no support or maintenance shall be provided to you in respect of the Arm Tools;
(ii) the warranty set out in clause 7.1 of this License does not apply to you or your use of the Arm Tools, and Arm gives no other warranty whatsoever in relation to (and accepts no liability in connection with) the Arm Tools or your use (as permitted by this License) of them;
(iii) Arm may immediately terminate this License at any time for any reason by giving written notice to you;
(iv) except as otherwise expressly agreed in writing by Arm, you shall grant to Arm in full the license set out in clause 3.2 of this License; and/or
(b) if you are receiving a Non-Commercial Use License or version (as applicable) of the Arm Tools:
(i) you and your Permitted Users may use the Arm Tools for internal use only; and
(ii) you are not permitted to distribute or sub-license (A) any part of the Arm Tools, or (B) Your Software, Your Hardware, or Your Reports developed under this License using the Arm Tools. The Arm Tools shall be used only by you and your Permitted Users, and you shall not (except as otherwise authorised in writing by Arm) allow any other third party whatsoever to use the Arm Tools.
For the avoidance of doubt, if you are receiving a Non-Commercial Use License and the license is provided to you free of charge, the restrictions in both sub-clauses (a) and (b) above will apply to your use of the Arm Tools.
2.3 LICENSE TYPES: Depending on the type of license you have agreed to purchase from Arm under this License (the details of which are set out in the order documentation provided to you by Arm), your use of the Arm Tools shall be limited to:
(a) use of each Licensed Seat (i) by one individual named Permitted User only on a specified item of computer hardware ('named-user license'), OR (ii) by one individual Permitted User at a time only on a specified item of computer hardware ('node-locked license'), OR (iii) by one individual Permitted User at a time on specified items of computer hardware ('floating license'). In respect of 'node-locked licenses', each Licensed Seat may only be used for one 'process' at any one time. For the purpose of this sub-clause 2.3 (a), each 'process' is the execution of an instance of an Arm Tool; or
(b) use for a Specified Project.
2.4 PERMITTED USERS: You hereby agree to be responsible for the acts and omissions of any and all Permitted Users, and shall ensure that such Permitted Users (i) are contractually obliged to comply with the terms of this License, including those relating to confidentiality; and (ii) do not supply the Arm Tools or any components thereof to any third party whatsoever. Except as expressly provided in this License or as agreed in writing by Arm on a case by case basis, you shall not sub-license, redistribute, lease, rent or otherwise allow any third party to use the Arm Tools or License Keys.
2.5 REVERSE ENGINEERING: Your use of the Arm Tools shall specifically exclude the reverse engineering, decompiling, disassembly, translation, adaptation, arrangement or other alteration of any part of the Arm Tools (except to the extent that applicable law overrides this provision or any part hereof).
2.6 COPYRIGHT AND RESERVATION OF RIGHTS: The Arm Tools are owned by Arm and/or its licensors and are protected by copyright and other intellectual property rights, laws and international treaties. The Arm Tools are licensed not sold. Except as expressly provided by this License, you acquire no rights to the Arm Tools or any element thereof, or to any other Arm products or services. You shall not remove from the Arm Tools any copyright notice or other notice and shall ensure that any such notice is reproduced in any permitted reproduction of the whole or any part of the Arm Tools.
2.7 TECHNICAL RESTRICTIONS IN THE ARM TOOLS: You must comply with any technical restrictions in the Arm Tools and License Keys, including any restrictions that restrict use to certain components of the Arm Tools or use only for certain purposes. You shall not work around any such technical restrictions.
2.8 ARM DOCUMENTATION: You may use the Arm Documentation (if any) internally only in conjunction with your use of the Arm Software to which it relates.
3. LICENSE OF FEEDBACK TO ARM
3.1 You may at your discretion deliver any suggestions, comments, feedback, ideas, or know-how (whether in oral or written form) to Arm relating to or connected with your use of the Arm Tools ("Feedback"). Notwithstanding the foregoing, you shall not knowingly give to Arm any Feedback that you are aware (or should reasonably be aware) is subject to any patent, copyright or other intellectual property claim or right of any third party.
3.2 Except as expressly notified by you to Arm (in writing which may include email) to the contrary, you hereby grant to Arm under your and your affiliates (as applicable) intellectual property, a perpetual, irrevocable, royalty free, non-exclusive, worldwide license to: (i) use, copy, modify, and create derivative works of the Feedback; (ii) sell, supply or otherwise distribute the whole or any part of the Feedback (and derivative works thereof) as part of any Arm owned or licensed product(s) without obligation or restriction of any kind; and (iii) sub-license to third parties the foregoing rights, including the right to sub-license to further third parties. No right is granted by you to Arm to sub-license your and your affiliates (as applicable) intellectual property except to the extent that it is provided to Arm as Feedback and is embodied in any Arm owned or licensed product(s). For the avoidance of doubt, if, during the License Term, you provide notice to Arm revoking the license granted under this clause 3.2, you acknowledge and agree that such revocation shall not apply to Feedback delivered to Arm prior to the date of receipt of the revocation notice, and that (notwithstanding the foregoing) Arm shall continue to be permitted to use Feedback received after the date of receipt of the revocation notice for internal purposes.
3.3 Except as expressly licensed to Arm in clause 3.2, you retain all right, title and interest in and to the Feedback provided by you under this License.
4. DATA COLLECTION AND PRIVACY
4.1 The Arm Software may include features that enable it to transmit certain computer information over the internet to Arm's and/or its service providers' computer systems, for example your computer's internet protocol address, computer hardware and operating system details, or the serial numbers of the Arm Tools you have licensed. This information will not be shared with any third parties, and shall be used by Arm only for the purpose of Arm protecting its legitimate interests, which may include Arm verifying your right to use the Arm Tools and monitoring your compliance with the permitted uses and restrictions set out in this License.
4.2 Arm may also collect anonymous data, which, for the avoidance of doubt, cannot be used to identify individual users of the Arm Tools. This information may be used by Arm to help us understand and analyse what components or features in the Arm Tools our end users are using in order to (i) maintain and improve the quality of the Arm Tools and the end user experience, (ii) inform end users of relevant new and improved products and services, and (iii) assist end users to maximise the performance of, or solve user experience issues with, the Arm Tools.
4.3 Information collected by the Arm Software will only be used for the aforementioned purposes. Please refer to the Arm Privacy Policy https://www.arm.com/company/policies/privacy for further information on how Arm collects, uses and safeguards personal data (including but not limited to personal data collected for the protection of Arm's legitimate interests and your rights to object to its collection).
5. SUPPORT AND MAINTENANCE
5.1 Provision of reasonable support and maintenance is subject to payment by you of all applicable Fees.
5.2 Any support provided by Arm in accordance with the above clause 5.1 shall (i) be provided by telephone, email or such other format as is designated by Arm, (ii) be prioritised at Arm's discretion, and (iii) not be used as a substitute for training or as additional resource for your projects.
5.3 Maintenance will generally be provided in the form of Updates to the Arm Tools. Arm shall be under no obligation to provide such maintenance in respect of any modifications made by you (where permitted) to the Arm Tools. Updates do not constitute additional Licensed Seats and may only be used by you if you have an active Licensed Seat to run and use such Updates. Updates will generally be provided to you as soon as reasonably practicable following the date of general public release of the Update by Arm.
5.4 In cases where the Arm Tools were provided to you free of charge, you are not entitled to any support or maintenance for the Arm Tools from Arm, but Arm may, in its sole discretion, provide support to you. If you obtained the Arm Tools from an Arm authorised distributor, reseller or other third party, support and maintenance may be provided by either Arm or the third party as per the terms of your contract for supply. Arm shall not be responsible for any delay or failure in connection with any third party supplier providing support or maintenance that it is obligated to provide to you. Please refer to the 'Support' area of https://www.arm.com for details of Arm's support services, relevant contact details, and (if applicable) details of other authorised support channels.
5.5 Arm's obligations under this clause 5 are limited to the provision of support and maintenance to you, and Arm is under no obligation to provide any support and maintenance to any third parties. You agree to provide all front line support services to all third parties to whom you distribute any Arm Tools, Your Reports, Your Software or Your Hardware, pursuant to and in accordance with the terms of this License.
5.6 This License does not grant you any entitlement to receive (i) Upgrades, (ii) Arm products other than those specified in your product documentation, or (iii) any new products developed or introduced by Arm from time to time, nor to receive any support or maintenance in respect of the same.
6. CONFIDENTIALITY
6.1 You acknowledge that the Arm Tools, License Keys, Arm Tools Performance Data, and any and all other software, documentation or other information licensed to you by Arm, or provided to you during discussions about or in connection with the Arm Tools (including this License and information provided during the provision by Arm of any support), contain trade secrets and confidential information of Arm ("Confidential Information").
6.2 You agree to maintain all such Confidential Information in confidence and apply security measures (such measures to be no less stringent than the measures which you apply (or should reasonably apply) to protect your own like information, but not less than a reasonable degree of care) to prevent their unauthorised disclosure and use.
6.3 Subject to any restrictions imposed by applicable law, the period of confidentiality shall be five (5) years from the date of disclosure of the Confidential Information. You agree that you shall not use any such information other than in your normal use of the Arm Tools as permitted by this License.
7. LIMITED WARRANTIES
7.1 Subject to the restrictions in clause 2, for the period of ninety (90) days from the date of receipt by you of the Arm Tools, Arm warrants to you that (i) the media on which any Arm Software is provided shall be free from defects in materials and workmanship under normal use; and (ii) the Arm Software will perform substantially in accordance with the accompanying Arm Documentation (if any). Arm's total liability and your exclusive remedy for breach of these warranties shall be limited to Arm, at Arm's option (a) replacing the defective Arm Software; or (b) using reasonable efforts to correct material, documented, reproducible defects in the Arm Software and delivering such corrected Arm Software to you; or (c) if you licensed the Arm Software directly from Arm, refunding the price paid by you to Arm for that Arm Software. Any replacement Arm Software will be warranted for the remainder of the original warranty period or thirty (30) days from the date of replacement, whichever is longer.
7.2 The Arm Software described in any Arm Documentation is subject to continuous development and improvement. All particulars of the Arm Software and its use as described in the Arm Documentation are given by Arm in good faith. Consequently, the information contained in the Arm Documentation is subject to change without notice and is not warranted to be error free. If you discover any errors in the Arm Documentation please report them to Arm in writing. Any Arm Documentation provided to you that relates to specific industry quality and functional safety standard compliance may assist you in applying to a competent auditor for certification of Your Software or Your Hardware, but you acknowledge and agree that on its own such Arm Documentation may not provide sufficient evidence of, or be compatible with, the required safety compliance standards.
7.3 Except as provided in clause 7.1 above, you agree that the Arm Tools are licensed "as is", and that Arm expressly disclaims all representations, warranties, conditions or other terms, express or implied or statutory, including without limitation the implied warranties of non-infringement, satisfactory quality, and fitness for a particular purpose. You acknowledge that it is your responsibility to satisfy yourself that the Arm Tools are fit for the intended purpose and satisfy your requirements, including compatibility with Your Hardware, and you expressly assume all liabilities and risks relating to (i) any use of an Arm Tool which is inconsistent with its design or any guidance provided to you in the applicable Arm Documentation, and/or (ii) any use of an Arm Tool with Your Software or Your Hardware where such software or hardware (as applicable) is not supported by or compatible with the relevant Arm Tool.
7.4 You expressly assume all liabilities and risks relating to your use or operation of Your Software and Your Hardware designed or modified using the Arm Tools, including without limitation, Your software or Your Hardware designed or intended for safety-critical applications. Should Your Software or Your Hardware prove defective, you assume the entire cost of all necessary servicing, repair or correction.
8. LIMITATION OF LIABILITY
8.1 To the maximum extent permitted by applicable law, in no event shall Arm be liable for any indirect, special, incidental or consequential damages (including loss of profits) arising out of the use of, or inability to use, the Arm Tools, whether based on a claim under contract, tort or otherwise, even if Arm was advised of the possibility of such damages.
8.2 Arm does not seek to limit or exclude liability for death or personal injury arising from Arm's negligence or Arm's fraud. Arm acknowledges that certain jurisdictions do not permit the exclusion or limitation of liability for consequential or incidental damages, and in such cases the above limitation relating to liability for consequential damages may not apply to you.
8.3 Notwithstanding anything to the contrary contained in this License, the maximum liability of Arm to you in aggregate (in contract, tort or otherwise) in relation to or in connection with the subject matter of this License shall not exceed the greater of (i) the total sums paid by you to Arm (if any) for this License, and (ii) $10.00 USD. The existence of more than one claim will not enlarge or extend the limit.
9. THIRD PARTY MATERIAL
9.1 The Arm Tools may contain material owned or developed by third parties, including but not limited to open source software, freeware and commercial software ("Third Party Material"). Any Third Party Material is subject to the terms and conditions of the applicable Third Party Material license(s) and is not covered under the terms of this License. Details relating to such Third Party Material shall either be presented to you at the time of installation or shall be detailed in the Third Party Licenses File(s). Your use of such Third Party Material is subject to your compliance with the applicable Third Party Material license(s).
9.2 Arm hereby disclaims any and all warranties express or implied from any third parties regarding, or otherwise connected with, any Third Party Material included in the Arm Tools and any Third Party Material from which the Arm Tools are derived, and/or your use of any or all of the Third Party Material in connection with Your Software or Your Hardware, including (without limitation) any warranties of satisfactory quality or fitness for a particular purpose.
9.3 No Third Party Material licensors shall have any liability for any direct, indirect, incidental, special, exemplary, or consequential damages (including without limitation lost profits) howsoever caused and whether made under contract, tort or otherwise arising in any way out of your use or distribution of the Third Party Material or the exercise of any rights granted under either or both this License and the legal terms applicable to any Third Party Material, even if advised in advance of the possibility of such damages.
10. GOVERNMENT REQUIREMENTS
10.1 To the extent that you are an agency, contractor or instrumentality of the U.S. Government, you and we agree that:
(a) the Arm Tools are commercial computer software and commercial computer software documentation, and that your rights therein are as specified in this License, per FAR 12.212 and DFARS 227.7202-3, as applicable, or in the case of NASA, subject to NSF 1852.22786. Arm acknowledges that, whilst commercial computer software or commercial computer software documentation shall be acquired under licenses customarily provided to the public, such licenses must be consistent with U.S. Federal law and otherwise satisfy the U.S. Government's needs ("U.S. Government Requirements"); and
(b) you may assign your rights under this License to the relevant US Government Federal Department or the successor contractor designated by the US Government Federal Department upon termination of your related prime contract with that US Government Federal Department. If you exercise your rights under this clause 10.1(b), you acknowledge and agree that you shall remain liable to Arm in respect of all your obligations under this License.
10.2 If there is any material inconsistency between (i) either a U.S. Government Requirement or a requirement of another government with which Arm is mandated by statute to comply and (ii) any provision of this License, the terms of the relevant government requirement shall prevail and the provision in question shall be deemed varied or deleted (as applicable) as required by the terms of the relevant government requirement. For the avoidance of doubt, in such circumstances, all other terms, conditions and provisions of this License will continue to be valid to the fullest extent permitted by law in accordance with the below clause 12.3.
11. TERM AND TERMINATION
11.1 Subject to clauses 11.2 and 11.3 below, this License shall remain in force until terminated by you, by Arm or (in the case of a time limited license) by expiry.
11.2 In the event of a party breaching of any of the terms and conditions of this License, which if capable of remedy, has not been remedied by that party within thirty (30) days of the date of breach, without prejudice to any of its other rights under this License, the non-breaching party may terminate this License immediately upon giving written notice to the breaching party. Upon termination of this License by you or by Arm, or upon expiry, you shall (and shall ensure that your Permitted Users shall) immediately (i) stop using the Arm Tools (or any element thereof) and any Confidential Information and, (ii) destroy all copies of the same in your possession or control, together with all Arm Documentation and related materials.
11.3 Notwithstanding the foregoing, except where Arm has terminated this License for your breach, your rights (if applicable) to distribute any of Your Software or Your Hardware developed using the Arm Tools prior to termination or expiry of this License shall (subject to your continued compliance with the terms and conditions of this License) survive such termination or expiry.
12. GENERAL
12.1 This License is governed by English Law. Notwithstanding the foregoing, to the extent that you are an agency, contractor or instrumentality of the U.S. Government, disputes arising under or relating to this License shall be decided under the U.S. federal law of government contracting, including without limitation the Contract Disputes Act. Nothing in this License shall prevent you from enforcing your intellectual property rights or seeking injunctive or other equitable relief in any court of competent jurisdiction. The parties hereby disclaim application of the United Nations Convention on Contracts for the International Sale of Goods and the Uniform Computer Information Transactions Act.
12.2 Except where Arm agrees otherwise in (i) a written contract signed by you and Arm, or (ii) a written contract provided by Arm and accepted by you, this is the only agreement between you and Arm relating to the Arm Tools and it may only be modified by written agreement between you and Arm. No terms and conditions contained in any purchase order or other document issued by you, or any advertising or other representation by you or any third party shall add to, supersede or in any way vary the terms and conditions of this License. This License (and any documents expressly incorporated into it by reference herein) represents the entire agreement between you and Arm in relation to its subject matter.
12.3 If any clause or sentence in this License is held by a court of law to be illegal or unenforceable, the remaining provisions of this License shall not be affected. Any failure by Arm to enforce any of the provisions of this License, unless waived in writing, shall not constitute a waiver of Arm's rights to enforce such provision or any other provision of this License in the future.
12.4 Subject to clause 10.1(b), neither this License or any rights granted to you under it may be assigned, sub-licensed or otherwise transferred by you to any third party without the prior written consent of Arm. An assignment shall be deemed to include, without limitation (i) any transaction or series of transactions whereby a third party acquires, directly or indirectly, the power to control the management and policies of you, whether through the acquisition of voting securities, by contract or otherwise; and (ii) the sale of more than fifty percent (50%) of your assets whether in a single transaction or series of transactions. Notwithstanding the foregoing, Arm may, in its discretion acting reasonably, separately agree to authorise the re-host of a Licensed Seat (for which additional charges may apply).
12.5 Subject to any applicable legal restrictions, including but not limited to those relating to the security of classified information, at Arm's request, (i) you agree to check your computers for installations of the Arm Tools, copies of License Keys, contents of any license server log files, individual or concurrent usage of Seats, and any other information requested by Arm relating to Arm Tools installation, usage and License Key management, and, to provide this information to Arm; and (ii) you agree that Arm may instruct appropriately qualified independent auditors to perform such checks by prior appointment during your normal business hours on reasonable notice. In respect of any audit, Arm shall bear the auditors' costs for that audit unless it reveals unlicensed usage, in which case you shall promptly reimburse Arm for all reasonable costs and expenses, including professional fees, relating to such audit. Any information which is disclosed to Arm or such auditors during checking or audit shall be treated as your confidential information and shall only be used by Arm for compliance and enforcement purposes.
12.6 The Arm Tools provided under this License are subject to U.S. export control laws, including the U.S. Export Administration Act and its associated regulations, and may be subject to export or import regulations in other countries. You agree to comply fully with all laws and regulations of the United States and other countries ("Export Laws") to ensure that the Arm Tools are not (i) exported, directly or indirectly, in violation of Export Laws, either to any countries that are subject to U.S. export restrictions or to any end user who has been prohibited from participating in the U.S export transactions by any federal agency of the U.S. government; or (ii) intended to be used for any purpose prohibited by Export Laws, including, without limitation, nuclear, chemical, or biological weapons proliferation.
Arm Document Reference LES-PRE-21260, Version 12.2, Effective Date 12 February 2019
@@ -0,0 +1,36 @@
===============================================================================
This file lists the portions of this release of 'Arm Compiler 6' that you are
permitted to redistribute and any terms and conditions applicable to such
redistribution. Refer to the End User License Agreement that accompanies this
release of 'Arm Compiler 6' for terms and conditions relating to permitted
redistribution and 'Redistributables'. Any modification or redistribution of
files covered by open-source licenses, whether listed here or not, is subject
to the terms of the applicable open-source license.
===============================================================================
1) Target Libraries(libraries and helper libraries): Redistribution permitted
only in object code form, compiled and linked by Arm Compiler in to Software
Applications developed by you or your permitted users, provided that Software
Applications contain substantial additional functionality. If you choose to
redistribute the whole or any part of Target Libraries, you agree: (a) to
ensure that they are licensed for use only as part of Software Applications
and only for execution on microprocessors manufactured or simulated under
licence from Arm; (b) not to use Arm's or any of its licensors names, logos or
trademarks to market Software Applications; (c) to include valid copyright
notices on Software Applications, and preserve any copyright notices which are
included with, or in, the Target Libraries; and (d) to ensure that any further
redistribution is limited to redistribution by either or both your customers
and your authorised distributors as part of Software Applications and that
your customers and your authorised distributors comply with these terms.
Details of the Target Libraries and their location in your installation:
a) Libraries: C libraries; ABI libraries; Standard C++ libraries; C++ runtime
support libraries; Maths libraries; Software floating-point libraries; VFP
support found in your installation in armlib and libcxx subdirectories at
<install_dir>\lib
b) Helper libraries: ARM Compiler 6 helper libraries found in your
installation at <install_dir>\lib\armlib\h_*
---------------------------------------------------------------------
END OF FILE: redistributables.txt
@@ -0,0 +1,10 @@
===============================================================================
This file contains details of any applicable specific extensions, limitations
or other variations to the terms of the End User License Agreement that
accompanies this release of 'Arm Compiler 6'.
===============================================================================
There are no 'Supplementary Terms' applicable to this release of
'Arm Compiler 6'.
---------------------------------------------------------------------
END OF FILE: supplementary_terms.txt
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,3 @@
COMPATIBLE_HOST = "x86_64.*-linux"
FILES_${PN} = "${datadir} ${bindir}"
BINNAME = "${@d.getVar("BPN").strip("gcc-")}"
@@ -15,7 +13,7 @@ do_install() {
done
}
INSANE_SKIP_${PN} = "already-stripped libdir staticdev file-rdeps"
INSANE_SKIP_${PN} = "already-stripped libdir staticdev file-rdeps arch dev-so"
INHIBIT_SYSROOT_STRIP = "1"
INHIBIT_PACKAGE_STRIP = "1"
@@ -0,0 +1,48 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2020 Arm Limited
#
require arm-binary-toolchain.inc
SUMMARY = "Baremetal Armcompiler for Cortex-A, Cortex-R and Cortex-M processors"
HOMEPAGE = "https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6"
# Certain features of armcompiler requires a license. For more information, please refer to the armcompiler user guide:
# https://developer.arm.com/tools-and-software/software-development-tools/license-management/resources/product-and-toolkit-configuration
# Usually set and export of these variables are required:
# ARM_TOOL_VARIANT, ARMLMD_LICENSE_FILE, LM_LICENSE_FILE
LICENSE = "Armcompiler-License-agreement & Armcompiler-Redistributables & \
Armcompiler-Supplementary-terms & Armcompiler-Third-party-licenses"
LICENSE_FLAGS = "armcompiler"
LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=40cd57dbb1f9d111fb6923945849d51c \
file://license_terms/redistributables.txt;md5=e510e47f7f5be1356ea6218f5b1f6c55 \
file://license_terms/supplementary_terms.txt;md5=17a2efdbd320ceda48a3521747e02dd9 \
file://license_terms/third_party_licenses.txt;md5=6273fa29eb26c0093e1a7deaef7bafec "
PROVIDES = "virtual/armcompiler"
ARMCLANG_VERSION = "DS500-BN-00026-r5p0-15rel0"
COMPATIBLE_HOST = "x86_64.*-linux"
SRC_URI = "https://developer.arm.com/-/media/Files/downloads/compiler/${ARMCLANG_VERSION}.tgz;subdir=${ARMCLANG_VERSION}"
SRC_URI[md5sum] = "fbed6edf5eb211c45df7b8548a10535a"
SRC_URI[sha256sum] = "de3947525d9846a09cca52cfa84eb880e73f04398b778e4e599366d4c2416596"
S = "${WORKDIR}/${ARMCLANG_VERSION}"
do_install() {
install -d ${D}${datadir}/armclang/
# Commercial license flag set, so recipe will only install when explicitly agreed to it already
${S}/install_x86_64.sh --i-agree-to-the-contained-eula -d ${D}${datadir}/armclang/ --no-interactive
install -d ${D}${bindir}
# Symlink all executables into bindir
for f in ${D}${datadir}/armclang/bin/*; do
lnr $f ${D}${bindir}/$(basename $f)
done
}
@@ -0,0 +1,143 @@
inherit cross-canadian
require license.inc
PN = "external-arm-sdk-toolchain-${TARGET_ARCH}"
BPN = "external-arm-sdk-toolchain"
PV = "${EAT_VER_MAIN}"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
INHIBIT_DEFAULT_DEPS = "1"
EXCLUDE_FROM_SHLIBS = "1"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
# Skip packaging QA checks for prebuilt binaries
INSANE_SKIP_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so staticdev file-rdeps libdir"
INSANE_SKIP_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps"
INSANE_SKIP_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps"
# Skip file dependencies in RPM for prebuilt binaries
SKIP_FILEDEPS = "1"
PROVIDES = "\
gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \
gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \
binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \
"
PACKAGES = "\
gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \
gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \
binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \
"
# Adjust defaults in line with external toolchain
bindir = "${exec_prefix}/bin"
libdir = "${exec_prefix}/lib"
libexecdir = "${exec_prefix}/libexec"
datadir = "${exec_prefix}/share"
gcclibdir = "${libdir}/gcc"
FILES_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\
${prefix}/${EAT_TARGET_SYS}/lib/libstdc++.* \
${prefix}/${EAT_TARGET_SYS}/lib/libgcc_s.* \
${prefix}/${EAT_TARGET_SYS}/lib/libsupc++.* \
${prefix}/${EAT_TARGET_SYS}/include \
${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* \
${bindir}/${TARGET_PREFIX}gcov \
${bindir}/${TARGET_PREFIX}gcc* \
${bindir}/${TARGET_PREFIX}g++ \
${bindir}/${TARGET_PREFIX}cpp \
${libexecdir}/* \
"
FILES_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\
${bindir}/${TARGET_PREFIX}gdb* \
${datadir}/gdb/* \
"
FILES_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\
${prefix}/${EAT_TARGET_SYS}/bin/ld* \
${prefix}/${EAT_TARGET_SYS}/bin/objcopy \
${prefix}/${EAT_TARGET_SYS}/bin/strip \
${prefix}/${EAT_TARGET_SYS}/bin/nm \
${prefix}/${EAT_TARGET_SYS}/bin/ranlib \
${prefix}/${EAT_TARGET_SYS}/bin/as \
${prefix}/${EAT_TARGET_SYS}/bin/ar \
${prefix}/${EAT_TARGET_SYS}/bin/objdump \
${prefix}/${EAT_TARGET_SYS}/lib/ldscripts/* \
${bindir}/${TARGET_PREFIX}ld* \
${bindir}/${TARGET_PREFIX}addr2line \
${bindir}/${TARGET_PREFIX}objcopy \
${bindir}/${TARGET_PREFIX}readelf \
${bindir}/${TARGET_PREFIX}strip \
${bindir}/${TARGET_PREFIX}nm \
${bindir}/${TARGET_PREFIX}ranlib \
${bindir}/${TARGET_PREFIX}gprof \
${bindir}/${TARGET_PREFIX}as \
${bindir}/${TARGET_PREFIX}c++filt \
${bindir}/${TARGET_PREFIX}ar \
${bindir}/${TARGET_PREFIX}strings \
${bindir}/${TARGET_PREFIX}objdump \
${bindir}/${TARGET_PREFIX}size \
"
DESCRIPTION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "The GNU cc and gcc C compilers"
DESCRIPTION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "gdb - GNU debugger"
DESCRIPTION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "A GNU collection of binary utilities"
LICENSE_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GCC_LICENSE}"
LICENSE_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GDB_LICENSE}"
LICENSE_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_BFD_LICENSE}"
PKGV_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GCC}"
PKGV_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GDB}"
PKGV_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_BFD}"
do_install() {
install -d ${D}${prefix}/${EAT_TARGET_SYS}/bin
install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib
install -d ${D}${prefix}/${EAT_TARGET_SYS}/include
install -d ${D}${bindir}
install -d ${D}${libdir}
install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts
install -d ${D}${libexecdir}
install -d ${D}${datadir}/gdb
install -d ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include
CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
# gcc
for i in libstdc++.* libgcc_s.* libsupc++.*; do
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/$i ${D}${prefix}/${EAT_TARGET_SYS}/lib
done
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/include/* ${D}${prefix}/${EAT_TARGET_SYS}/include
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}
for i in gcov gcc* g++ cpp; do
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir}
done
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/libexec/* ${D}${libexecdir}
# gdb
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}gdb* ${D}${bindir}
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/share/gdb/* ${D}${datadir}/gdb/
# binutils
for i in ld* objcopy strip nm ranlib as ar objdump; do
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/bin/$i ${D}${prefix}/${EAT_TARGET_SYS}/bin
done
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/lib/ldscripts/* ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts
for i in ld* addr2line objcopy readelf strip nm ranlib gprof as c++filt ar strings objdump size; do
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir}
done
}
python () {
if not d.getVar("EAT_VER_MAIN", False):
raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).")
if d.getVar('TCLIBC', True) != "glibc":
raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True))
}
@@ -1,9 +1,9 @@
require recipes-core/glibc/glibc-package.inc
require license.inc
INHIBIT_DEFAULT_DEPS = "1"
# License applies to this recipe code, not the toolchain itself
LICENSE = "MIT"
LIC_FILES_CHKSUM = "\
file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \
@@ -54,7 +54,6 @@ PROVIDES += "\
PV = "${EAT_VER_MAIN}"
BINV = "${EAT_VER_GCC}"
TARGET_SYS = "${EAT_TARGET_SYS}"
SRC_URI = "file://SUPPORTED"
@@ -75,8 +74,8 @@ do_install() {
install -d ${D}${datadir}
install -d ${D}${includedir}
install -d ${D}/include
install -d ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}
install -d ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}
install -d ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}
install -d ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}
CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/* ${D}${base_libdir}
@@ -105,6 +104,9 @@ do_install() {
fi
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/include/* ${D}${includedir}
if [ -d ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ]; then
mv ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ${D}${includedir}/c++/${EAT_VER_GCC}/${TARGET_SYS}
fi
ln -sf ../usr/include/c++ ${D}/include/c++
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/bin/* ${D}${bindir}
@@ -116,11 +118,11 @@ do_install() {
sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
# fix up the copied symlinks (they are still pointing to the multiarch directory)
linker_name="${@bb.utils.contains("TUNE_FEATURES", "aarch64", "ld-linux-aarch64.so.1", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "ld-linux-armhf.so.3", "ld-linux.so.3",d), d)}"
@@ -305,11 +307,25 @@ PACKAGES =+ "\
linux-libc-headers-dev \
"
# Re-order PACKAGES list in order to shift ${PN}-dev towards the end as
# it is meant to pick up remaining dev libraries and headers that aren't
# picked up by other packages. And since some static libraries needs to
# be packaged in ${PN}-dev, so we need to keep ${PN}-staticdev later in
# order.
PACKAGES := "${@oe.utils.str_filter_out('${PN}-dev', '${PACKAGES}', d)}"
PACKAGES := "${@oe.utils.str_filter_out('${PN}-staticdev', '${PACKAGES}', d)}"
PACKAGES += "\
${PN}-dev \
${PN}-staticdev \
"
INSANE_SKIP_${PN}-dbg = "staticdev"
INSANE_SKIP_${PN}-utils += "ldflags"
INSANE_SKIP_libstdc++ += "ldflags"
INSANE_SKIP_libgfortran += "ldflags"
INSANE_SKIP_libgcc += "ldflags dev-deps"
INSANE_SKIP_libgcc-dev += "staticdev"
INSANE_SKIP_libgfortran += "ldflags dev-deps"
INSANE_SKIP_libstdc++ += "ldflags dev-deps"
INSANE_SKIP_libatomic += "ldflags"
@@ -654,13 +670,9 @@ SUMMARY_libitm-staticdev = "GNU transactional memory support library - static de
EAT_VER_MAIN ??= ""
python () {
if not d.getVar("EAT_VER_MAIN", False):
raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).")
import re
notglibc = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None) or (re.match('.*musl$', d.getVar('TARGET_OS', True)) != None)
if notglibc:
raise bb.parse.SkipPackage("incompatible with target %s" %
d.getVar('TARGET_OS', True))
if d.getVar('TCLIBC', True) != "glibc":
raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True))
}
@@ -1,17 +1,21 @@
# Copyright (C) 2020 Texas Instruments Inc.
# Released under the MIT license (see COPYING.MIT for the terms)
require gcc-x86host.inc
require arm-binary-toolchain.inc
COMPATIBLE_HOST = "(x86_64|aarch64).*-linux"
SUMMARY = "Baremetal GCC for Aarch64 processors"
LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
LIC_FILES_CHKSUM = "file://share/doc/gcc/GNU-Free-Documentation-License.html;md5=cc1e9a49a59ce7e6ae5ef37cd16eca0c"
LIC_FILES_CHKSUM = "${@d.getVar(d.expand("LIC_FILES_CHKSUM_${HOST_ARCH}"))}"
LIC_FILES_CHKSUM_aarch64 = "file://share/doc/gcc/Copying.html;md5=1b548d9c341b3b5c82bc88551964aa60"
LIC_FILES_CHKSUM_x86-64 = "file://share/doc/gcc/Copying.html;md5=c1df856e21b17e58b0adbe29cacf4bd4"
PROVIDES = "virtual/aarch64-none-elf-gcc"
SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu-a/${PV}/binrel/gcc-arm-${PV}-x86_64-${BINNAME}.tar.xz"
SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu-a/${PV}/binrel/gcc-arm-${PV}-${HOST_ARCH}-${BINNAME}.tar.xz;name=gnu-a-${HOST_ARCH}"
SRC_URI[gnu-a-x86_64.sha256sum] = "36d2cbe7c2984f2c20f562ac2f3ba524c59151adfa8ee10f1326c88de337b6d1"
SRC_URI[gnu-a-aarch64.sha256sum] = "041ca53bdd434b1a48f32161e957da1b84543c373d1881e2fd84a1579f87f243"
SRC_URI[sha256sum] = "36d2cbe7c2984f2c20f562ac2f3ba524c59151adfa8ee10f1326c88de337b6d1"
S = "${WORKDIR}/gcc-arm-${PV}-x86_64-${BINNAME}"
S = "${WORKDIR}/gcc-arm-${PV}-${HOST_ARCH}-${BINNAME}"
@@ -1,7 +1,9 @@
# Copyright (C) 2019 Garmin Ltd. or its subsidiaries
# Released under the MIT license (see COPYING.MIT for the terms)
require gcc-x86host.inc
require arm-binary-toolchain.inc
COMPATIBLE_HOST = "(x86_64|aarch64).*-linux"
SUMMARY = "Baremetal GCC for ARM-R and ARM-M processors"
LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
@@ -10,7 +12,6 @@ LIC_FILES_CHKSUM = "file://share/doc/gcc-arm-none-eabi/license.txt;md5=c18349634
PROVIDES = "virtual/arm-none-eabi-gcc"
SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/${BPN}-${PV}-x86_64-linux.tar.bz2"
SRC_URI[md5sum] = "fe0029de4f4ec43cf7008944e34ff8cc"
SRC_URI[sha256sum] = "bcd840f839d5bf49279638e9f67890b2ef3a7c9c7a9b25271e83ec4ff41d177a"
SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/${BPN}-${PV}-${HOST_ARCH}-linux.tar.bz2;name=gnu-rm-${HOST_ARCH}"
SRC_URI[gnu-rm-x86_64.sha256sum] = "bcd840f839d5bf49279638e9f67890b2ef3a7c9c7a9b25271e83ec4ff41d177a"
SRC_URI[gnu-rm-aarch64.sha256sum] = "1f5b9309006737950b2218250e6bb392e2d68d4f1a764fe66be96e2a78888d83"
@@ -0,0 +1,79 @@
LICENSE = "GPL-3.0-with-GCC-exception & GPLv3 & GPLv2 & LGPLv3 & LGPLv2.1 & LGPLv2"
EAT_BFD_LICENSE = "GPL-3.0"
EAT_GCC_LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
EAT_GDB_LICENSE = "GPL-3.0"
EAT_LIBC_LICENSE = "GPLv2 & LGPLv2.1"
EAT_RLE_LICENSE = "GPL-3.0-with-GCC-exception"
LICENSE_${PN} = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-dev = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-doc = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-dbg = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-pic = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-utils = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-mtrace = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-gconv = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-extra-nss = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-thread-db = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-pcprofile = "${EAT_LIBC_LICENSE}"
LICENSE_${PN}-staticdev = "${EAT_LIBC_LICENSE}"
LICENSE_catchsegv = "${EAT_LIBC_LICENSE}"
LICENSE_glibc-extra-nss = "${EAT_LIBC_LICENSE}"
LICENSE_glibc-thread-db = "${EAT_LIBC_LICENSE}"
LICENSE_libmemusage = "${EAT_LIBC_LICENSE}"
LICENSE_libsegfault = "${EAT_LIBC_LICENSE}"
LICENSE_libsotruss = "${EAT_LIBC_LICENSE}"
LICENSE_sln = "${EAT_LIBC_LICENSE}"
LICENSE_nscd = "${EAT_LIBC_LICENSE}"
LICENSE_ldd = "${EAT_LIBC_LICENSE}"
LICENSE_libasan-dev = "${EAT_GCC_LICENSE}"
LICENSE_libasan = "${EAT_GCC_LICENSE}"
LICENSE_libasan-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libatomic-dev = "${EAT_GCC_LICENSE}"
LICENSE_libatomic = "${EAT_GCC_LICENSE}"
LICENSE_libatomic-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libg2c-dev = "${EAT_GCC_LICENSE}"
LICENSE_libg2c = "${EAT_GCC_LICENSE}"
LICENSE_libgcc-dev = "${EAT_GCC_LICENSE}"
LICENSE_libgcc = "${EAT_GCC_LICENSE}"
LICENSE_libgfortran-dbg = "${EAT_GCC_LICENSE}"
LICENSE_libgfortran-dev = "${EAT_GCC_LICENSE}"
LICENSE_libgfortran = "${EAT_GCC_LICENSE}"
LICENSE_libgfortran-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libgomp-dev = "${EAT_GCC_LICENSE}"
LICENSE_libgomp = "${EAT_GCC_LICENSE}"
LICENSE_libgomp-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libitm-dev = "${EAT_GCC_LICENSE}"
LICENSE_libitm = "${EAT_GCC_LICENSE}"
LICENSE_libitm-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_liblsan-dev = "${EAT_GCC_LICENSE}"
LICENSE_liblsan = "${EAT_GCC_LICENSE}"
LICENSE_liblsan-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libmudflap-dev = "${EAT_GCC_LICENSE}"
LICENSE_libmudflap = "${EAT_GCC_LICENSE}"
LICENSE_libmudflap-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libquadmath-dev = "${EAT_GCC_LICENSE}"
LICENSE_libquadmath = "${EAT_GCC_LICENSE}"
LICENSE_libquadmath-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libssp-dev = "${EAT_GCC_LICENSE}"
LICENSE_libssp = "${EAT_GCC_LICENSE}"
LICENSE_libssp-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libstdc++-dbg = "${EAT_GCC_LICENSE}"
LICENSE_libstdc++-dev = "${EAT_GCC_LICENSE}"
LICENSE_libstdc++ = "${EAT_GCC_LICENSE}"
LICENSE_libstdc++-precompile-dev = "${EAT_GCC_LICENSE}"
LICENSE_libstdc++-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libtsan-dev = "${EAT_GCC_LICENSE}"
LICENSE_libtsan = "${EAT_GCC_LICENSE}"
LICENSE_libtsan-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_libubsan-dev = "${EAT_GCC_LICENSE}"
LICENSE_libubsan = "${EAT_GCC_LICENSE}"
LICENSE_libubsan-staticdev = "${EAT_GCC_LICENSE}"
LICENSE_linux-libc-headers-dev = "GPLv2"
LICENSE_linux-libc-headers = "GPLv2"
LICENSE_gdbserver = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
@@ -4,6 +4,12 @@ BASEPV = "8.2"
PV = "arm-${BASEPV}"
CVE_VERSION = "${BASEPV}"
# CVE-2019-15847 is only relevant to POWER9 architecture
CVE_CHECK_WHITELIST += "CVE-2019-15847"
# CVE-2021-37322 is in binutils < 2.32, not in gcc
CVE_CHECK_WHITELIST += "CVE-2021-37322"
MMYY = "19.01"
RELEASE = "20${MMYY}"
PR = "r${RELEASE}"
@@ -9,6 +9,12 @@ RELEASE = "20${MMYY}"
PR = "r${RELEASE}"
BINV = "${BASEPV}.0"
# CVE-2019-15847 is only relevant to POWER9 architecture
CVE_CHECK_WHITELIST += "CVE-2019-15847"
# CVE-2021-37322 is in binutils < 2.32, not in gcc
CVE_CHECK_WHITELIST += "CVE-2021-37322"
FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-${BASEPV}:${FILE_DIRNAME}/gcc-${BASEPV}/backport:"
DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
@@ -5,6 +5,12 @@ require recipes-devtools/gcc/gcc-common.inc
PV = "arm-9.2"
CVE_VERSION = "9.2"
# CVE-2019-15847 is only relevant to POWER9 architecture
CVE_CHECK_WHITELIST += "CVE-2019-15847"
# CVE-2021-37322 is in binutils < 2.32, not in gcc
CVE_CHECK_WHITELIST += "CVE-2021-37322"
# BINV should be incremented to a revision after a minor gcc release
BINV = "9.2.1"
@@ -68,6 +74,7 @@ SRC_URI = "\
file://0035-Fix-for-testsuite-failure.patch \
file://0036-Re-introduce-spe-commandline-options.patch \
file://0037-Fix-up-libsanitizer-build-with-master-glibc.patch \
file://0001-Backport-fix-for-PR-tree-optimization-97236-fix-bad-.patch \
"
SRC_URI[md5sum] = "9c570fc4286825b4e6f67b3d34aade23"
@@ -0,0 +1,119 @@
Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=97b668f9a8c6ec565c278a60e7d1492a6932e409]
Signed-off-by: Jon Mason <jon.mason@arm.com>
From 97b668f9a8c6ec565c278a60e7d1492a6932e409 Mon Sep 17 00:00:00 2001
From: Matthias Klose <doko@ubuntu.com>
Date: Tue, 6 Oct 2020 13:41:37 +0200
Subject: [PATCH] Backport fix for PR/tree-optimization/97236 - fix bad use of
VMAT_CONTIGUOUS
This avoids using VMAT_CONTIGUOUS with single-element interleaving
when using V1mode vectors. Instead keep VMAT_ELEMENTWISE but
continue to avoid load-lanes and gathers.
2020-10-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/97236
* tree-vect-stmts.c (get_group_load_store_type): Keep
VMAT_ELEMENTWISE for single-element vectors.
* gcc.dg/vect/pr97236.c: New testcase.
(cherry picked from commit 1ab88985631dd2c5a5e3b5c0dce47cf8b6ed2f82)
---
gcc/testsuite/gcc.dg/vect/pr97236.c | 43 +++++++++++++++++++++++++++++
gcc/tree-vect-stmts.c | 20 ++++++--------
2 files changed, 52 insertions(+), 11 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/vect/pr97236.c
diff --git a/gcc/testsuite/gcc.dg/vect/pr97236.c b/gcc/testsuite/gcc.dg/vect/pr97236.c
new file mode 100644
index 000000000000..9d3dc20d953d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr97236.c
@@ -0,0 +1,43 @@
+typedef unsigned char __uint8_t;
+typedef __uint8_t uint8_t;
+typedef struct plane_t {
+ uint8_t *p_pixels;
+ int i_lines;
+ int i_pitch;
+} plane_t;
+
+typedef struct {
+ plane_t p[5];
+} picture_t;
+
+#define N 4
+
+void __attribute__((noipa))
+picture_Clone(picture_t *picture, picture_t *res)
+{
+ for (int i = 0; i < N; i++) {
+ res->p[i].p_pixels = picture->p[i].p_pixels;
+ res->p[i].i_lines = picture->p[i].i_lines;
+ res->p[i].i_pitch = picture->p[i].i_pitch;
+ }
+}
+
+int
+main()
+{
+ picture_t aaa, bbb;
+ uint8_t pixels[10] = {1, 1, 1, 1, 1, 1, 1, 1};
+
+ for (unsigned i = 0; i < N; i++)
+ aaa.p[i].p_pixels = pixels;
+
+ picture_Clone (&aaa, &bbb);
+
+ uint8_t c = 0;
+ for (unsigned i = 0; i < N; i++)
+ c += bbb.p[i].p_pixels[0];
+
+ if (c != N)
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 507f81b0a0e8..ffbba3441de2 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -2355,25 +2355,23 @@ get_group_load_store_type (stmt_vec_info stmt_info, tree vectype, bool slp,
/* First cope with the degenerate case of a single-element
vector. */
if (known_eq (TYPE_VECTOR_SUBPARTS (vectype), 1U))
- *memory_access_type = VMAT_CONTIGUOUS;
+ ;
/* Otherwise try using LOAD/STORE_LANES. */
- if (*memory_access_type == VMAT_ELEMENTWISE
- && (vls_type == VLS_LOAD
- ? vect_load_lanes_supported (vectype, group_size, masked_p)
- : vect_store_lanes_supported (vectype, group_size,
- masked_p)))
+ else if (vls_type == VLS_LOAD
+ ? vect_load_lanes_supported (vectype, group_size, masked_p)
+ : vect_store_lanes_supported (vectype, group_size,
+ masked_p))
{
*memory_access_type = VMAT_LOAD_STORE_LANES;
overrun_p = would_overrun_p;
}
/* If that fails, try using permuting loads. */
- if (*memory_access_type == VMAT_ELEMENTWISE
- && (vls_type == VLS_LOAD
- ? vect_grouped_load_supported (vectype, single_element_p,
- group_size)
- : vect_grouped_store_supported (vectype, group_size)))
+ else if (vls_type == VLS_LOAD
+ ? vect_grouped_load_supported (vectype, single_element_p,
+ group_size)
+ : vect_grouped_store_supported (vectype, group_size))
{
*memory_access_type = VMAT_CONTIGUOUS_PERMUTE;
overrun_p = would_overrun_p;
--
2.20.1
@@ -1,7 +1,7 @@
From 2cb227cd8069c73242286f64183fb203f8d2618a Mon Sep 17 00:00:00 2001
From faa0f712a67005ef0260f95eebe7c7c57a6f8360 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:26:37 +0400
Subject: [PATCH 12/36] gcc: Fix argument list too long error.
Subject: [PATCH 12/39] gcc: Fix argument list too long error.
There would be an "Argument list too long" error when the
build directory is longer than 200, this is caused by:
@@ -17,24 +17,28 @@ $(sort list) doesn't need this.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
RP: gcc then added *.h and *.def additions to this list, breaking the original
fix. Add the sort to the original gcc code, leaving the tr+sort to fix the original
issue but include the new files too as reported by Zhuang <qiuguang.zqg@alibaba-inc.com>
Upstream-Status: Pending
---
gcc/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 41f0f592ff4..0064a282488 100644
index fef6c4c61e3..57cf7804f0a 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3537,7 +3537,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
@@ -3538,7 +3538,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
# We keep the directory structure for files in config or c-family and .def
# files. All other files are flattened to a single directory.
$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
+ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \
+ headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
for file in $$headers; do \
if [ -f $$file ] ; then \
--
2.22.1
2.25.1
@@ -12,7 +12,7 @@
do_install_prepend_class-target () {
if [ "${TCMODE}" = "external-arm" -a ! -f ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ]; then
install -d ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
install ${STAGING_LIBDIR}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
install ${STAGING_LIBDIR}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
fi
}