blob: dd02a7c9881764515ee018952be430f0d4405820 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
HOMEPAGE = "https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms"
# FVP has an End User License Agreement. Add Arm-FVP-EULA to your
# LICENSE_FLAGS_ACCEPTED if you agree to these terms.
LICENSE_FLAGS = "Arm-FVP-EULA"
LICENSE = "Proprietary & Apache-2.0 & Python-2.0 & GPL-3.0-with-GCC-exception & Zlib & NCSA & LGPL-2.0-or-later & MIT & BSD-3-Clause"
COMPATIBLE_HOST = "x86_64.*-linux"
# The architecture-specific download filename suffix
FVP_ARCH:aarch64 = "Linux64_armv8l"
FVP_ARCH:x86-64 = "Linux64"
# The architecture-specific directory the binaries are installed under
FVP_ARCH_DIR = "${FVP_ARCH}"
def get_real_pv(d):
# FVP versions are like 11.12_43
pv = d.getVar("PV")
return "%s.%s_%s" % tuple(pv.split("."))
# If PV is 1.2.3, VERSION=1.2, BUILD=3, PV_URL=1.2_3.
VERSION = "${@oe.utils.trim_version(d.getVar('PV', -1))}"
BUILD = "${@d.getVar('PV').split('.')[-1]}"
PV_URL = "${@get_real_pv(d)}"
# The directory the FVP is installed into
FVPDIR = "${libdir}/fvp/${BPN}"
# Used in do_install to create symlinks in $bindir to $FVPDIR
fvp_link_binaries() {
DIR="${D}${FVPDIR}/models/${FVP_ARCH_DIR}*"
stat $DIR/FVP_* >/dev/null 2>&1 || bbfatal Cannot find FVP binaries in $DIR
for FVP in $DIR/FVP_*; do
ln -rs $FVP ${D}${bindir}/$(basename $FVP)
done
# But not the .so files too
rm -f ${D}${bindir}/*.so
}
FILES:${PN} = "${bindir} ${FVPDIR}"
# Prebuilt binaries are already stripped
INSANE_SKIP:${PN} += "already-stripped"
# FVP can optionally have a GUI, but we can use the host libraries in native/nativesdk
INSANE_SKIP:${PN} += "file-rdeps"
# GNU_HASH warnings
INSANE_SKIP:${PN} += "ldflags"
# FVP brings its own standard library so don't let it be used as a shlib provider
PRIVATE_LIBS = "libgcc_s.so.1 libstdc++.so.6"
BBCLASSEXTEND = "native nativesdk"
|