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.inc79
1 files changed, 79 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..6859f8f9
--- /dev/null
+++ b/conf/distro/include/tcmode-external-xilinx.inc
@@ -0,0 +1,79 @@
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
49python toolchain_setup () {
50 if not isinstance(e, bb.event.BuildStarted):
51 return
52 import errno
53
54 d = e.data
55 d = d.createCopy()
56 d.finalize()
57
58 tarprefix = d.expand('${TARGET_PREFIX}')
59 files = []
60 if tarprefix == "arm-xilinx-linux-gnueabi-":
61 files.append((tarprefix + "ld", tarprefix + "ld.bfd"))
62
63 if len(files) > 0:
64 ext_bindir = d.expand('${EXTERNAL_TOOLCHAIN}/bin')
65 loc_bindir = d.getVar('STAGING_BINDIR_TOOLCHAIN', True)
66 bb.mkdirhier(loc_bindir)
67 for f in files:
68 source = os.path.join(ext_bindir, f[0])
69 dest = os.path.join(loc_bindir, f[1])
70 try:
71 os.symlink(source, dest)
72 except OSError as exc:
73 if exc.errno == errno.EEXIST:
74 break
75 bb.fatal("Unable to populate toolchain binary symlink for %s: %s" % (f[0], f[1]))
76}
77
78require conf/distro/include/xilinx-versions.inc
79