summaryrefslogtreecommitdiffstats
path: root/conf
diff options
context:
space:
mode:
authorManjukumar Matha <manjukumar.harthikote-matha@xilinx.com>2016-04-27 17:43:44 -0700
committerNathan Rossi <nathan@nathanrossi.com>2016-05-03 02:25:48 +1000
commit397108ce8b60f2beb0967c255500abbfa82b0eff (patch)
tree998a88e5e7ab40aca254d5e93fd3fa7fee3037ea /conf
parentca731fb52eaa75d9417190f458e88b3842ae99ff (diff)
downloadmeta-xilinx-397108ce8b60f2beb0967c255500abbfa82b0eff.tar.gz
external-xilinx-toolchain: Remove toolchain support
This patch removes the Xilinx SDK toolchain support in meta-xilinx BSP layer. A new distro layer called meta-petalinux will be available as of May 9th 2016. The recipes to support the Xilinx SDK toolchain will added to this distro layer. Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Diffstat (limited to 'conf')
-rw-r--r--conf/distro/include/tcmode-external-xilinx.inc83
-rw-r--r--conf/distro/include/xilinx-versions.inc110
2 files changed, 0 insertions, 193 deletions
diff --git a/conf/distro/include/tcmode-external-xilinx.inc b/conf/distro/include/tcmode-external-xilinx.inc
deleted file mode 100644
index b2824acb..00000000
--- a/conf/distro/include/tcmode-external-xilinx.inc
+++ /dev/null
@@ -1,83 +0,0 @@
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_glibc = "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# Fix up default hash, enforce it in for CC_ARCH for packages that ignore LDFLAGS.
40TARGET_CC_ARCH_append = " ${TARGET_LINK_HASH_STYLE}"
41
42# Default sysroot is inside the Xilinx ARM v7-A toolchain in the '<CSL_TARGET_SYS>/libc' (no debug-root)
43EXTERNAL_TOOLCHAIN_SYSROOT_armv7a ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc"
44EXTERNAL_TOOLCHAIN_DBGROOT_armv7a ??= ""
45
46# Default sysroot is inside the Xilinx MicroBlaze toolchain in the '<CSL_TARGET_SYS>/sys-root'
47EXTERNAL_TOOLCHAIN_SYSROOT_microblazeel ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/sys-root"
48EXTERNAL_TOOLCHAIN_DBGROOT_microblazeel ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/debug-root"
49
50addhandler toolchain_setup
51toolchain_setup[eventmask] = "bb.event.BuildStarted"
52python toolchain_setup () {
53 import errno
54
55 d = e.data
56 d = d.createCopy()
57 d.finalize()
58
59 tarprefix = d.expand('${TARGET_PREFIX}')
60 files = []
61 if tarprefix == "arm-xilinx-linux-gnueabi-":
62 files.append((tarprefix + "ld", tarprefix + "ld.bfd"))
63
64 if len(files) > 0:
65 ext_bindir = d.expand('${EXTERNAL_TOOLCHAIN}/bin')
66 loc_bindir = d.getVar('STAGING_BINDIR_TOOLCHAIN', True)
67 bb.utils.mkdirhier(loc_bindir)
68 for f in files:
69 source = os.path.join(ext_bindir, f[0])
70 dest = os.path.join(loc_bindir, f[1])
71 try:
72 os.symlink(source, dest)
73 except OSError as exc:
74 if exc.errno == errno.EEXIST:
75 break
76 bb.fatal("Unable to populate toolchain binary symlink for %s: %s" % (f[0], f[1]))
77}
78
79require conf/distro/include/xilinx-versions.inc
80
81# Setup suitable toolchain flags
82require conf/distro/include/as-needed.inc
83
diff --git a/conf/distro/include/xilinx-versions.inc b/conf/distro/include/xilinx-versions.inc
deleted file mode 100644
index 4e44f07a..00000000
--- a/conf/distro/include/xilinx-versions.inc
+++ /dev/null
@@ -1,110 +0,0 @@
1def csl_run(d, cmd, *args):
2 import bb.process
3 import subprocess
4
5 topdir = d.getVar('TOPDIR', True)
6 toolchain_path = d.getVar('EXTERNAL_TOOLCHAIN', True)
7 if not toolchain_path:
8 return 'UNKNOWN', 'UNKNOWN'
9
10 target_prefix = d.getVar('TARGET_PREFIX', True)
11 path = os.path.join(toolchain_path, 'bin', target_prefix + cmd)
12 args = [path] + list(args)
13
14 return bb.process.run(args, cwd=topdir, stderr=subprocess.PIPE)
15
16def csl_get_version(d):
17 try:
18 stdout, stderr = csl_run(d, 'gcc', '-v')
19 except bb.process.CmdError as exc:
20 bb.error('Failed to obtain CodeSourcery toolchain version: %s' % exc)
21 bb.error('Make sure that MACHINE is set correctly in your local.conf and the toolchain supports %s.' % d.getVar("TARGET_ARCH", True))
22 return 'UNKNOWN'
23 else:
24 lines = stderr.splitlines()
25 for i in reversed(range(len(lines))):
26 if len(lines[i]) != 0:
27 return lines[i]
28 return 'UNKNOWN'
29
30def csl_get_main_version(d):
31 version = csl_get_version(d)
32 if version != 'UNKNOWN':
33 return version.split()[-1].rstrip(')')
34 else:
35 return version
36
37def csl_get_gcc_version(d):
38 version = csl_get_version(d)
39 if version != 'UNKNOWN':
40 return version.split()[2]
41 else:
42 return version
43
44def xilinx_get_libc_version(d):
45 syspath = d.expand('${EXTERNAL_TOOLCHAIN_SYSROOT}')
46 if not syspath:
47 return 'UNKNOWN'
48
49 libpath = syspath + '/lib/'
50 if not os.path.exists(libpath):
51 libpath = syspath + '/sgxx-glibc/lib/'
52
53 if os.path.exists(libpath):
54 for file in os.listdir(libpath):
55 if file.find('libc-') == 0:
56 return file[5:-3]
57 return 'UNKNOWN'
58
59def xilinx_get_kernel_version(d):
60 syspath = d.expand('${EXTERNAL_TOOLCHAIN_SYSROOT}')
61 if not syspath:
62 return 'UNKNOWN'
63
64 vf = syspath + '/usr/include/linux/version.h'
65 if not os.path.exists(vf):
66 vf = syspath + '/sgxx-glibc/usr/include/linux/version.h'
67
68 try:
69 f = open(vf, 'r')
70 except (OSError, IOError):
71 return 'UNKNOWN'
72
73 l = f.readlines();
74 f.close();
75 for s in l:
76 if s.find('LINUX_VERSION_CODE') > 0:
77 ver = int(s.split()[2])
78 maj = ver / 65536
79 ver = ver % 65536
80 min = ver / 256
81 ver = ver % 256
82 return str(maj)+'.'+str(min)+'.'+str(ver)
83 return 'UNKNOWN'
84
85def csl_get_gdb_version(d):
86 try:
87 stdout, stderr = csl_run(d, 'gdb', '-v')
88 except bb.process.CmdError:
89 return 'UNKNOWN'
90 else:
91 first_line = stdout.splitlines()[0]
92 return first_line.split()[-1]
93
94python xilinx_version_handler () {
95 d = e.data
96 ld = d.createCopy()
97 ld.finalize()
98
99 d.setVar('CSL_VER_MAIN', csl_get_main_version(ld))
100 d.setVar('CSL_VER_GCC', csl_get_gcc_version(ld))
101 d.setVar('CSL_VER_LIBC', xilinx_get_libc_version(ld))
102 d.setVar('CSL_VER_KERNEL', xilinx_get_kernel_version(ld))
103 d.setVar('CSL_VER_GDB', csl_get_gdb_version(ld))
104}
105addhandler xilinx_version_handler
106xilinx_version_handler[eventmask] = "bb.event.ConfigParsed"
107
108# Ensure that any variable which includes the --sysroot (CC, CXX, etc) also
109# depends on the toolchain version
110TOOLCHAIN_OPTIONS[vardeps] += "CSL_VER_MAIN CSL_VER_GCC"