summaryrefslogtreecommitdiffstats
path: root/conf/distro/include/tcmode-external-xilinx.inc
diff options
context:
space:
mode:
Diffstat (limited to 'conf/distro/include/tcmode-external-xilinx.inc')
-rw-r--r--conf/distro/include/tcmode-external-xilinx.inc78
1 files changed, 78 insertions, 0 deletions
diff --git a/conf/distro/include/tcmode-external-xilinx.inc b/conf/distro/include/tcmode-external-xilinx.inc
new file mode 100644
index 00000000..a4786e8b
--- /dev/null
+++ b/conf/distro/include/tcmode-external-xilinx.inc
@@ -0,0 +1,78 @@
1#
2# Configuration to use external Xilinx toolchain
3#
4
5TOOLCHAIN_PATH_ADD = "${EXTERNAL_TOOLCHAIN}/bin:"
6PATH =. "${TOOLCHAIN_PATH_ADD}"
7
8CSL_TARGET_SYS_armv7a ?= "arm-xilinx-linux-gnueabi"
9CSL_TARGET_SYS_microblazeel ?= "microblazeel-xilinx-linux-gnu"
10CSL_TARGET_SYS = "${TARGET_SYS}"
11
12TARGET_PREFIX = "${CSL_TARGET_SYS}-"
13
14PREFERRED_PROVIDER_linux-libc-headers = "external-xilinx-toolchain"
15PREFERRED_PROVIDER_linux-libc-headers-dev = "external-xilinx-toolchain"
16PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "external-xilinx-toolchain"
17PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "external-xilinx-toolchain"
18PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "external-xilinx-toolchain"
19PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "external-xilinx-toolchain"
20PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "external-xilinx-toolchain"
21PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "external-xilinx-toolchain"
22PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "external-xilinx-toolchain"
23PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs = "external-xilinx-toolchain"
24PREFERRED_PROVIDER_libgcc = "external-xilinx-toolchain"
25PREFERRED_PROVIDER_eglibc = "external-xilinx-toolchain"
26PREFERRED_PROVIDER_virtual/libc = "external-xilinx-toolchain"
27PREFERRED_PROVIDER_virtual/libintl = "external-xilinx-toolchain"
28PREFERRED_PROVIDER_virtual/libiconv = "external-xilinx-toolchain"
29PREFERRED_PROVIDER_glibc-thread-db = "external-xilinx-toolchain"
30PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-xilinx-toolchain"
31PREFERRED_PROVIDER_virtual/linux-libc-headers-dev = "external-xilinx-toolchain"
32PREFERRED_PROVIDER_gdbserver ??= "external-xilinx-toolchain"
33
34# No need to re-compile the locale files
35GLIBC_INTERNAL_USE_BINARY_LOCALE = "precompiled"
36ENABLE_BINARY_LOCALE_GENERATION = ""
37
38TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}"
39
40# Default sysroot is inside the Xilinx ARM v7-A toolchain in the '<CSL_TARGET_SYS>/libc' (no debug-root)
41EXTERNAL_TOOLCHAIN_SYSROOT_armv7a ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc"
42EXTERNAL_TOOLCHAIN_DBGROOT_armv7a ??= ""
43
44# Default sysroot is inside the Xilinx MicroBlaze toolchain in the '<CSL_TARGET_SYS>/sys-root'
45EXTERNAL_TOOLCHAIN_SYSROOT_microblaze ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/sys-root"
46EXTERNAL_TOOLCHAIN_DBGROOT_microblaze ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/debug-root"
47
48addhandler toolchain_setup
49toolchain_setup[eventmask] = "bb.event.BuildStarted"
50python toolchain_setup () {
51 import errno
52
53 d = e.data
54 d = d.createCopy()
55 d.finalize()
56
57 tarprefix = d.expand('${TARGET_PREFIX}')
58 files = []
59 if tarprefix == "arm-xilinx-linux-gnueabi-":
60 files.append((tarprefix + "ld", tarprefix + "ld.bfd"))
61
62 if len(files) > 0:
63 ext_bindir = d.expand('${EXTERNAL_TOOLCHAIN}/bin')
64 loc_bindir = d.getVar('STAGING_BINDIR_TOOLCHAIN', True)
65 bb.utils.mkdirhier(loc_bindir)
66 for f in files:
67 source = os.path.join(ext_bindir, f[0])
68 dest = os.path.join(loc_bindir, f[1])
69 try:
70 os.symlink(source, dest)
71 except OSError as exc:
72 if exc.errno == errno.EEXIST:
73 break
74 bb.fatal("Unable to populate toolchain binary symlink for %s: %s" % (f[0], f[1]))
75}
76
77require conf/distro/include/xilinx-versions.inc
78