2 %bcond_without ssp # stack-smashing protector
3 %bcond_with dynamic # dynamic lib support
5 %ifnarch %{ix86} %{x8664} arm
9 Summary: C library optimized for size
10 Summary(pl.UTF-8): Biblioteka standardowa C zoptymalizowana na rozmiar
11 Summary(pt_BR.UTF-8): libc pequena otimizada para tamanho
17 Group: Development/Libraries
18 Source0: http://www.fefe.de/dietlibc/%{name}-%{version}.tar.xz
19 # Source0-md5: 4f04a6f642548cc5be716a6e0de6b631
20 Patch0: %{name}-ppc.patch
21 Patch1: %{name}-opt.patch
22 Patch2: %{name}-platform.patch
23 Patch3: %{name}-guard.patch
24 Patch4: %{name}-arm.patch
25 Patch5: %{name}-diet-m.patch
26 Patch6: %{name}-nostrip.patch
27 Patch7: %{name}-stackgap-instead-of-ssp.patch
28 Patch9: %{name}-memalign.patch
29 Patch10: %{name}-getsubopt.patch
30 Patch11: %{name}-devmacros.patch
31 Patch12: %{name}-notify.patch
32 Patch13: x32-fixes.patch
33 Patch14: %{name}-no-vsyscall.patch
34 URL: http://www.fefe.de/dietlibc/
35 BuildRequires: rpmbuild(macros) >= 1.566
36 BuildRequires: sed >= 4.0
38 BuildRequires: sparc32
40 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42 %define dietprefix %{_prefix}/lib/dietlibc
43 # for some reason known only to rpm there must be "\\|" not "\|" here
44 %define libarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/;s/sparcv.*/sparc/')
47 The diet libc is a libc that is optimized for small size. It can be
48 used to create small statically linked binaries for Linux on alpha,
49 arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64.
51 %description -l pl.UTF-8
52 diet libc to biblioteka libc zoptymalizowana pod kątem rozmiaru.
53 Może być używana do tworzenia małych, statycznie zlinkowanych
54 binariów dla Linuksa na architekturach alpha, arm, hppa, ia64, i386,
55 mips, s390, sparc, sparc64, ppc i x86_64.
57 %description -l pt_BR.UTF-8
58 A diet libc e' uma libc otimizada para criar pequenos binários
59 estaticamente linkados para Linux.
62 Summary: Shared dietlibc libraries
63 Summary(pl.UTF-8): Biblioteki współdzielone dietlibc
67 This package contains the shared dietlibc libraries.
69 %description libs -l pl.UTF-8
70 Ten pakiet zawiera biblioteki współdzielone dietlibc.
73 Summary: Development files for dietlibc
74 Summary(pl.UTF-8): Pliki dla programistów używających dietlibc
75 Summary(pt_BR.UTF-8): libc pequena otimizada para tamanho
76 Group: Development/Libraries
77 Requires: %{name} = %{epoch}:%{version}-%{release}
80 Small libc for building embedded applications - development files.
82 %description devel -l pl.UTF-8
83 Niewielka libc do budowania aplikacji wbudowanych - pliki dla
87 Summary: Static libraries for dietlibc
88 Summary(pl.UTF-8): Biblioteki statyczne dla dietlibc
89 Group: Development/Libraries
90 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
93 Small libc for building embedded applications - static libraries.
95 %description static -l pl.UTF-8
96 Niewielka libc do budowania aplikacji wbudowanych - biblioteki
109 %{!?with_ssp:%patch7 -p1}
117 %if "%{cc_version}" < "3.4"
118 %{__sed} -i -e '/CFLAGS/ s/-Wextra//' Makefile
122 export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing -Wa,--noexecstack"
124 %ifarch sparc sparcv9
129 prefix=%{dietprefix} \
133 # 'dyn' target is not SMP safe
136 prefix=%{dietprefix} \
141 rm -rf $RPM_BUILD_ROOT
142 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1}
144 %ifarch sparc sparcv9
149 DESTDIR=$RPM_BUILD_ROOT \
152 mv $RPM_BUILD_ROOT%{dietprefix}/bin/* $RPM_BUILD_ROOT%{_bindir}
153 mv $RPM_BUILD_ROOT%{dietprefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
154 rm -rf $RPM_BUILD_ROOT%{dietprefix}/{bin,man}
155 rm -f $RPM_BUILD_ROOT%{_bindir}/diet-dyn
156 rm -f $RPM_BUILD_ROOT%{_bindir}/dnsd
158 cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<'EOF'
160 exec %{_bindir}/diet gcc "$@"
164 rm -rf $RPM_BUILD_ROOT
167 %defattr(644,root,root,755)
168 %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO
170 %dir %{dietprefix}/lib-%{libarch}
174 %defattr(644,root,root,755)
175 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so
176 %{_sysconfdir}/diet.ld.conf
180 %defattr(644,root,root,755)
181 %attr(755,root,root) %{_bindir}/*-dietlibc-gcc
182 %attr(755,root,root) %{_bindir}/diet
183 %attr(755,root,root) %{_bindir}/elftrunc
184 %{dietprefix}/lib-%{libarch}/*.o
185 %{dietprefix}/include
186 %{_mandir}/man1/diet.1*
189 %defattr(644,root,root,755)
190 %{dietprefix}/lib-%{libarch}/*.a