3 %bcond_with ssp # disable stack-smashing protector 'coz dietlibc will not work with it!
5 Summary: C library optimized for size
6 Summary(pl): Biblioteka standardowa C zoptymalizowana na rozmiar
7 Summary(pt_BR): libc pequena otimizada para tamanho
13 Group: Development/Libraries
14 Source0: http://www.kernel.org/pub/linux/libs/dietlibc/%{name}-%{version}.tar.bz2
15 # Source0-md5: 5be8e221a438817f83f73d09ce655883
16 Source1: %{name}-divrem.m4
17 Patch0: %{name}-ppc.patch
18 Patch1: %{name}-opt.patch
19 Patch2: %{name}-athlon.patch
20 Patch3: %{name}-amd64.patch
21 Patch4: %{name}-pentiumX.patch
22 Patch5: %{name}-gcc4.patch
23 URL: http://www.fefe.de/dietlibc/
26 BuildRequires: perl-base
28 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
30 %define dietprefix %{_prefix}/%{_target_cpu}-linux-dietlibc
31 # for some reason known only to rpm there must be "\\|" not "\|" here
32 %define libarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/')
35 Small libc for building embedded applications.
38 Niewielka libc do budowania aplikacji wbudowanych.
41 A diet libc e' uma libc otimizada para criar pequenos binários
42 estaticamente linkados para Linux.
45 Summary: Development files for dietlibc
46 Summary(pl): Pliki dla programistów u¿ywaj±cych dietlibc
47 Summary(pt_BR): libc pequena otimizada para tamanho
48 Group: Development/Libraries
49 Requires: %{name} = %{epoch}:%{version}-%{release}
52 Small libc for building embedded applications - development files.
54 %description devel -l pl
55 Niewielka libc do budowania aplikacji wbudowanych - pliki dla
59 Summary: Static libraries for dietlibc
60 Summary(pl): Biblioteki statyczne dla dietlibc
61 Group: Development/Libraries
62 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
65 Small libc for building embedded applications - static libraries.
67 %description static -l pl
68 Niewielka libc do budowania aplikacji wbudowanych - biblioteki
81 # generate missing functions
82 (echo "define(NAME,\`.div')define(OP,\`div')define(S,\`true')"; cat %{SOURCE1}) \
84 (echo "define(NAME,\`.rem')define(OP,\`rem')define(S,\`true')"; cat %{SOURCE1}) \
86 %{__perl} -pi -e 's@(^LIBOBJ.*$)@$1 \$(OBJDIR)/sdiv.o \$(OBJDIR)/srem.o@' sparc/Makefile.add
90 export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing"
102 rm -rf $RPM_BUILD_ROOT
103 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1}
105 %ifarch sparc sparcv9
109 DESTDIR=$RPM_BUILD_ROOT \
112 mv $RPM_BUILD_ROOT%{dietprefix}/bin/* $RPM_BUILD_ROOT%{_bindir}
113 mv $RPM_BUILD_ROOT%{dietprefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
114 rm -rf $RPM_BUILD_ROOT%{dietprefix}/{bin,man}
115 rm -f $RPM_BUILD_ROOT%{_bindir}/diet-dyn
117 cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<EOF
119 exec %{_bindir}/diet gcc "\$@"
122 rm -rf $RPM_BUILD_ROOT%{dietprefix}/include/{asm,linux}
125 rm -rf $RPM_BUILD_ROOT
128 %defattr(644,root,root,755)
129 %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO
131 %dir %{dietprefix}/lib-%{libarch}
133 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so
138 %defattr(644,root,root,755)
139 %attr(755,root,root) %{_bindir}/*
140 %{dietprefix}/include
141 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.o
145 %defattr(644,root,root,755)
146 %{dietprefix}/lib-%{libarch}/*.a