3 %bcond_without ssp # stack-smashing protector
4 %bcond_with 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.fefe.de/dietlibc/%{name}-%{version}.tar.bz2
20 # Source0-md5: 9d541b9a6623b04ec12e5248b82db7c0
21 Patch0: %{name}-ppc.patch
22 Patch1: %{name}-opt.patch
23 Patch2: %{name}-platform.patch
24 Patch3: %{name}-guard.patch
25 Patch4: %{name}-arm.patch
26 Patch5: %{name}-diet-m.patch
27 Patch6: %{name}-nostrip.patch
28 Patch7: %{name}-stackgap-instead-of-ssp.patch
29 Patch8: umount-arch.patch
30 Patch9: %{name}-memalign.patch
31 Patch10: %{name}-getsubopt.patch
32 Patch11: %{name}-devmacros.patch
33 Patch12: %{name}-notify.patch
34 Patch13: x32-fixes.patch
36 URL: http://www.fefe.de/dietlibc/
37 BuildRequires: rpmbuild(macros) >= 1.566
38 BuildRequires: sed >= 4.0
40 BuildRequires: sparc32
42 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
44 %define dietprefix %{_prefix}/lib/dietlibc
45 # for some reason known only to rpm there must be "\\|" not "\|" here
46 %define libarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/;s/sparcv.*/sparc/')
49 The diet libc is a libc that is optimized for small size. It can be
50 used to create small statically linked binaries for Linux on alpha,
51 arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64.
53 %description -l pl.UTF-8
54 diet libc to biblioteka libc zoptymalizowana pod kątem rozmiaru.
55 Może być używana do tworzenia małych, statycznie zlinkowanych
56 binariów dla Linuksa na architekturach alpha, arm, hppa, ia64, i386,
57 mips, s390, sparc, sparc64, ppc i x86_64.
59 %description -l pt_BR.UTF-8
60 A diet libc e' uma libc otimizada para criar pequenos binários
61 estaticamente linkados para Linux.
64 Summary: Shared dietlibc libraries
65 Summary(pl.UTF-8): Biblioteki współdzielone dietlibc
69 This package contains the shared dietlibc libraries.
71 %description libs -l pl.UTF-8
72 Ten pakiet zawiera biblioteki współdzielone dietlibc.
75 Summary: Development files for dietlibc
76 Summary(pl.UTF-8): Pliki dla programistów używających dietlibc
77 Summary(pt_BR.UTF-8): libc pequena otimizada para tamanho
78 Group: Development/Libraries
79 Requires: %{name} = %{epoch}:%{version}-%{release}
82 Small libc for building embedded applications - development files.
84 %description devel -l pl.UTF-8
85 Niewielka libc do budowania aplikacji wbudowanych - pliki dla
89 Summary: Static libraries for dietlibc
90 Summary(pl.UTF-8): Biblioteki statyczne dla dietlibc
91 Group: Development/Libraries
92 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
95 Small libc for building embedded applications - static libraries.
97 %description static -l pl.UTF-8
98 Niewielka libc do budowania aplikacji wbudowanych - biblioteki
112 %{!?with_ssp:%patch7 -p1}
120 %if "%{cc_version}" < "3.4"
121 %{__sed} -i -e '/CFLAGS/ s/-Wextra//' Makefile
125 export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing -Wa,--noexecstack"
127 %ifarch sparc sparcv9
134 prefix=%{dietprefix} \
138 # 'dyn' target is not SMP safe
143 prefix=%{dietprefix} \
148 rm -rf $RPM_BUILD_ROOT
149 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1}
151 %ifarch sparc sparcv9
158 DESTDIR=$RPM_BUILD_ROOT \
161 mv $RPM_BUILD_ROOT%{dietprefix}/bin/* $RPM_BUILD_ROOT%{_bindir}
162 mv $RPM_BUILD_ROOT%{dietprefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
163 rm -rf $RPM_BUILD_ROOT%{dietprefix}/{bin,man}
164 rm -f $RPM_BUILD_ROOT%{_bindir}/diet-dyn
165 rm -f $RPM_BUILD_ROOT%{_bindir}/dnsd
167 cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<'EOF'
169 exec %{_bindir}/diet gcc "$@"
173 rm -rf $RPM_BUILD_ROOT
176 %defattr(644,root,root,755)
177 %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO
179 %dir %{dietprefix}/lib-%{libarch}
183 %defattr(644,root,root,755)
184 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so
185 %{_sysconfdir}/diet.ld.conf
189 %defattr(644,root,root,755)
190 %attr(755,root,root) %{_bindir}/*-dietlibc-gcc
191 %attr(755,root,root) %{_bindir}/diet
192 %attr(755,root,root) %{_bindir}/elftrunc
193 %{dietprefix}/lib-%{libarch}/*.o
194 %{dietprefix}/include
195 %{_mandir}/man1/diet.1*
198 %defattr(644,root,root,755)
199 %{dietprefix}/lib-%{libarch}/*.a