]> git.pld-linux.org Git - packages/dietlibc.git/blob - dietlibc.spec
450b82ef308e50764b0bbf8c7863471f819a51f8
[packages/dietlibc.git] / dietlibc.spec
1 #
2 # Conditional build:
3 %bcond_with     ssp     # disable stack-smashing protector 'coz dietlibc will not work with it!
4 %bcond_without  dynamic # dynamic lib support
5
6 %ifnarch %{ix86} %{x8664} arm
7 %undefine       with_dynamic
8 %endif
9
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
13 Name:           dietlibc
14 Version:        0.32
15 Release:        17
16 Epoch:          2
17 License:        GPL v2
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
35 Patch13:        %{name}-strcoll.patch
36 Patch14:        umount-arch.patch
37 Patch15:        %{name}-memalign.patch
38 Patch16:        %{name}-getsubopt.patch
39 Patch17:        %{name}-devmacros.patch
40 Patch18:        %{name}-bloat.patch
41 Patch19:        %{name}-notify.patch
42 Patch20:        %{name}-loop.patch
43 # http://svn.exactcode.de/t2/trunk/package/base/dietlibc/fdopendir.patch, needed by util-linux
44 Patch21:        fdopendir.patch
45 Patch22:        faccessat.patch
46 URL:            http://www.fefe.de/dietlibc/
47 BuildRequires:  rpmbuild(macros) >= 1.566
48 BuildRequires:  sed >= 4.0
49 %ifarch sparc sparcv9
50 BuildRequires:  sparc32
51 %endif
52 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53
54 %define         dietprefix      %{_prefix}/lib/dietlibc
55 # for some reason known only to rpm there must be "\\|" not "\|" here
56 %define         libarch         %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/;s/sparcv.*/sparc/')
57
58 %description
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.
62
63 %description -l pl.UTF-8
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.
68
69 %description -l pt_BR.UTF-8
70 A diet libc e' uma libc otimizada para criar pequenos binários
71 estaticamente linkados para Linux.
72
73 %package libs
74 Summary:        Shared dietlibc libraries
75 Summary(pl.UTF-8):      Biblioteki współdzielone dietlibc
76 Group:          Libraries
77
78 %description libs
79 This package contains the shared dietlibc libraries.
80
81 %description libs -l pl.UTF-8
82 Ten pakiet zawiera biblioteki współdzielone dietlibc.
83
84 %package devel
85 Summary:        Development files for dietlibc
86 Summary(pl.UTF-8):      Pliki dla programistów używających dietlibc
87 Summary(pt_BR.UTF-8):   libc pequena otimizada para tamanho
88 Group:          Development/Libraries
89 Requires:       %{name} = %{epoch}:%{version}-%{release}
90
91 %description devel
92 Small libc for building embedded applications - development files.
93
94 %description devel -l pl.UTF-8
95 Niewielka libc do budowania aplikacji wbudowanych - pliki dla
96 programistów.
97
98 %package static
99 Summary:        Static libraries for dietlibc
100 Summary(pl.UTF-8):      Biblioteki statyczne dla dietlibc
101 Group:          Development/Libraries
102 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
103
104 %description static
105 Small libc for building embedded applications - static libraries.
106
107 %description static -l pl.UTF-8
108 Niewielka libc do budowania aplikacji wbudowanych - biblioteki
109 statyczne.
110
111 %prep
112 %setup -q
113 %undos arm/md5asm.S
114 %patch0 -p1
115 %patch1 -p1
116 %patch2 -p1
117 %patch3 -p1
118 %patch4 -p1
119 %patch5 -p1
120 %patch6 -p1
121 %patch7 -p1
122 %patch8 -p1
123 %{!?with_ssp:%patch9 -p1}
124 %patch10 -p1
125 %patch11 -p1
126
127 %patch13 -p1
128 %patch14 -p1
129 %patch15 -p1
130 %patch16 -p1
131 %patch17 -p1
132 %patch18 -p0
133 %patch19 -p1
134 %patch20 -p1
135 %patch21 -p1
136 %patch22 -p1
137
138 %if "%{cc_version}" < "3.4"
139 %{__sed} -i -e '/CFLAGS/ s/-Wextra//' Makefile
140 %endif
141
142 %build
143 export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing -Wa,--noexecstack"
144 CC="%{__cc}"
145 %ifarch sparc sparcv9
146 sparc32 \
147 %endif
148 %{__make} -j1 all \
149         prefix=%{dietprefix} \
150         CC="${CC#*ccache }"
151
152 %if %{with dynamic}
153 # 'dyn' target is not SMP safe
154 %{__make} -j1 dyn \
155         prefix=%{dietprefix} \
156         CC="${CC}"
157 %endif
158
159 %install
160 rm -rf $RPM_BUILD_ROOT
161 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1}
162
163 %ifarch sparc sparcv9
164 sparc32 \
165 %endif
166 %{__make} install \
167         DESTDIR=$RPM_BUILD_ROOT \
168         prefix=%{dietprefix}
169
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
174 rm -f $RPM_BUILD_ROOT%{_bindir}/dnsd
175
176 cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<'EOF'
177 #!/bin/sh
178 exec %{_bindir}/diet gcc "$@"
179 EOF
180
181 %clean
182 rm -rf $RPM_BUILD_ROOT
183
184 %files
185 %defattr(644,root,root,755)
186 %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO
187 %dir %{dietprefix}
188 %dir %{dietprefix}/lib-%{libarch}
189
190 %if %{with dynamic}
191 %files libs
192 %defattr(644,root,root,755)
193 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so
194 %{_sysconfdir}/diet.ld.conf
195 %endif
196
197 %files devel
198 %defattr(644,root,root,755)
199 %attr(755,root,root) %{_bindir}/*-dietlibc-gcc
200 %attr(755,root,root) %{_bindir}/diet
201 %attr(755,root,root) %{_bindir}/elftrunc
202 %{dietprefix}/lib-%{libarch}/*.o
203 %{dietprefix}/include
204 %{_mandir}/man1/diet.1*
205
206 %files static
207 %defattr(644,root,root,755)
208 %{dietprefix}/lib-%{libarch}/*.a
This page took 0.062173 seconds and 2 git commands to generate.