]>
Commit | Line | Data |
---|---|---|
ed0486b4 PS |
1 | # |
2 | # Conditional build: | |
3 | %bcond_with ssp # disable stack-smashing protector 'coz dietlibc will not work with it! | |
cf89de40 ER |
4 | %bcond_without dynamic # dynamic lib support |
5 | ||
6 | %ifnarch %{ix86} %{x8664} arm | |
7 | %undefine with_dynamic | |
8 | %endif | |
9 | ||
c3a70eef | 10 | Summary: C library optimized for size |
96cac672 ER |
11 | Summary(pl.UTF-8): Biblioteka standardowa C zoptymalizowana na rozmiar |
12 | Summary(pt_BR.UTF-8): libc pequena otimizada para tamanho | |
09de3116 | 13 | Name: dietlibc |
93b62614 | 14 | Version: 0.32 |
d64cd1a2 | 15 | Release: 17 |
e72c8dd4 | 16 | Epoch: 2 |
aae0fca7 | 17 | License: GPL v2 |
09de3116 | 18 | Group: Development/Libraries |
18646183 | 19 | Source0: http://www.kernel.org/pub/linux/libs/dietlibc/%{name}-%{version}.tar.bz2 |
93b62614 | 20 | # Source0-md5: 0098761c17924c15e21d25acdda4a8b5 |
711665cb | 21 | Patch0: %{name}-ppc.patch |
b633677b | 22 | Patch1: %{name}-opt.patch |
1337a3d8 | 23 | Patch2: %{name}-platform.patch |
73062649 | 24 | # workaround for http://gcc.gnu.org/PR26374 |
1337a3d8 | 25 | Patch3: %{name}-gcc4.patch |
d227bc8d | 26 | Patch4: %{name}-guard.patch |
6cfbdaaf | 27 | Patch5: %{name}-arm.patch |
88cc7f71 | 28 | Patch6: %{name}-diet-m.patch |
2304c81d AM |
29 | Patch7: %{name}-nice.patch |
30 | Patch8: %{name}-nostrip.patch | |
31 | Patch9: %{name}-stackgap-instead-of-ssp.patch | |
32 | Patch10: %{name}-fflush-null.patch | |
33 | Patch11: %{name}-_syscall-no-arch.patch | |
9e755ceb | 34 | |
f7808423 | 35 | Patch13: %{name}-strcoll.patch |
9dab7c7b | 36 | Patch14: umount-arch.patch |
9e542dd9 JR |
37 | Patch15: %{name}-memalign.patch |
38 | Patch16: %{name}-getsubopt.patch | |
5afb4ebd | 39 | Patch17: %{name}-devmacros.patch |
322a3161 | 40 | Patch18: %{name}-bloat.patch |
e2aad565 | 41 | Patch19: %{name}-notify.patch |
73fa023b | 42 | Patch20: %{name}-loop.patch |
8a2530cf AM |
43 | # http://svn.exactcode.de/t2/trunk/package/base/dietlibc/fdopendir.patch, needed by util-linux |
44 | Patch21: fdopendir.patch | |
6f047f9b | 45 | Patch22: faccessat.patch |
ef49f35c | 46 | URL: http://www.fefe.de/dietlibc/ |
9b1be9d0 ER |
47 | BuildRequires: rpmbuild(macros) >= 1.566 |
48 | BuildRequires: sed >= 4.0 | |
88cc7f71 JB |
49 | %ifarch sparc sparcv9 |
50 | BuildRequires: sparc32 | |
51 | %endif | |
09de3116 | 52 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
c3a70eef | 53 | |
5c48d132 | 54 | %define dietprefix %{_prefix}/lib/dietlibc |
b633677b | 55 | # for some reason known only to rpm there must be "\\|" not "\|" here |
f2923a80 | 56 | %define libarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/;s/sparcv.*/sparc/') |
b633677b | 57 | |
c3a70eef | 58 | %description |
e0cb75d3 JB |
59 | The diet libc is a libc that is optimized for small size. It can be |
60 | used to create small statically linked binaries for Linux on alpha, | |
61 | arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64. | |
c3a70eef | 62 | |
f92ec944 | 63 | %description -l pl.UTF-8 |
e0cb75d3 JB |
64 | diet libc to biblioteka libc zoptymalizowana pod kątem rozmiaru. |
65 | Może być używana do tworzenia małych, statycznie zlinkowanych | |
66 | binariów dla Linuksa na architekturach alpha, arm, hppa, ia64, i386, | |
67 | mips, s390, sparc, sparc64, ppc i x86_64. | |
dd5e72ff | 68 | |
f92ec944 JR |
69 | %description -l pt_BR.UTF-8 |
70 | A diet libc e' uma libc otimizada para criar pequenos binários | |
b633677b | 71 | estaticamente linkados para Linux. |
aae0fca7 | 72 | |
cf89de40 | 73 | %package libs |
e0cb75d3 JB |
74 | Summary: Shared dietlibc libraries |
75 | Summary(pl.UTF-8): Biblioteki współdzielone dietlibc | |
cf89de40 ER |
76 | Group: Libraries |
77 | ||
78 | %description libs | |
e0cb75d3 | 79 | This package contains the shared dietlibc libraries. |
cf89de40 | 80 | |
e0cb75d3 JB |
81 | %description libs -l pl.UTF-8 |
82 | Ten pakiet zawiera biblioteki współdzielone dietlibc. | |
cf89de40 | 83 | |
c3a70eef | 84 | %package devel |
09de3116 | 85 | Summary: Development files for dietlibc |
96cac672 ER |
86 | Summary(pl.UTF-8): Pliki dla programistów używających dietlibc |
87 | Summary(pt_BR.UTF-8): libc pequena otimizada para tamanho | |
09de3116 | 88 | Group: Development/Libraries |
46f54929 | 89 | Requires: %{name} = %{epoch}:%{version}-%{release} |
c3a70eef | 90 | |
91 | %description devel | |
dd5e72ff JB |
92 | Small libc for building embedded applications - development files. |
93 | ||
f92ec944 | 94 | %description devel -l pl.UTF-8 |
dd5e72ff | 95 | Niewielka libc do budowania aplikacji wbudowanych - pliki dla |
f92ec944 | 96 | programistów. |
c3a70eef | 97 | |
e72c8dd4 MM |
98 | %package static |
99 | Summary: Static libraries for dietlibc | |
96cac672 | 100 | Summary(pl.UTF-8): Biblioteki statyczne dla dietlibc |
e72c8dd4 | 101 | Group: Development/Libraries |
46f54929 | 102 | Requires: %{name}-devel = %{epoch}:%{version}-%{release} |
e72c8dd4 MM |
103 | |
104 | %description static | |
105 | Small libc for building embedded applications - static libraries. | |
106 | ||
f92ec944 | 107 | %description static -l pl.UTF-8 |
e72c8dd4 MM |
108 | Niewielka libc do budowania aplikacji wbudowanych - biblioteki |
109 | statyczne. | |
110 | ||
c3a70eef | 111 | %prep |
2bb9d10d | 112 | %setup -q |
9b1be9d0 | 113 | %undos arm/md5asm.S |
b633677b JB |
114 | %patch0 -p1 |
115 | %patch1 -p1 | |
b0443187 | 116 | %patch2 -p1 |
38ed02e8 | 117 | %patch3 -p1 |
d227bc8d | 118 | %patch4 -p1 |
6cfbdaaf | 119 | %patch5 -p1 |
88cc7f71 | 120 | %patch6 -p1 |
2304c81d AM |
121 | %patch7 -p1 |
122 | %patch8 -p1 | |
123 | %{!?with_ssp:%patch9 -p1} | |
124 | %patch10 -p1 | |
125 | %patch11 -p1 | |
9e755ceb | 126 | |
f7808423 | 127 | %patch13 -p1 |
9dab7c7b | 128 | %patch14 -p1 |
9e542dd9 JR |
129 | %patch15 -p1 |
130 | %patch16 -p1 | |
5afb4ebd | 131 | %patch17 -p1 |
322a3161 | 132 | %patch18 -p0 |
e2aad565 | 133 | %patch19 -p1 |
73fa023b | 134 | %patch20 -p1 |
8a2530cf | 135 | %patch21 -p1 |
6f047f9b | 136 | %patch22 -p1 |
1f8a1668 | 137 | |
9b1be9d0 ER |
138 | %if "%{cc_version}" < "3.4" |
139 | %{__sed} -i -e '/CFLAGS/ s/-Wextra//' Makefile | |
140 | %endif | |
141 | ||
c3a70eef | 142 | %build |
9e755ceb | 143 | export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing -Wa,--noexecstack" |
54aa6e1d | 144 | CC="%{__cc}" |
2bb9d10d | 145 | %ifarch sparc sparcv9 |
c7d60d50 | 146 | sparc32 \ |
147 | %endif | |
4f4bb2ab | 148 | %{__make} -j1 all \ |
1f3436a8 | 149 | prefix=%{dietprefix} \ |
9b1be9d0 | 150 | CC="${CC#*ccache }" |
54aa6e1d | 151 | |
cf89de40 ER |
152 | %if %{with dynamic} |
153 | # 'dyn' target is not SMP safe | |
4f4bb2ab | 154 | %{__make} -j1 dyn \ |
c305ceb2 ER |
155 | prefix=%{dietprefix} \ |
156 | CC="${CC}" | |
8d4158b9 | 157 | %endif |
c3a70eef | 158 | |
159 | %install | |
09de3116 | 160 | rm -rf $RPM_BUILD_ROOT |
e72c8dd4 MM |
161 | install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1} |
162 | ||
23c8844b | 163 | %ifarch sparc sparcv9 |
164 | sparc32 \ | |
165 | %endif | |
b9fb397c PG |
166 | %{__make} install \ |
167 | DESTDIR=$RPM_BUILD_ROOT \ | |
168 | prefix=%{dietprefix} | |
1f8a1668 | 169 | |
e72c8dd4 MM |
170 | mv $RPM_BUILD_ROOT%{dietprefix}/bin/* $RPM_BUILD_ROOT%{_bindir} |
171 | mv $RPM_BUILD_ROOT%{dietprefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1 | |
172 | rm -rf $RPM_BUILD_ROOT%{dietprefix}/{bin,man} | |
173 | rm -f $RPM_BUILD_ROOT%{_bindir}/diet-dyn | |
cf89de40 | 174 | rm -f $RPM_BUILD_ROOT%{_bindir}/dnsd |
1f8a1668 | 175 | |
54aa6e1d | 176 | cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<'EOF' |
e72c8dd4 | 177 | #!/bin/sh |
54aa6e1d | 178 | exec %{_bindir}/diet gcc "$@" |
e72c8dd4 MM |
179 | EOF |
180 | ||
c3a70eef | 181 | %clean |
182 | rm -rf $RPM_BUILD_ROOT | |
183 | ||
184 | %files | |
09de3116 | 185 | %defattr(644,root,root,755) |
c6f935c3 | 186 | %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO |
e72c8dd4 | 187 | %dir %{dietprefix} |
b633677b | 188 | %dir %{dietprefix}/lib-%{libarch} |
cf89de40 ER |
189 | |
190 | %if %{with dynamic} | |
191 | %files libs | |
192 | %defattr(644,root,root,755) | |
b633677b | 193 | %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so |
86c9e868 | 194 | %{_sysconfdir}/diet.ld.conf |
8d4158b9 | 195 | %endif |
c3a70eef | 196 | |
197 | %files devel | |
09de3116 | 198 | %defattr(644,root,root,755) |
86c9e868 JB |
199 | %attr(755,root,root) %{_bindir}/*-dietlibc-gcc |
200 | %attr(755,root,root) %{_bindir}/diet | |
86c9e868 JB |
201 | %attr(755,root,root) %{_bindir}/elftrunc |
202 | %{dietprefix}/lib-%{libarch}/*.o | |
e72c8dd4 | 203 | %{dietprefix}/include |
86c9e868 | 204 | %{_mandir}/man1/diet.1* |
e72c8dd4 MM |
205 | |
206 | %files static | |
207 | %defattr(644,root,root,755) | |
b633677b | 208 | %{dietprefix}/lib-%{libarch}/*.a |