3 %bcond_with ssp # disable stack-smashing protector 'coz dietlibc will not work with it!
4 %bcond_without dynamic # dynamic lib support
6 %ifnarch %{ix86} %{x8664} arm
10 Summary: C library optimized for size
11 Summary(pl.UTF-8): Biblioteka standardowa C zoptymalizowana na rozmiar
12 Summary(pt_BR.UTF-8): libc pequena otimizada para tamanho
18 Group: Development/Libraries
19 Source0: http://www.kernel.org/pub/linux/libs/dietlibc/%{name}-%{version}.tar.bz2
20 # Source0-md5: 0098761c17924c15e21d25acdda4a8b5
21 Patch0: %{name}-ppc.patch
22 Patch1: %{name}-opt.patch
23 Patch2: %{name}-platform.patch
24 # workaround for http://gcc.gnu.org/PR26374
25 Patch3: %{name}-gcc4.patch
26 Patch4: %{name}-guard.patch
27 Patch5: %{name}-arm.patch
28 Patch6: %{name}-diet-m.patch
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
34 Patch12: %{name}-noexecstacks.patch
35 Patch13: %{name}-strcoll.patch
36 Patch15: %{name}-memalign.patch
37 Patch16: %{name}-getsubopt.patch
38 Patch17: %{name}-devmacros.patch
39 Patch18: %{name}-bloat.patch
40 Patch19: %{name}-notify.patch
41 Patch20: %{name}-loop.patch
42 # http://svn.exactcode.de/t2/trunk/package/base/dietlibc/fdopendir.patch, needed by util-linux
43 Patch21: fdopendir.patch
44 URL: http://www.fefe.de/dietlibc/
45 BuildRequires: rpmbuild(macros) >= 1.566
46 BuildRequires: sed >= 4.0
48 BuildRequires: sparc32
50 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
52 %define dietprefix %{_prefix}/lib/dietlibc
53 # for some reason known only to rpm there must be "\\|" not "\|" here
54 %define libarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/;s/sparcv.*/sparc/')
57 The diet libc is a libc that is optimized for small size. It can be
58 used to create small statically linked binaries for Linux on alpha,
59 arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64.
61 %description -l pl.UTF-8
62 diet libc to biblioteka libc zoptymalizowana pod kątem rozmiaru.
63 Może być używana do tworzenia małych, statycznie zlinkowanych
64 binariów dla Linuksa na architekturach alpha, arm, hppa, ia64, i386,
65 mips, s390, sparc, sparc64, ppc i x86_64.
67 %description -l pt_BR.UTF-8
68 A diet libc e' uma libc otimizada para criar pequenos binários
69 estaticamente linkados para Linux.
72 Summary: Shared dietlibc libraries
73 Summary(pl.UTF-8): Biblioteki współdzielone dietlibc
77 This package contains the shared dietlibc libraries.
79 %description libs -l pl.UTF-8
80 Ten pakiet zawiera biblioteki współdzielone dietlibc.
83 Summary: Development files for dietlibc
84 Summary(pl.UTF-8): Pliki dla programistów używających dietlibc
85 Summary(pt_BR.UTF-8): libc pequena otimizada para tamanho
86 Group: Development/Libraries
87 Requires: %{name} = %{epoch}:%{version}-%{release}
90 Small libc for building embedded applications - development files.
92 %description devel -l pl.UTF-8
93 Niewielka libc do budowania aplikacji wbudowanych - pliki dla
97 Summary: Static libraries for dietlibc
98 Summary(pl.UTF-8): Biblioteki statyczne dla dietlibc
99 Group: Development/Libraries
100 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
103 Small libc for building embedded applications - static libraries.
105 %description static -l pl.UTF-8
106 Niewielka libc do budowania aplikacji wbudowanych - biblioteki
121 %{!?with_ssp:%patch9 -p1}
134 %if "%{cc_version}" < "3.4"
135 %{__sed} -i -e '/CFLAGS/ s/-Wextra//' Makefile
139 export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing"
141 %ifarch sparc sparcv9
145 prefix=%{dietprefix} \
149 # 'dyn' target is not SMP safe
151 prefix=%{dietprefix} \
156 rm -rf $RPM_BUILD_ROOT
157 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1}
159 %ifarch sparc sparcv9
163 DESTDIR=$RPM_BUILD_ROOT \
166 mv $RPM_BUILD_ROOT%{dietprefix}/bin/* $RPM_BUILD_ROOT%{_bindir}
167 mv $RPM_BUILD_ROOT%{dietprefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
168 rm -rf $RPM_BUILD_ROOT%{dietprefix}/{bin,man}
169 rm -f $RPM_BUILD_ROOT%{_bindir}/diet-dyn
170 rm -f $RPM_BUILD_ROOT%{_bindir}/dnsd
172 cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<'EOF'
174 exec %{_bindir}/diet gcc "$@"
178 rm -rf $RPM_BUILD_ROOT
181 %defattr(644,root,root,755)
182 %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO
184 %dir %{dietprefix}/lib-%{libarch}
188 %defattr(644,root,root,755)
189 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so
190 %{_sysconfdir}/diet.ld.conf
194 %defattr(644,root,root,755)
195 %attr(755,root,root) %{_bindir}/*-dietlibc-gcc
196 %attr(755,root,root) %{_bindir}/diet
197 %attr(755,root,root) %{_bindir}/elftrunc
198 %{dietprefix}/lib-%{libarch}/*.o
199 %{dietprefix}/include
200 %{_mandir}/man1/diet.1*
203 %defattr(644,root,root,755)
204 %{dietprefix}/lib-%{libarch}/*.a