summaryrefslogtreecommitdiffstats
path: root/recipes-core
diff options
context:
space:
mode:
authorNathan Rossi <nathan.rossi@xilinx.com>2013-08-12 10:30:19 +1000
committerNathan Rossi <nathan.rossi@xilinx.com>2013-09-03 16:09:43 +1000
commit68464246815ed791919795e4610ed56c5c86f77c (patch)
treea492816f5e7b0abd511d43b3394768acf70ddd0a /recipes-core
parent0c3fd8774d5b8604d184449e8f7ebcbbe1a91425 (diff)
downloadmeta-xilinx-68464246815ed791919795e4610ed56c5c86f77c.tar.gz
external-xilinx-toolchain: Created recipe
* Allows use of external Xilinx MicroBlaze and Zynq pre-built toolchains * Does not require additional layer dependencies * Updated documentation regarding external toolchain Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Diffstat (limited to 'recipes-core')
-rw-r--r--recipes-core/meta/external-xilinx-toolchain.bb148
-rw-r--r--recipes-core/meta/external-xilinx-toolchain/SUPPORTED0
2 files changed, 148 insertions, 0 deletions
diff --git a/recipes-core/meta/external-xilinx-toolchain.bb b/recipes-core/meta/external-xilinx-toolchain.bb
new file mode 100644
index 00000000..cc49a476
--- /dev/null
+++ b/recipes-core/meta/external-xilinx-toolchain.bb
@@ -0,0 +1,148 @@
1require recipes-core/eglibc/eglibc-package.inc
2
3INHIBIT_DEFAULT_DEPS = "1"
4
5# License applies to this recipe code, not the toolchain itself
6SUMMARY = "External Xilinx toolchain"
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = " \
9 file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
10 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \
11 "
12
13DEPENDS += "${@base_conditional('PREFERRED_PROVIDER_linux-libc-headers', PN, '', 'linux-libc-headers', d)}"
14PROVIDES += "\
15 linux-libc-headers \
16 virtual/${TARGET_PREFIX}gcc \
17 virtual/${TARGET_PREFIX}g++ \
18 virtual/${TARGET_PREFIX}gcc-initial \
19 virtual/${TARGET_PREFIX}gcc-intermediate \
20 virtual/${TARGET_PREFIX}binutils \
21 virtual/${TARGET_PREFIX}libc-for-gcc \
22 virtual/${TARGET_PREFIX}libc-initial \
23 virtual/${TARGET_PREFIX}compilerlibs \
24 virtual/libc \
25 virtual/libintl \
26 virtual/libiconv \
27 virtual/linux-libc-headers \
28 glibc-thread-db \
29 libgcc \
30 eglibc \
31 "
32
33PV = "${CSL_VER_MAIN}"
34PR = "r1"
35
36SRC_URI = "file://SUPPORTED"
37
38do_install() {
39 # Use optimized files if available
40 sysroot="${EXTERNAL_TOOLCHAIN_SYSROOT}"
41 dbgroot="${EXTERNAL_TOOLCHAIN_DBGROOT}"
42
43 cp -a $sysroot${base_libdir}/. ${D}${base_libdir}
44 cp -a $sysroot/sbin/. ${D}${base_sbindir}
45
46 install -d ${D}/usr
47 for usr_element in bin libexec sbin share ${base_libdir}; do
48 # Copy files from both the sysroot and the debugroot if they exist
49 if [ ! -z "$sysroot" -a -e $sysroot/usr/$usr_element ]; then
50 cp -a $sysroot/usr/$usr_element ${D}/usr/
51 fi
52 if [ ! -z "$dbgroot" -a -e $dbgroot/usr/$usr_element ]; then
53 cp -a $dbgroot/usr/$usr_element ${D}/usr/
54 fi
55 done
56
57 # Copy Include files
58 cp -a $sysroot/usr/include/. ${D}${includedir}
59
60 # strip out any multi-lib files (they are not supported)
61 for element in bs m ldscripts; do
62 if [ -e ${D}${libdir}/$element ]; then
63 rm -rf ${D}${libdir}/$element
64 fi
65 if [ -e ${D}${base_libdir}/$element ]; then
66 rm -rf ${D}${base_libdir}/$element
67 fi
68 done
69
70 # Clean up the image (remove files and directories that are not packaged)
71 ## ${D}${sysconfdir}
72 for i in ${D}/usr/share/zoneinfo ${D}/usr/lib/bin ${D}/usr/libexec ; do
73 if [ -e $i ]; then
74 rm -rf $i
75 fi
76 done
77
78 # Move libstdc++ to /usr/lib
79 if [ -e ${D}${base_libdir}/libstdc++.so ]; then
80 mv ${D}${base_libdir}/libstdc++.* ${D}${libdir}/
81 fi
82
83 sed -i -e 's/__packed/__attribute__ ((packed))/' ${D}${includedir}/mtd/ubi-user.h
84 sed -i -e "s# ${base_libdir}# ../..${base_libdir}#g" -e "s# ${libdir}# .#g" ${D}${libdir}/libc.so
85 sed -i -e "s# ${base_libdir}# ../..${base_libdir}#g" -e "s# ${libdir}# .#g" ${D}${libdir}/libpthread.so
86}
87
88PACKAGES =+ " \
89 libgcc libgcc-dev \
90 libstdc++ libstdc++-dev libstdc++-staticdev \
91 linux-libc-headers linux-libc-headers-dev \
92 gdbserver gdbserver-dbg \
93 "
94
95# This test should be fixed to ignore .a files in .debug dirs
96INSANE_SKIP_${PN}-dbg = "staticdev"
97
98# We don't care about GNU_HASH in prebuilt binaries
99INSANE_SKIP_${PN}-utils += "ldflags"
100INSANE_SKIP_${PN}-dev += "ldflags"
101INSANE_SKIP_libstdc++ += "ldflags"
102INSANE_SKIP_libgcc += "ldflags"
103INSANE_SKIP_gdbserver += "ldflags"
104
105PKG_${PN} = "eglibc"
106PKG_${PN}-dev = "eglibc-dev"
107PKG_${PN}-staticdev = "eglibc-staticdev"
108PKG_${PN}-doc = "eglibc-doc"
109PKG_${PN}-dbg = "eglibc-dbg"
110PKG_${PN}-pic = "eglibc-pic"
111PKG_${PN}-utils = "eglibc-utils"
112PKG_${PN}-gconv = "eglibc-gconv"
113PKG_${PN}-extra-nss = "eglibc-extra-nss"
114PKG_${PN}-thread-db = "eglibc-thread-db"
115PKG_${PN}-pcprofile = "eglibc-pcprofile"
116
117PKGV = "${CSL_VER_LIBC}"
118PKGV_libgcc = "${CSL_VER_GCC}"
119PKGV_libgcc-dev = "${CSL_VER_GCC}"
120PKGV_libstdc++ = "${CSL_VER_GCC}"
121PKGV_libstdc++-dev = "${CSL_VER_GCC}"
122PKGV_libstdc++-staticdev = "${CSL_VER_GCC}"
123PKGV_linux-libc-headers = "${CSL_VER_KERNEL}"
124PKGV_linux-libc-headers-dev = "${CSL_VER_KERNEL}"
125PKGV_gdbserver = "${CSL_VER_GDB}"
126PKGV_gdbserver-dbg = "${CSL_VER_GDB}"
127
128FILES_libgcc = "${base_libdir}/libgcc_s.so.1"
129FILES_libgcc-dev = "${base_libdir}/libgcc_s.so"
130FILES_libstdc++ = "${libdir}/libstdc++.so.*"
131FILES_libstdc++-dev = " \
132 ${includedir}/c++/${PV} \
133 ${libdir}/libstdc++.so \
134 ${libdir}/libstdc++.la \
135 ${libdir}/libsupc++.la \
136 "
137FILES_libstdc++-staticdev = "${libdir}/libstdc++.a ${libdir}/libsupc++.a"
138FILES_linux-libc-headers = " \
139 ${includedir}/asm* \
140 ${includedir}/linux \
141 ${includedir}/mtd \
142 ${includedir}/rdma \
143 ${includedir}/scsi \
144 ${includedir}/sound \
145 ${includedir}/video \
146 "
147FILES_gdbserver = "${bindir}/gdbserver"
148FILES_gdbserver-dbg = "${bindir}/.debug/gdbserver"
diff --git a/recipes-core/meta/external-xilinx-toolchain/SUPPORTED b/recipes-core/meta/external-xilinx-toolchain/SUPPORTED
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/recipes-core/meta/external-xilinx-toolchain/SUPPORTED