summaryrefslogtreecommitdiffstats
path: root/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain
diff options
context:
space:
mode:
Diffstat (limited to 'meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain')
-rw-r--r--meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb376
-rw-r--r--meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/files/SUPPORTED1
2 files changed, 377 insertions, 0 deletions
diff --git a/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb b/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
new file mode 100644
index 0000000..9e8ad6e
--- /dev/null
+++ b/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
@@ -0,0 +1,376 @@
1require recipes-core/glibc/glibc-package.inc
2
3INHIBIT_DEFAULT_DEPS = "1"
4INHIBIT_PACKAGE_STRIP = "1"
5INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
6
7# License applies to this recipe code, not the toolchain itself
8LICENSE = "MIT"
9LIC_FILES_CHKSUM = "\
10 file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
11 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \
12"
13
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}binutils \
20 virtual/${TARGET_PREFIX}libc-for-gcc \
21 virtual/${TARGET_PREFIX}compilerlibs \
22 virtual/libc \
23 virtual/libintl \
24 virtual/libiconv \
25 glibc-thread-db \
26 glibc \
27 libgcc \
28 libg2c \
29 libg2c-dev \
30 libssp \
31 libssp-dev \
32 libssp-staticdev \
33 libgfortran \
34 libgfortran-dev \
35 libgfortran-staticdev \
36 libmudflap \
37 libmudflap-dev \
38 libgomp \
39 libgomp-dev \
40 libgomp-staticdev \
41 libitm \
42 libitm-dev \
43 libitm-staticdev \
44 virtual/linux-libc-headers \
45 libgcov-dev \
46"
47
48PV = "${ELT_VER_MAIN}"
49
50# https://launchpad.net/linaro-toolchain-binaries
51SRC_URI = "file://SUPPORTED"
52
53do_install() {
54 install -d ${D}${base_libdir}
55 install -d ${D}${bindir}
56 install -d ${D}${sbindir}
57 install -d ${D}${libdir}
58 install -d ${D}${libexecdir}
59 install -d ${D}${datadir}
60 install -d ${D}${includedir}
61
62 cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/lib/* ${D}${base_libdir}
63 if [ -d ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/${ELT_TARGET_SYS} ]; then
64 cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/${ELT_TARGET_SYS}/* ${D}${base_libdir}
65 else
66 cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/* ${D}${base_libdir}
67 fi
68 if [ -d ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/lib/${ELT_TARGET_SYS} ]; then
69 cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/lib/${ELT_TARGET_SYS}/* ${D}${libdir}
70 else
71 cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/lib/* ${D}${libdir}
72 fi
73 cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/share/* ${D}${datadir}
74 cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/include/* ${D}${includedir}
75 if [ -d ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/include/${ELT_TARGET_SYS} ]; then
76 cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/include/${ELT_TARGET_SYS}/* ${D}${includedir}
77
78 rm -r ${D}${includedir}/${ELT_TARGET_SYS}
79 fi
80
81 # fix up the copied symlinks (they are still pointing to the multiarch directory)
82 linker_name="${@base_contains("TUNE_FEATURES", "aarch64", "ld-linux-aarch64.so.1", base_contains("TUNE_FEATURES", "callconvention-hard", "ld-linux-armhf.so.3", "ld-linux.so.3",d), d)}"
83 ln -sf ld-${ELT_VER_LIBC}.so ${D}${base_libdir}/${linker_name}
84 ln -sf ../../lib/libnsl.so.1 ${D}${libdir}/libnsl.so
85 ln -sf ../../lib/librt.so.1 ${D}${libdir}/librt.so
86 ln -sf ../../lib/libcrypt.so.1 ${D}${libdir}/libcrypt.so
87 ln -sf ../../lib/libnss_nis.so.2 ${D}${libdir}/libnss_nis.so
88 ln -sf ../../lib/libresolv.so.2 ${D}${libdir}/libresolv.so
89 ln -sf ../../lib/libnss_dns.so.2 ${D}${libdir}/libnss_dns.so
90 ln -sf ../../lib/libnss_hesiod.so.2 ${D}${libdir}/libnss_hesiod.so
91 ln -sf ../../lib/libutil.so.1 ${D}${libdir}/libutil.so
92 ln -sf ../../lib/libnss_files.so.2 ${D}${libdir}/libnss_files.so
93 ln -sf ../../lib/libnss_compat.so.2 ${D}${libdir}/libnss_compat.so
94 ln -sf ../../lib/libcidn.so.1 ${D}${libdir}/libcidn.so
95 ln -sf ../../lib/libBrokenLocale.so.1 ${D}${libdir}/libBrokenLocale.so
96 ln -sf ../../lib/libthread_db.so.1 ${D}${libdir}/libthread_db.so
97 ln -sf ../../lib/libanl.so.1 ${D}${libdir}/libanl.so
98 ln -sf ../../lib/libdl.so.2 ${D}${libdir}/libdl.so
99 ln -sf ../../lib/libnss_nisplus.so.2 ${D}${libdir}/libnss_nisplus.so
100 ln -sf ../../lib/libm.so.6 ${D}${libdir}/libm.so
101
102 if [ -d ${D}${base_libdir}/arm-linux-gnueabi ]; then
103 rm -rf ${D}${base_libdir}/arm-linux-gnueabi
104 fi
105
106 if [ -d ${D}${base_libdir}/ldscripts ]; then
107 rm -rf ${D}${base_libdir}/ldscripts
108 fi
109
110 if [ -f ${D}${libdir}/libc.so ];then
111 sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s# /usr/lib/${ELT_TARGET_SYS}# .#g" -e "s# /lib/ld-linux# ../../lib/ld-linux#g" ${D}${libdir}/libc.so
112 fi
113 if [ -f ${D}${base_libdir}/libc.so ];then
114 sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s# /usr/lib/${ELT_TARGET_SYS}# .#g" -e "s# /lib/ld-linux# ../../lib/ld-linux#g" ${D}${base_libdir}/libc.so
115 fi
116 if [ -f ${D}${libdir}/libpthread.so ];then
117 sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s# /usr/lib/${ELT_TARGET_SYS}# .#g" ${D}${libdir}/libpthread.so
118 fi
119 if [ -f ${D}${base_libdir}/libpthread.so ];then
120 sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s# /usr/lib/${ELT_TARGET_SYS}# .#g" ${D}${base_libdir}/libpthread.so
121 fi
122}
123
124PACKAGES =+ "\
125 libgcov-dev \
126 libgcc \
127 libgcc-dev \
128 libstdc++ \
129 libstdc++-dev \
130 libstdc++-staticdev \
131 libatomic \
132 libatomic-dev \
133 libatomic-staticdev \
134 libasan \
135 libasan-dev \
136 libasan-staticdev \
137 linux-libc-headers \
138 libubsan \
139 libubsan-dev \
140 libubsan-staticdev \
141 linux-libc-headers-dev \
142 libssp \
143 libssp-dev \
144 libssp-staticdev \
145 libgfortran \
146 libgfortran-dev \
147 libgfortran-staticdev \
148 libmudflap \
149 libmudflap-dev \
150 libmudflap-staticdev \
151 libgomp \
152 libgomp-dev \
153 libgomp-staticdev \
154 libitm \
155 libitm-dev \
156 libitm-staticdev \
157"
158
159INSANE_SKIP_${PN}-dbg = "staticdev"
160INSANE_SKIP_${PN}-utils += "ldflags"
161INSANE_SKIP_libstdc++ += "ldflags"
162INSANE_SKIP_libgcc += "ldflags"
163INSANE_SKIP_gdbserver += "ldflags"
164
165# OE-core has literally listed 'glibc' in LIBC_DEPENDENCIES :/
166RPROVIDES_${PN} = "glibc"
167# Add runtime provides for the other libc* packages as well
168RPROVIDES_${PN}-dev = "glibc-dev"
169RPROVIDES_${PN}-doc = "glibc-doc"
170RPROVIDES_${PN}-dbg = "glibc-dbg"
171RPROVIDES_${PN}-pic = "glibc-pic"
172RPROVIDES_${PN}-utils = "glibc-utils"
173
174PKG_${PN} = "glibc"
175PKG_${PN}-dev = "glibc-dev"
176PKG_${PN}-doc = "glibc-doc"
177PKG_${PN}-dbg = "glibc-dbg"
178PKG_${PN}-pic = "glibc-pic"
179PKG_${PN}-utils = "glibc-utils"
180PKG_${PN}-gconv = "glibc-gconv"
181PKG_${PN}-extra-nss = "glibc-extra-nss"
182PKG_${PN}-thread-db = "glibc-thread-db"
183PKG_${PN}-pcprofile = "glibc-pcprofile"
184PKG_${PN}-staticdev = "glibc-staticdev"
185
186PKGV_${PN} = "${ELT_VER_LIBC}"
187PKGV_${PN}-dev = "${ELT_VER_LIBC}"
188PKGV_${PN}-doc = "${ELT_VER_LIBC}"
189PKGV_${PN}-dbg = "${ELT_VER_LIBC}"
190PKGV_${PN}-pic = "${ELT_VER_LIBC}"
191PKGV_${PN}-utils = "${ELT_VER_LIBC}"
192PKGV_${PN}-gconv = "${ELT_VER_LIBC}"
193PKGV_${PN}-extra-nss = "${ELT_VER_LIBC}"
194PKGV_${PN}-thread-db = "${ELT_VER_LIBC}"
195PKGV_${PN}-pcprofile = "${ELT_VER_LIBC}"
196PKGV_${PN}-staticdev = "${ELT_VER_LIBC}"
197PKGV_catchsegv = "${ELT_VER_LIBC}"
198PKGV_libsegfault = "${ELT_VER_LIBC}"
199PKGV_sln = "${ELT_VER_LIBC}"
200PKGV_nscd = "${ELT_VER_LIBC}"
201PKGV_ldd = "${ELT_VER_LIBC}"
202PKGV_libgcc = "${ELT_VER_GCC}"
203PKGV_libgcc-dev = "${ELT_VER_GCC}"
204PKGV_libstdc++ = "${ELT_VER_GCC}"
205PKGV_libstdc++-dev = "${ELT_VER_GCC}"
206PKGV_libstdc++-staticdev = "${ELT_VER_GCC}"
207PKGV_libatomic = "${ELT_VER_GCC}"
208PKGV_libatomic = "${ELT_VER_GCC}"
209PKGV_libatomic = "${ELT_VER_GCC}"
210PKGV_libasan = "${ELT_VER_GCC}"
211PKGV_libasan-dev = "${ELT_VER_GCC}"
212PKGV_libasan-staticdev = "${ELT_VER_GCC}"
213PKGV_libubsan = "${ELT_VER_GCC}"
214PKGV_libubsan-dev = "${ELT_VER_GCC}"
215PKGV_libubsan-staticdev = "${ELT_VER_GCC}"
216PKGV_linux-libc-headers = "${ELT_VER_KERNEL}"
217PKGV_linux-libc-headers-dev = "${ELT_VER_KERNEL}"
218PKGV_gdbserver = "${ELT_VER_GDBSERVER}"
219
220FILES_libgcov-dev = "${libdir}/${TARGET_SYS}/${BINV}/libgcov.a"
221
222FILES_libsegfault = "${base_libdir}/libSegFault*"
223
224FILES_catchsegv = "${bindir}/catchsegv"
225RDEPENDS_catchsegv = "libsegfault"
226
227FILES_libatomic = "${base_libdir}/libatomic.so.*"
228FILES_libatomic-dev = "\
229 ${base_libdir}/libatomic.so \
230 ${base_libdir}/libatomic.la \
231"
232FILES_libatomic-staticdev = "${base_libdir}/libatomic.a"
233
234FILES_libasan = "${base_libdir}/libasan.so.*"
235FILES_libasan-dev = "\
236 ${base_libdir}/libasan.so \
237 ${base_libdir}/libasan.la \
238"
239FILES_libasan-staticdev = "${base_libdir}/libasan.a"
240
241FILES_libubsan = "${base_libdir}/libubsan.so.*"
242FILES_libubsan-dev = "\
243 ${base_libdir}/libubsan.so \
244 ${base_libdir}/libubsan.la \
245"
246FILES_libubsan-staticdev = "${base_libdir}/libubsan.a"
247
248FILES_libgcc = "${base_libdir}/libgcc_s.so.1"
249FILES_libgcc-dev = "${base_libdir}/libgcc_s.so"
250FILES_libstdc++ = "${base_libdir}/libstdc++.so.*"
251FILES_libstdc++-dev = "\
252 ${includedir}/c++/${PV} \
253 ${base_libdir}/libstdc++.so"
254FILES_libstdc++-staticdev = "\
255 ${base_libdir}/libstdc++.a \
256 ${base_libdir}/libsupc++.a \
257"
258FILES_linux-libc-headers = "\
259 ${includedir}/asm* \
260 ${includedir}/linux \
261 ${includedir}/mtd \
262 ${includedir}/rdma \
263 ${includedir}/scsi \
264 ${includedir}/sound \
265 ${includedir}/video \
266"
267FILES_${PN} += "\
268 ${libdir}/bin \
269 ${libdir}/locale \
270 ${libdir}/gconv/gconv-modules \
271 ${datadir}/zoneinfo \
272 ${base_libdir}/libcrypt*.so.* \
273 ${base_libdir}/libcrypt-*.so \
274 ${base_libdir}/libc.so.* \
275 ${base_libdir}/libc-*.so \
276 ${base_libdir}/libm.so.* \
277 ${base_libdir}/libmemusage.so \
278 ${base_libdir}/libm-*.so \
279 ${base_libdir}/ld*.so.* \
280 ${base_libdir}/ld-*.so \
281 ${base_libdir}/libpthread*.so.* \
282 ${base_libdir}/libpthread-*.so \
283 ${base_libdir}/libresolv*.so.* \
284 ${base_libdir}/libresolv-*.so \
285 ${base_libdir}/librt*.so.* \
286 ${base_libdir}/librt-*.so \
287 ${base_libdir}/libutil*.so.* \
288 ${base_libdir}/libutil-*.so \
289 ${base_libdir}/libnsl*.so.* \
290 ${base_libdir}/libnsl-*.so \
291 ${base_libdir}/libnss_files*.so.* \
292 ${base_libdir}/libnss_files-*.so \
293 ${base_libdir}/libnss_compat*.so.* \
294 ${base_libdir}/libnss_compat-*.so \
295 ${base_libdir}/libnss_dns*.so.* \
296 ${base_libdir}/libnss_dns-*.so \
297 ${base_libdir}/libnss_nis*.so.* \
298 ${base_libdir}/libnss_nisplus-*.so \
299 ${base_libdir}/libnss_nisplus*.so.* \
300 ${base_libdir}/libnss_nis-*.so \
301 ${base_libdir}/libnss_hesiod*.so.* \
302 ${base_libdir}/libnss_hesiod-*.so \
303 ${base_libdir}/libdl*.so.* \
304 ${base_libdir}/libdl-*.so \
305 ${base_libdir}/libanl*.so.* \
306 ${base_libdir}/libanl-*.so \
307 ${base_libdir}/libBrokenLocale*.so.* \
308 ${base_libdir}/libBrokenLocale-*.so \
309 ${base_libdir}/libcidn*.so.* \
310 ${base_libdir}/libcidn-*.so \
311 ${base_libdir}/libthread_db*.so.* \
312 ${base_libdir}/libthread_db-*.so \
313 ${base_libdir}/libmemusage.so \
314 ${base_libdir}/libSegFault.so \
315 ${base_libdir}/libpcprofile.so \
316 "
317
318FILES_libstdc++ = "${base_libdir}/libstdc++.so.*"
319FILES_libstdc++-dev = "\
320 ${includedir}/c++/ \
321 ${base_libdir}/libstdc++.so \
322 ${base_libdir}/libstdc++.la \
323 ${base_libdir}/libsupc++.la"
324FILES_libstdc++-staticdev = "\
325 ${base_libdir}/libstdc++.a \
326 ${base_libdir}/libsupc++.a"
327
328FILES_libstdc++-precompile-dev = "${includedir}/c++/${TARGET_SYS}/bits/*.gch"
329
330FILES_libssp = "${base_libdir}/libssp.so.*"
331FILES_libssp-dev = " \
332 ${base_libdir}/libssp*.so \
333 ${base_libdir}/libssp*_nonshared.a \
334 ${base_libdir}/libssp*.la \
335 ${base_libdir}/gcc/${TARGET_SYS}/${BINV}/include/ssp"
336FILES_libssp-staticdev = " \
337 ${base_libdir}/libssp*.a"
338
339FILES_libgfortran = "${base_libdir}/libgfortran.so.*"
340FILES_libgfortran-dev = " \
341 ${base_libdir}/libgfortran.so"
342FILES_libgfortran-staticdev = " \
343 ${base_libdir}/libgfortran.a \
344 ${base_libdir}/libgfortranbegin.a"
345
346FILES_libmudflap = "${base_libdir}/libmudflap*.so.*"
347FILES_libmudflap-dev = "\
348 ${base_libdir}/libmudflap*.so \
349 ${base_libdir}/libmudflap*.a \
350 ${base_libdir}/libmudflap*.la"
351
352FILES_libitm = "${base_libdir}/libitm*${SOLIBS}"
353FILES_libitm-dev = "\
354 ${base_libdir}/libitm*${SOLIBSDEV} \
355 ${base_libdir}/libitm*.la \
356 ${base_libdir}/libitm.spec \
357 "
358FILES_libitm-staticdev = "\
359 ${base_libdir}/libitm*.a \
360 "
361
362FILES_libgomp = "${base_libdir}/libgomp*${SOLIBS}"
363FILES_libgomp-dev = "\
364 ${base_libdir}/libgomp*${SOLIBSDEV} \
365 ${base_libdir}/libgomp*.la \
366 ${base_libdir}/libgomp.spec \
367 ${base_libdir}/gcc/${TARGET_SYS}/${BINV}/include/omp.h \
368 "
369FILES_libgomp-staticdev = "\
370 ${base_libdir}/libgomp*.a \
371 "
372ELT_VER_MAIN ??= ""
373
374python () {
375 if not d.getVar("ELT_VER_MAIN"):
376 raise bb.parse.SkipPackage("External Linaro toolchain not configured (ELT_VER_MAIN not set).")
diff --git a/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/files/SUPPORTED b/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/files/SUPPORTED
new file mode 100644
index 0000000..9615075
--- /dev/null
+++ b/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/files/SUPPORTED
@@ -0,0 +1 @@
POSIX