blob: dcc8ebf0214af1977be3d19fff270475d6f8261f [file] [log] [blame]
Brad Bishopbec4ebc2022-08-03 09:55:16 -04001require recipes-core/glibc/glibc-package.inc
2
3require license.inc
4
5INHIBIT_DEFAULT_DEPS = "1"
6
7LIC_FILES_CHKSUM = "\
8 file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
9 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \
10"
11
12PROVIDES += "\
13 linux-libc-headers \
14 virtual/${TARGET_PREFIX}gcc \
15 virtual/${TARGET_PREFIX}g++ \
16 virtual/${TARGET_PREFIX}gcc-initial \
17 virtual/${TARGET_PREFIX}binutils \
18 virtual/${TARGET_PREFIX}libc-for-gcc \
19 virtual/${TARGET_PREFIX}compilerlibs \
20 virtual/libc \
21 virtual/libintl \
22 virtual/libiconv \
23 virtual/crypt \
24 glibc-mtrace \
25 glibc-thread-db \
26 glibc \
27 libc-mtrace \
28 gcc-runtime \
29 libgcc \
30 libg2c \
31 libg2c-dev \
32 libssp \
33 libssp-dev \
34 libssp-staticdev \
35 libgfortran \
36 libgfortran-dev \
37 libgfortran-staticdev \
38 libmudflap \
39 libmudflap-dev \
40 libgomp \
41 libgomp-dev \
42 libgomp-staticdev \
43 libitm \
44 libitm-dev \
45 libitm-staticdev \
46 libquadmath \
47 libquadmath-dev \
48 libquadmath-staticdev \
49 virtual/linux-libc-headers \
50 libgcov-staticdev \
51 virtual/libc-locale \
52"
53
54PV = "${EAT_VER_MAIN}"
55
56BINV = "${EAT_VER_GCC}"
57
58SRC_URI = "file://SUPPORTED"
59
60do_install() {
61 # Add stubs for files OE-core expects
62 install -d ${S}/nscd/
63 touch ${S}/nscd/nscd.init
64 touch ${S}/nscd/nscd.conf
65 touch ${S}/nscd/nscd.service
66 touch ${S}/../makedbs.sh
67
68 install -d ${D}${base_libdir}
69 install -d ${D}${base_sbindir}
70 install -d ${D}${bindir}
71 install -d ${D}${sbindir}
72 install -d ${D}${libdir}
73 install -d ${D}${libexecdir}
74 install -d ${D}${datadir}
75 install -d ${D}${includedir}
76 install -d ${D}/include
77 install -d ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}
78 install -d ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}
79
80 CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
81 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/* ${D}${base_libdir}
82 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/${EAT_LIBDIR}/* ${D}${base_libdir}
83 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/${EAT_LIBDIR}/* ${D}${libdir}
84 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/share/* ${D}${datadir}
85 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/include/* ${D}${includedir}
86
87 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/include/* ${D}${includedir}
88 if [ -d ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ]; then
89 mv ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ${D}${includedir}/c++/${EAT_VER_GCC}/${TARGET_SYS}
90 fi
91 ln -sf ../usr/include/c++ ${D}/include/c++
92
93 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/bin/* ${D}${bindir}
94 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/sbin/* ${D}${sbindir}
95 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/sbin/* ${D}${base_sbindir}
96 rm -rf ${D}${bindir}/gdbserver
97 sed -i -e 's#/arm/tools/gnu/bash/4.2/rhe6-x86_64##' ${D}${bindir}/tzselect
98 sed -i -e 's#/arm/tools/gnu/bash/4.2/rhe6-x86_64##' ${D}${bindir}/ldd
99 sed -i -e 's#/usr/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
100 sed -i -e 's#/usr/bin/bash#/bin/sh#' ${D}${bindir}/ldd
101 sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
102 sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
103
104 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
105 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
106 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
107 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
108 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
109
110 # fix up the copied symlinks (they are still pointing to the multiarch directory)
111 linker_name="${@bb.utils.contains("TUNE_FEATURES", "aarch64", "ld-linux-aarch64.so.1", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "ld-linux-armhf.so.3", "ld-linux.so.3",d), d)}"
112 if [ -f ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/${EAT_LIBDIR}/ld-${EAT_VER_LIBC}.so ]; then
113 ln -sf ld-${EAT_VER_LIBC}.so ${D}${base_libdir}/${linker_name}
114 else
115 cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/lib/${linker_name} ${D}${base_libdir}/
116 fi
117 ln -sf ../../lib/librt.so.1 ${D}${libdir}/librt.so
118 ln -sf ../../lib/libcrypt.so.1 ${D}${libdir}/libcrypt.so
119 ln -sf ../../lib/libresolv.so.2 ${D}${libdir}/libresolv.so
120 ln -sf ../../lib/libnss_hesiod.so.2 ${D}${libdir}/libnss_hesiod.so
121 ln -sf ../../lib/libutil.so.1 ${D}${libdir}/libutil.so
122 ln -sf ../../lib/libBrokenLocale.so.1 ${D}${libdir}/libBrokenLocale.so
123 ln -sf ../../lib/libpthread.so.0 ${D}${libdir}/libpthread.so
124 ln -sf ../../lib/libthread_db.so.1 ${D}${libdir}/libthread_db.so
125 ln -sf ../../lib/libanl.so.1 ${D}${libdir}/libanl.so
126 ln -sf ../../lib/libdl.so.2 ${D}${libdir}/libdl.so
127 ln -sf ../../lib/libnss_db.so.2 ${D}${libdir}/libnss_db.so
128 ln -sf ../../lib/libnss_dns.so.2 ${D}${libdir}/libnss_dns.so
129 ln -sf ../../lib/libnss_files.so.2 ${D}${libdir}/libnss_files.so
130 ln -sf ../../lib/libnss_compat.so.2 ${D}${libdir}/libnss_compat.so
131 ln -sf ../../lib/libm.so.6 ${D}${libdir}/libm.so
132 ln -sf ../../lib/libc_malloc_debug.so.0 ${D}${libdir}/libc_malloc_debug.so
133
134 # remove potential .so duplicates from base_libdir
135 # for all symlinks created above in libdir
136 rm -f ${D}${base_libdir}/librt.so
137 rm -f ${D}${base_libdir}/libcrypt.so
138 rm -f ${D}${base_libdir}/libresolv.so
139 rm -f ${D}${base_libdir}/libnss_hesiod.so
140 rm -f ${D}${base_libdir}/libutil.so
141 rm -f ${D}${base_libdir}/libBrokenLocale.so
142 rm -f ${D}${base_libdir}/libpthread.so
143 rm -f ${D}${base_libdir}/libthread_db.so
144 rm -f ${D}${base_libdir}/libanl.so
145 rm -f ${D}${base_libdir}/libdl.so
146 rm -f ${D}${base_libdir}/libnss_db.so
147 rm -f ${D}${base_libdir}/libnss_dns.so
148 rm -f ${D}${base_libdir}/libnss_files.so
149 rm -f ${D}${base_libdir}/libnss_compat.so
150 rm -f ${D}${base_libdir}/libm.so
151
152 # Move these completely to ${libdir} and delete duplicates in ${base_libdir}
153 for lib in asan hwasan atomic gfortran gomp itm lsan sanitizer stdc++ tsan ubsan; do
154 if [ -e ${D}${base_libdir}/lib${lib}.spec ] ; then
155 mv ${D}${base_libdir}/lib${lib}.spec ${D}${libdir}
156 fi
157 if [ -e ${D}${base_libdir}/lib${lib}.a ] ; then
158 mv ${D}${base_libdir}/lib${lib}.a ${D}${libdir}
159 fi
160 rm -f ${D}${base_libdir}/lib${lib}*
161 done
162
163 # Clean up duplicate libs that are both in base_libdir and libdir
164 rm -f ${D}${libdir}/libgcc*
165
166 # Besides ld-${EAT_VER_LIBC}.so, other libs can have duplicates like lib*-${EAT_VER_LIBC}.so
167 # Only remove them if both are regular files and are identical
168 for i in ${D}${base_libdir}/lib*-${EAT_VER_LIBC}.so; do
169 if [ ! -e $i ] ; then
170 continue
171 fi
172
173 f=$(echo $i | sed 's/-${EAT_VER_LIBC}//')
174 l=$(ls $f.*)
175 if [ $(readlink -f $i ) = $l ]; then
176 echo "$i is a symlink of $l, keep it"
177 elif [ $(readlink -f $l ) = $i ]; then
178 echo "$l is a symlink of $i, keep it"
179 else
180 cmp -s $i $l
181 if [ $? -eq 0 ]; then
182 echo "$i is a duplicate of $l, remove it"
183 rm $i
184 else
185 echo "$i and $l are different files, keep them both"
186 fi
187 fi
188 done
189
190 if [ -d ${D}${base_libdir}/arm-linux-gnueabi ]; then
191 rm -rf ${D}${base_libdir}/arm-linux-gnueabi
192 fi
193
194 if [ -d ${D}${base_libdir}/ldscripts ]; then
195 rm -rf ${D}${base_libdir}/ldscripts
196 fi
197
198 # Provided by libnsl2
199 rm -rf ${D}${includedir}/rpcsvc/yppasswd.*
200 # Provided by quota
201 rm -rf ${D}${includedir}/rpcsvc/rquota.*
202
203 if [ -f ${D}${libdir}/libc.so ];then
204 sed -i -e "s# /${EAT_LIBDIR}/${EAT_TARGET_SYS}# ../../${EAT_LIBDIR}#g" -e "s# /usr/${EAT_LIBDIR}/# /usr/lib/#g" -e "s# /usr/${EAT_LIBDIR}/${EAT_TARGET_SYS}# .#g" -e "s# /${EAT_LIBDIR}/ld-linux# ../../${EAT_LIBDIR}/ld-linux#g" ${D}${libdir}/libc.so
205 sed -i -e "s# /${EAT_LIBDIR}/libc.so.6# /lib/libc.so.6#g" ${D}${libdir}/libc.so
206 sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libc.so
207 fi
208
209 if [ -f ${D}${base_libdir}/libc.so ];then
210 sed -i -e "s# /${EAT_LIBDIR}/${EAT_TARGET_SYS}# ../../lib#g" -e "s# /usr/${EAT_LIBDIR}/${EAT_TARGET_SYS}# .#g" -e "s# /${EAT_LIBDIR}/# /lib/#g" ${D}${base_libdir}/libc.so
211 if [ -f ${D}${base_libdir}/libc.so.6 ]; then
212 sed -i -e "s# /usr/${EAT_LIBDIR}/libc.so.6# /lib/libc.so.6#g" -e "s# /${EAT_LIBDIR}/libc.so.6# /lib/libc.so.6#g" ${D}${base_libdir}/libc.so.6
213 fi
214 fi
215
216 # Remove if empty
217 rmdir ${D}${bindir} || true
218 rmdir ${D}${sbindir} || true
219 rmdir ${D}${base_sbindir} || true
220 rmdir ${D}${libexecdir} || true
221
222 # Remove unused /usr/share/info/dir
223 rm -f ${D}${infodir}/dir
224}
225
226# External toolchain doesn't provide multilib support so make corresponding
227# install API as an empty API to avoid an unnecessary errors.
228oe_multilib_header () {
229 return
230}
231
232PACKAGES_DYNAMIC = "^locale-base-.* \
233 ^glibc-gconv-.* ^glibc-charmap-.* ^glibc-localedata-.* ^glibc-binary-localedata-.* \
234 ^${MLPREFIX}glibc-gconv$"
235
236# PACKAGES is split up according to the 'source' recipes/includes in OE-core
237# Stylistic differences are kept to make copy/pasting easier.
238
239# From gcc-runtime.inc
240
241PACKAGES += "\
242 gcc-runtime-dbg \
243 libstdc++ \
244 libstdc++-precompile-dev \
245 libstdc++-dev \
246 libstdc++-staticdev \
247 libg2c \
248 libg2c-dev \
249 libssp \
250 libssp-dev \
251 libssp-staticdev \
252 libmudflap \
253 libmudflap-dev \
254 libmudflap-staticdev \
255 libquadmath \
256 libquadmath-dev \
257 libquadmath-staticdev \
258 libgomp \
259 libgomp-dev \
260 libgomp-staticdev \
261 libatomic \
262 libatomic-dev \
263 libatomic-staticdev \
264 libitm \
265 libitm-dev \
266 libitm-staticdev \
267"
268
269# From gcc-sanitizers.inc
270
271PACKAGES += "gcc-sanitizers gcc-sanitizers-dbg"
272PACKAGES += "libasan libubsan liblsan libtsan"
273PACKAGES += "libasan-dev libubsan-dev liblsan-dev libtsan-dev"
274PACKAGES += "libasan-staticdev libubsan-staticdev liblsan-staticdev libtsan-staticdev"
275
276# From libgfortran.inc:
277
278PACKAGES += "\
279 libgfortran-dbg \
280 libgfortran \
281 libgfortran-dev \
282 libgfortran-staticdev \
283"
284
285# libgcc.inc uses ${PN}, so replace that
286
287PACKAGES += "\
288 libgcc \
289 libgcc-dev \
290 libgcc-dbg \
291"
292
293# ... and the leftovers
294
295PACKAGES =+ "\
296 ${PN}-mtrace \
297 libgcov-staticdev \
298 linux-libc-headers \
299 linux-libc-headers-dev \
300"
301
302# Re-order PACKAGES list in order to shift ${PN}-dev towards the end as
303# it is meant to pick up remaining dev libraries and headers that aren't
304# picked up by other packages. And since some static libraries needs to
305# be packaged in ${PN}-dev, so we need to keep ${PN}-staticdev later in
306# order.
307
308PACKAGES := "${@oe.utils.str_filter_out('${PN}-dev', '${PACKAGES}', d)}"
309PACKAGES := "${@oe.utils.str_filter_out('${PN}-staticdev', '${PACKAGES}', d)}"
310PACKAGES += "\
311 ${PN}-dev \
312 ${PN}-staticdev \
313"
314
315INSANE_SKIP:${PN}-dbg = "staticdev"
316INSANE_SKIP:${PN}-utils += "ldflags"
317INSANE_SKIP:libstdc++ += "ldflags"
318INSANE_SKIP:libgfortran += "ldflags"
319INSANE_SKIP:libgcc += "ldflags dev-deps"
320INSANE_SKIP:libgcc-dev += "staticdev"
321INSANE_SKIP:libgfortran += "ldflags dev-deps"
322INSANE_SKIP:libstdc++ += "ldflags dev-deps"
323INSANE_SKIP:libatomic += "ldflags"
324INSANE_SKIP:libasan += "ldflags"
325INSANE_SKIP:libubsan += "ldflags"
326INSANE_SKIP:libssp += "ldflags"
327INSANE_SKIP:libgomp += "ldflags"
328INSANE_SKIP:libitm += "ldflags"
329INSANE_SKIP:gdbserver += "ldflags"
330
331# OE-core has literally listed 'glibc' in LIBC_DEPENDENCIES :/
332RPROVIDES:${PN} = "glibc rtld(GNU_HASH)"
333# Add runtime provides for the other libc* packages as well
334RPROVIDES:${PN}-dev = "glibc-dev"
335RPROVIDES:${PN}-doc = "glibc-doc"
336RPROVIDES:${PN}-dbg = "glibc-dbg"
337RPROVIDES:${PN}-pic = "glibc-pic"
338RPROVIDES:${PN}-utils = "glibc-utils"
339RPROVIDES:${PN}-mtrace = "glibc-mtrace libc-mtrace"
340
341PKG:${PN} = "glibc"
342PKG:${PN}-dev = "glibc-dev"
343PKG:${PN}-doc = "glibc-doc"
344PKG:${PN}-dbg = "glibc-dbg"
345PKG:${PN}-pic = "glibc-pic"
346PKG:${PN}-utils = "glibc-utils"
347PKG:${PN}-mtrace = "glibc-mtrace"
348PKG:${PN}-gconv = "glibc-gconv"
349PKG:${PN}-extra-nss = "glibc-extra-nss"
350PKG:${PN}-thread-db = "glibc-thread-db"
351PKG:${PN}-pcprofile = "glibc-pcprofile"
352PKG:${PN}-staticdev = "glibc-staticdev"
353
354PKGV = "${EAT_VER_LIBC}"
355PKGV:${PN} = "${EAT_VER_LIBC}"
356PKGV:${PN}-dev = "${EAT_VER_LIBC}"
357PKGV:${PN}-doc = "${EAT_VER_LIBC}"
358PKGV:${PN}-dbg = "${EAT_VER_LIBC}"
359PKGV:${PN}-pic = "${EAT_VER_LIBC}"
360PKGV:${PN}-utils = "${EAT_VER_LIBC}"
361PKGV:${PN}-mtrace = "${EAT_VER_LIBC}"
362PKGV:${PN}-gconv = "${EAT_VER_LIBC}"
363PKGV:${PN}-extra-nss = "${EAT_VER_LIBC}"
364PKGV:${PN}-thread-db = "${EAT_VER_LIBC}"
365PKGV:${PN}-pcprofile = "${EAT_VER_LIBC}"
366PKGV:${PN}-staticdev = "${EAT_VER_LIBC}"
367PKGV:catchsegv = "${EAT_VER_LIBC}"
368PKGV:glibc-extra-nss = "${EAT_VER_LIBC}"
369PKGV:glibc-thread-db = "${EAT_VER_LIBC}"
370
371PKGV:libmemusage = "${EAT_VER_LIBC}"
372PKGV:libsegfault = "${EAT_VER_LIBC}"
373PKGV:libsotruss = "${EAT_VER_LIBC}"
374PKGV:sln = "${EAT_VER_LIBC}"
375PKGV:nscd = "${EAT_VER_LIBC}"
376PKGV:ldd = "${EAT_VER_LIBC}"
377
378PKGV:libasan-dev = "${EAT_VER_GCC}"
379PKGV:libasan = "${EAT_VER_GCC}"
380PKGV:libasan-staticdev = "${EAT_VER_GCC}"
381PKGV:libatomic-dev = "${EAT_VER_GCC}"
382PKGV:libatomic = "${EAT_VER_GCC}"
383PKGV:libatomic-staticdev = "${EAT_VER_GCC}"
384PKGV:libg2c-dev = "${EAT_VER_GCC}"
385PKGV:libg2c = "${EAT_VER_GCC}"
386PKGV:libgcc-dev = "${EAT_VER_GCC}"
387PKGV:libgcc = "${EAT_VER_GCC}"
388PKGV:libgfortran-dbg = "${EAT_VER_GCC}"
389PKGV:libgfortran-dev = "${EAT_VER_GCC}"
390PKGV:libgfortran = "${EAT_VER_GCC}"
391PKGV:libgfortran-staticdev = "${EAT_VER_GCC}"
392PKGV:libgomp-dev = "${EAT_VER_GCC}"
393PKGV:libgomp = "${EAT_VER_GCC}"
394PKGV:libgomp-staticdev = "${EAT_VER_GCC}"
395PKGV:libitm-dev = "${EAT_VER_GCC}"
396PKGV:libitm = "${EAT_VER_GCC}"
397PKGV:libitm-staticdev = "${EAT_VER_GCC}"
398PKGV:liblsan-dev = "${EAT_VER_GCC}"
399PKGV:liblsan = "${EAT_VER_GCC}"
400PKGV:liblsan-staticdev = "${EAT_VER_GCC}"
401PKGV:libmudflap-dev = "${EAT_VER_GCC}"
402PKGV:libmudflap = "${EAT_VER_GCC}"
403PKGV:libmudflap-staticdev = "${EAT_VER_GCC}"
404PKGV:libquadmath-dev = "${EAT_VER_GCC}"
405PKGV:libquadmath = "${EAT_VER_GCC}"
406PKGV:libquadmath-staticdev = "${EAT_VER_GCC}"
407PKGV:libssp-dev = "${EAT_VER_GCC}"
408PKGV:libssp = "${EAT_VER_GCC}"
409PKGV:libssp-staticdev = "${EAT_VER_GCC}"
410PKGV:libstdc++-dbg = "${EAT_VER_GCC}"
411PKGV:libstdc++-dev = "${EAT_VER_GCC}"
412PKGV:libstdc++ = "${EAT_VER_GCC}"
413PKGV:libstdc++-precompile-dev = "${EAT_VER_GCC}"
414PKGV:libstdc++-staticdev = "${EAT_VER_GCC}"
415PKGV:libtsan-dev = "${EAT_VER_GCC}"
416PKGV:libtsan = "${EAT_VER_GCC}"
417PKGV:libtsan-staticdev = "${EAT_VER_GCC}"
418PKGV:libubsan-dev = "${EAT_VER_GCC}"
419PKGV:libubsan = "${EAT_VER_GCC}"
420PKGV:libubsan-staticdev = "${EAT_VER_GCC}"
421
422PKGV:linux-libc-headers-dev = "${EAT_VER_KERNEL}"
423PKGV:linux-libc-headers = "${EAT_VER_KERNEL}"
424
425PKGV:gdbserver = "${EAT_VER_GDBSERVER}"
426
427ALLOW_EMPTY:${PN}-mtrace = "1"
428FILES:${PN}-mtrace = "${bindir}/mtrace"
429
430FILES:libgcov-staticdev = "${libdir}/gcc/${TARGET_SYS}/${BINV}/libgcov.a"
431
432FILES:libsegfault = "${base_libdir}/libSegFault*"
433
434FILES:catchsegv = "${bindir}/catchsegv"
435RDEPENDS:catchsegv = "libsegfault"
436
437# From libgfortran.inc:
438
439FILES:libgfortran = "${libdir}/libgfortran.so.*"
440FILES:libgfortran-dev = "\
441 ${libdir}/libgfortran*.so \
442 ${libdir}/libgfortran.spec \
443 ${libdir}/libgfortran.la \
444 ${libdir}/gcc/${TARGET_SYS}/${BINV}/libgfortranbegin.* \
445 ${libdir}/gcc/${TARGET_SYS}/${BINV}/libcaf_single* \
446 ${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude/ \
447"
448FILES:libgfortran-staticdev = "${libdir}/libgfortran.a"
449
450
451# From gcc-sanitizers.inc:
452
453FILES:libasan += "${libdir}/libasan.so.* ${libdir}/libhwasan.so.*"
454FILES:libasan-dev += "\
455 ${libdir}/libasan_preinit.o \
456 ${libdir}/libasan.so \
457 ${libdir}/libhwasan.so \
458 ${libdir}/libasan.la \
459"
460FILES:libasan-staticdev += "${libdir}/libasan.a \
461 ${libdir}/libhwasan.a \
462"
463
464FILES:libubsan += "${libdir}/libubsan.so.*"
465FILES:libubsan-dev += "\
466 ${libdir}/libubsan.so \
467 ${libdir}/libubsan.la \
468"
469FILES:libubsan-staticdev += "${libdir}/libubsan.a"
470
471FILES:liblsan += "${libdir}/liblsan.so.*"
472FILES:liblsan-dev += "\
473 ${libdir}/liblsan.so \
474 ${libdir}/liblsan.la \
475 ${libdir}/liblsan_preinit.o \
476"
477FILES:liblsan-staticdev += "${libdir}/liblsan.a"
478
479FILES:libtsan += "${libdir}/libtsan.so.*"
480FILES:libtsan-dev += "\
481 ${libdir}/libtsan.so \
482 ${libdir}/libtsan.la \
483 ${libdir}/libtsan_*.o \
484"
485FILES:libtsan-staticdev += "${libdir}/libtsan.a"
486
487FILES:gcc-sanitizers = "${libdir}/*.spec ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/sanitizer/*.h"
488
489# From libgcc.inc:
490
491FILES:libgcc = "${base_libdir}/libgcc_s.so.1"
492
493FILES:libgcc-dev = "\
494 ${base_libdir}/libgcc*.so \
495 ${@oe.utils.conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}', d)} \
496 ${libdir}/${TARGET_SYS}/${BINV}* \
497 ${libdir}/${TARGET_ARCH}${TARGET_VENDOR}* \
498 ${libdir}/gcc/${TARGET_SYS}/${BINV}/include \
499"
500
501FILES:linux-libc-headers = ""
502FILES:linux-libc-headers-dev = "\
503 ${includedir}/asm* \
504 ${includedir}/linux \
505 ${includedir}/mtd \
506 ${includedir}/rdma \
507 ${includedir}/scsi \
508 ${includedir}/sound \
509 ${includedir}/video \
510"
511FILES:${PN} += "\
512 ${libdir}/bin \
513 ${libdir}/locale \
514 ${libdir}/gconv/gconv-modules \
515 ${datadir}/zoneinfo \
516 ${base_libdir}/libcrypt*.so.* \
517 ${base_libdir}/libcrypt-*.so \
518 ${base_libdir}/libc.so.* \
519 ${base_libdir}/libc-*.so \
520 ${base_libdir}/libm.so.* \
521 ${base_libdir}/libmemusage.so \
522 ${base_libdir}/libm-*.so \
523 ${base_libdir}/ld*.so.* \
524 ${base_libdir}/ld-*.so \
525 ${base_libdir}/libpthread*.so.* \
526 ${base_libdir}/libpthread*.so \
527 ${base_libdir}/libpthread-*.so \
528 ${base_libdir}/libresolv*.so.* \
529 ${base_libdir}/libresolv-*.so \
530 ${base_libdir}/librt*.so.* \
531 ${base_libdir}/librt-*.so \
532 ${base_libdir}/libutil*.so.* \
533 ${base_libdir}/libutil-*.so \
534 ${base_libdir}/libnss_files*.so.* \
535 ${base_libdir}/libnss_files-*.so \
536 ${base_libdir}/libnss_compat*.so.* \
537 ${base_libdir}/libnss_compat-*.so \
538 ${base_libdir}/libnss_dns*.so.* \
539 ${base_libdir}/libnss_dns-*.so \
540 ${base_libdir}/libnss_nis*.so.* \
541 ${base_libdir}/libnss_nisplus-*.so \
542 ${base_libdir}/libnss_nisplus*.so.* \
543 ${base_libdir}/libnss_nis-*.so \
544 ${base_libdir}/libnss_hesiod*.so.* \
545 ${base_libdir}/libnss_hesiod-*.so \
546 ${base_libdir}/libdl*.so.* \
547 ${base_libdir}/libdl-*.so \
548 ${base_libdir}/libanl*.so.* \
549 ${base_libdir}/libanl-*.so \
550 ${base_libdir}/libBrokenLocale*.so.* \
551 ${base_libdir}/libBrokenLocale-*.so \
552 ${base_libdir}/libthread_db*.so.* \
553 ${base_libdir}/libthread_db-*.so \
554 ${base_libdir}/libmemusage.so \
555 ${base_libdir}/libSegFault.so \
556 ${base_libdir}/libpcprofile.so \
557 "
558
559FILES:${PN}-dbg += "${base_libdir}/debug"
560
561# From gcc-runtime.inc
562
563# include python debugging scripts
564FILES:gcc-runtime-dbg += "\
565 ${libdir}/libstdc++.so.*-gdb.py \
566 ${datadir}/gcc-${BINV}/python/libstdcxx \
567"
568
569FILES:libg2c = "${target_libdir}/libg2c.so.*"
570SUMMARY:libg2c = "Companion runtime library for g77"
571FILES:libg2c-dev = "\
572 ${libdir}/libg2c.so \
573 ${libdir}/libg2c.a \
574 ${libdir}/libfrtbegin.a \
575"
576SUMMARY:libg2c-dev = "Companion runtime library for g77 - development files"
577
578FILES:libstdc++ = "${libdir}/libstdc++.so.*"
579SUMMARY:libstdc++ = "GNU standard C++ library"
580FILES:libstdc++-dev = "\
581 /include/c++ \
582 ${includedir}/c++/ \
583 ${libdir}/libstdc++.so \
584 ${libdir}/libstdc++*.la \
585 ${libdir}/libsupc++.la \
586"
587SUMMARY:libstdc++-dev = "GNU standard C++ library - development files"
588
589FILES:libstdc++-staticdev = "\
590 ${libdir}/libstdc++*.a \
591 ${libdir}/libsupc++.a \
592"
593SUMMARY:libstdc++-staticdev = "GNU standard C++ library - static development files"
594
595FILES:libstdc++-precompile-dev = "${includedir}/c++/${TARGET_SYS}/bits/*.gch"
596SUMMARY:libstdc++-precompile-dev = "GNU standard C++ library - precompiled header files"
597
598FILES:libssp = "${libdir}/libssp.so.*"
599SUMMARY:libssp = "GNU stack smashing protection library"
600FILES:libssp-dev = "\
601 ${libdir}/libssp*.so \
602 ${libdir}/libssp*_nonshared.a \
603 ${libdir}/libssp*.la \
604 ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ssp \
605"
606SUMMARY:libssp-dev = "GNU stack smashing protection library - development files"
607FILES:libssp-staticdev = "${libdir}/libssp*.a"
608SUMMARY:libssp-staticdev = "GNU stack smashing protection library - static development files"
609
610FILES:libquadmath = "${libdir}/libquadmath*.so.*"
611SUMMARY:libquadmath = "GNU quad-precision math library"
612FILES:libquadmath-dev = "\
613 ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/quadmath* \
614 ${libdir}/libquadmath*.so \
615 ${libdir}/libquadmath.la \
616"
617SUMMARY:libquadmath-dev = "GNU quad-precision math library - development files"
618FILES:libquadmath-staticdev = "${libdir}/libquadmath.a"
619SUMMARY:libquadmath-staticdev = "GNU quad-precision math library - static development files"
620
621# NOTE: mudflap has been removed as of gcc 4.9 and has been superseded by the address sanitiser
622FILES:libmudflap = "${libdir}/libmudflap*.so.*"
623SUMMARY:libmudflap = "Pointer debugging library for gcc"
624FILES:libmudflap-dev = "\
625 ${libdir}/libmudflap*.so \
626 ${libdir}/libmudflap.la \
627"
628SUMMARY:libmudflap-dev = "Pointer debugging library for gcc - development files"
629FILES:libmudflap-staticdev = "${libdir}/libmudflap.a"
630SUMMARY:libmudflap-staticdev = "Pointer debugging library for gcc - static development files"
631
632FILES:libgomp = "${libdir}/libgomp*${SOLIBS}"
633SUMMARY:libgomp = "GNU OpenMP parallel programming library"
634FILES:libgomp-dev = "\
635 ${libdir}/libgomp*${SOLIBSDEV} \
636 ${libdir}/libgomp*.la \
637 ${libdir}/libgomp.spec \
638 ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/omp.h \
639 ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \
640"
641SUMMARY:libgomp-dev = "GNU OpenMP parallel programming library - development files"
642FILES:libgomp-staticdev = "${libdir}/libgomp*.a"
643SUMMARY:libgomp-staticdev = "GNU OpenMP parallel programming library - static development files"
644
645FILES:libatomic = "${libdir}/libatomic.so.*"
646SUMMARY:libatomic = "GNU C++11 atomics support library"
647FILES:libatomic-dev = "\
648 ${libdir}/libatomic.so \
649 ${libdir}/libatomic.la \
650"
651SUMMARY:libatomic-dev = "GNU C++11 atomics support library - development files"
652FILES:libatomic-staticdev = "${libdir}/libatomic.a"
653SUMMARY:libatomic-staticdev = "GNU C++11 atomics support library - static development files"
654
655FILES:libitm = "${libdir}/libitm.so.*"
656SUMMARY:libitm = "GNU transactional memory support library"
657FILES:libitm-dev = "\
658 ${libdir}/libitm.so \
659 ${libdir}/libitm.la \
660 ${libdir}/libitm.spec \
661"
662SUMMARY:libitm-dev = "GNU transactional memory support library - development files"
663FILES:libitm-staticdev = "${libdir}/libitm.a"
664SUMMARY:libitm-staticdev = "GNU transactional memory support library - static development files"
665
666EAT_VER_MAIN ??= ""
667
668python () {
669 if not d.getVar("EAT_VER_MAIN", False):
670 raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).")
671 if d.getVar('TCLIBC', True) != "glibc":
672 raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True))
673}