summaryrefslogtreecommitdiffstats
path: root/main/eglibc/APKBUILD
blob: 7079766f8e3ac03392bd0a62327d78b8b586af56 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# Contributor: Carlo Landmeter
# Maintainer:
pkgname=eglibc
pkgver=2.12
pkgrel=3
pkgdesc="Embedded GLIBC is a variant of the GNU C Library that is designed to work well on embedded systems"
url="http://www.eglibc.org"
license="GPL"
depends=""
depends_dev="linux-headers=>2.6.32"
makedepends="gawk"
options="!strip"
subpackages="$pkgname-dev $pkgname-gconv $pkgname-locales $pkgname-nscd"
source="http://alpine.nethq.org/clandmeter/src/eglibc-2.12-svn-11364.tar.bz2
	glibc-2.10-bz4781.patch
	glibc-__i686.patch
	nscd.initd
"

_builddir="$srcdir"/libc

prepare() {
	cd "$_builddir"

	# http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
	patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch

	# http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
	# http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
	patch -Np1 -i ${srcdir}/glibc-__i686.patch

	# Don not build timezones
	sed -i 's/timezone rt/rt/' Makeconfig

	echo "slibdir=/lib" >> configparms
	
	# we need to build in a seperate dir
	mkdir eglibc-build
}

build() {
	cd "$_builddir"/eglibc-build

	export CFLAGS="$CFLAGS -fno-stack-protector"

	../configure --prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--mandir=/usr/share/info \
		--infodir=/usr/share/info \
		--libdir=/usr/lib \
		--libexecdir=/usr/lib \
		--with-headers=/usr/include \
		--enable-kernel=2.6.32 \
		--enable-add-ons=nptl,libidn \
		--disable-profile \
		--enable-bind-now \
		--with-tls \
		--with-__thread \
		--without-cvs \
		--without-gd


	make || return 1

}

package() {
	cd "$_builddir"/eglibc-build
	
	install -dm755 "$pkgdir"/etc && touch "$pkgdir"/etc/ld.so.conf
	
	make -j1 install_root="$pkgdir" install
	
	# provided by kernel-headers
  	rm "$pkgdir"/usr/include/scsi/scsi.h
	
	rm "$pkgdir"/etc/ld.so.conf

	# strip all
	for i in ldconfig sln gencat getconf getent iconv locale localedef \
		pcprofiledump rpcgen sprof lddlibc4 iconvconfig nscd rpcinfo; do
			find "$pkgdir" -type f -name "$i" -exec strip --strip-all '{}' \;
	done
	strip --strip-all "$pkgdir"/usr/lib/gconv/*.so
	
	# strip debug
	for i in ld-2.12.1.so libpthread-2.12.1.so libthread_db-1.0.so; do
		strip --strip-debug "$pkgdir"/lib/"$i"
	done
	strip --strip-debug "$pkgdir"/usr/lib/*.a
	
	# strip uneeded
	for i in libanl-2.12.1.so libBrokenLocale-2.12.1.so libc-2.12.1.so \
		libcidn-2.12.1.so libcrypt-2.12.1.so libnss_*-2.12.1.so \
		libdl-2.12.so libm-2.12.so libnsl-2.12.so libresolv-2.12.so \
		librt-2.12.so libutil-2.12.so libmemusage.so libpcprofile.so \
		libSegFault.so pt_chown; do
			find "$pkgdir" -type f -name "$i" -exec strip --strip-unneeded '{}' \;
	done
	strip --strip-unneeded "$pkgdir"/usr/lib/gconv/*.so
	
}	

gconv() {
	pkgdesc="gconv character modules"
	mkdir -p "$subpkgdir"/usr/lib/
	mv "$pkgdir"/usr/lib/gconv "$subpkgdir"/usr/lib/
}

locales() {
	pkgdesc="Common files for locale support"
	mkdir -p "$subpkgdir"/usr/share
	mv "$pkgdir"/usr/share/* "$subpkgdir"/usr/share/
}

nscd() {
	pkgdesc="eglibc name service cache daemon"
        mkdir -p "$subpkgdir"/var/db/nscd "$subpkgdir"/var/run/nscd
	install -Dm 755 "$srcdir"/nscd.initd "$subpkgdir"/etc/init.d/nscd
	install -Dm 644 "$srcdir"/libc/nscd/nscd.conf "$subpkgdir"/etc/nscd.conf
	mkdir -p "$subpkgdir"/usr/sbin
	mv "$pkgdir"/usr/sbin/nscd "$subpkgdir"/usr/sbin/
}

md5sums="4deed2a0761d90a8e33643874fb54b41  eglibc-2.12-svn-11364.tar.bz2
0c5540efc51c0b93996c51b57a8540ae  glibc-2.10-bz4781.patch
40cd342e21f71f5e49e32622b25acc52  glibc-__i686.patch
137fe99a6bc1786da759fb99bfeddb1f  nscd.initd"