blob: 02aaa02cc8fb83db754b9181cfcd4cf3bc346718 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
DESCRIPTION = "The diet libc is a libc that is optimized for small size. \
It can be used to create small statically linked binaries"
SECTION = "libs"
LICENSE = "GPLv2"
INC_PR = "r1"
PR = "${INC_PR}.0"
EXTRA_OEMAKE = "\
STRIP=: \
prefix=${pkglibdir} \
HOME=\"`pwd`\" \
MYARCH:='${DIETLIBC_BUILD_ARCH}' \
"
PACKAGES += "${PN}-headers"
RDEPENDS_${PN}-dev += "${PN}-headers (= ${EXTENDPV})"
FILES_${PN} = "${bindir}/*"
FILES_${PN}-headers = "${pkglibdir}/include"
FILES_${PN}-dev = "${pkgarchdir}/*"
FILES_${PN}-dbg += "${pkgarchdir}/.debug"
export DIETLIBC_BUILD_ARCH="${@re.sub('i[0-9]86','i386','${BUILD_ARCH}')}"
export DIETLIBC_TARGET_ARCH="${@re.sub('i[0-9]86','i386','${TARGET_ARCH}')}"
export QEMU = "${@qemu_target_binary(d)}"
pkglibdir = "${libdir}/dietlibc"
pkgarchdir = "${pkglibdir}/lib-${DIETLIBC_TARGET_ARCH}"
do_configure () {
dietlibc_fix_features "${DIETLIBC_BUILD_ARCH}" dietfeatures-build.h
dietlibc_fix_features "${DIETLIBC_TARGET_ARCH}" dietfeatures-target.h
rm -f dietfeatures.h
# Initialize infrastructure for our tests
for i in `find test -name 'runtests.sh'`; do
ln -s ${WORKDIR}/runtests-X.sh `dirname $i`/runtests-X.sh
done
}
dietlibc_fix_features () {
arch=$1
dst=$2
# LARGEFILE_BACKCOMPAT is some linux 2.2 thing
set -- -e '/#define \(WANT_LARGEFILE_BACKCOMPAT\|WANT_VALGRIND_SUPPORT\)/d'
case $arch in
(x86_64|ppc|ppc64)
;;
(*)
set -- \
-e '/#define WANT_DYN_PAGESIZE/{c\' \
-e '#define WANT_ELFINFO' \
-e '}'
esac
sed "$@" dietfeatures.h > "$dst"
}
dietlibc_install_dev () {
install -d -m 0755 ${D}${pkgarchdir}
install -d -m 0755 ${D}${pkglibdir}/include
for i in `find include -name \*.h`; do
install -D -p -m 0644 $i ${D}${pkglibdir}/$i
done
cd bin-${DIETLIBC_TARGET_ARCH}
install -p -m 0644 \
start.o libm.a libpthread.a librpc.a liblatin1.a libcompat.a libcrypt.a \
pstart.o libgmon.a \
${D}${pkgarchdir}/
# extra step because 'dietlibc.a' must be renamed to 'libc.a'
install -D -p -m 0644 dietlibc.a ${D}${pkgarchdir}/libc.a
cd -
}
|