1 |
## This package understands the following switches: |
2 |
## --with[out] ssp ... enable/disable SSP; default depends |
3 |
## on target architecture |
4 |
## --with dynamic ... enable dynamic lib support |
5 |
|
6 |
## Fedora Extras specific customization below... |
7 |
%bcond_without noarch |
8 |
## |
9 |
|
10 |
%global prerelease 20110311 |
11 |
%global pkglibdir %_prefix/lib/dietlibc |
12 |
|
13 |
%ifarch %ix86 x86_64 |
14 |
%bcond_without ssp |
15 |
%else |
16 |
%bcond_with ssp |
17 |
%endif |
18 |
|
19 |
%ifarch %ix86 x86_64 arm |
20 |
%bcond_with dynamic |
21 |
%endif |
22 |
|
23 |
%ifarch %ix86 |
24 |
%global target_cpu i386 |
25 |
%else |
26 |
%global target_cpu %_target_cpu |
27 |
%endif |
28 |
|
29 |
%{?with_noarch:%global noarch BuildArch: noarch} |
30 |
%{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} |
31 |
%{!?apply:%global apply(p:n:b:) %patch%%{-n:%%{-n*}} %%{-p:-p %%{-p*}} %%{-b:-b %%{-b*}} \ |
32 |
%nil} |
33 |
|
34 |
Summary: Small libc implementation |
35 |
Name: dietlibc |
36 |
Version: 0.33 |
37 |
Release: %release_func 1600 |
38 |
License: GPLv2 |
39 |
Group: Development/Libraries |
40 |
URL: http://www.fefe.de/dietlibc/ |
41 |
%if !0%{?prerelease:1} |
42 |
Source0: http://www.kernel.org/pub/linux/libs/dietlibc/%{name}-%{version}.tar.bz2 |
43 |
Source1: http://www.fefe.de/dietlibc/%{name}-%{version}.tar.bz2.sig |
44 |
%else |
45 |
# generated by 'make cvs-sources [CVS_DATE=....]' |
46 |
Source0: %name-%version.%prerelease.tar.bz2 |
47 |
%endif |
48 |
Source10: runtests-X.sh |
49 |
## CVS..master diff from https://github.com/ensc/dietlibc |
50 |
Patch0: dietlibc-github.patch |
51 |
BuildRoot: %_tmppath/%name-%version-%release-buildroot |
52 |
%{?with_dynamic:Requires: dietlibc-lib = %version-%release} |
53 |
%{!?with_dynamic:Obsoletes: dietlibc-lib < %version-%release} |
54 |
|
55 |
Requires: %name-devel = %version-%release |
56 |
BuildRequires: gdb |
57 |
|
58 |
%package devel |
59 |
Summary: dietlibc development files |
60 |
Group: Development/Libraries |
61 |
Requires: %name = %version-%release |
62 |
Requires: %name-header = %version-%release |
63 |
Provides: %name-static = %version-%release |
64 |
Provides: %name-static%{?_isa} = %version-%release |
65 |
|
66 |
%package header |
67 |
Summary: dietlibc header files |
68 |
Group: Development/Libraries |
69 |
Requires: %name = %version-%release |
70 |
Requires(pre): %name-devel = %version-%release |
71 |
Requires: %name-devel = %version-%release |
72 |
%{?noarch} |
73 |
|
74 |
%package lib |
75 |
Summary: Dynamic libraries for dietlibc |
76 |
Group: System Environment/Libraries |
77 |
Conflicts: %name < %version-%release |
78 |
Conflicts: %name > %version-%release |
79 |
|
80 |
%description |
81 |
The diet libc is a libc that is optimized for small size. It can be |
82 |
used to create small statically linked binaries for Linux on alpha, |
83 |
arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64. |
84 |
|
85 |
%description devel |
86 |
The diet libc is a libc that is optimized for small size. It can be |
87 |
used to create small statically linked binaries for Linux on alpha, |
88 |
arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64. |
89 |
|
90 |
This package contains the object files for dietlibc. |
91 |
|
92 |
%description header |
93 |
The diet libc is a libc that is optimized for small size. It can be |
94 |
used to create small statically linked binaries for Linux on alpha, |
95 |
arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64. |
96 |
|
97 |
This package contains the header files for dietlibc. |
98 |
|
99 |
%description lib |
100 |
The diet libc is a libc that is optimized for small size. It can be |
101 |
used to create small statically linked binaries for Linux on alpha, |
102 |
arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64. |
103 |
|
104 |
This package contains the dynamic libraries for dietlibc. |
105 |
|
106 |
|
107 |
%prep |
108 |
%setup -q %{?prerelease:-n %name-%version.%prerelease} |
109 |
|
110 |
%apply -n0 -p1 |
111 |
|
112 |
%if %{without ssp} |
113 |
sed -i -e 's!^#define WANT_SSP$!// \0!g; |
114 |
s!.*\(#define WANT_STACKGAP\).*!\1!g' dietfeatures.h |
115 |
%global xtra_fixcflags -fno-stack-protector |
116 |
%else |
117 |
%global xtra_fixcflags %nil |
118 |
%endif |
119 |
|
120 |
sed -i \ |
121 |
-e '/#define \(WANT_LARGEFILE_BACKCOMPAT\|WANT_VALGRIND_SUPPORT\)/d' \ |
122 |
dietfeatures.h |
123 |
|
124 |
%ifarch %ix86 arm |
125 |
sed -i \ |
126 |
-e '/#define WANT_DYN_PAGESIZE/{c\' \ |
127 |
-e '#define WANT_ELFINFO' \ |
128 |
-e '}' \ |
129 |
dietfeatures.h |
130 |
%endif |
131 |
|
132 |
%global fixcflags -fomit-frame-pointer -fno-exceptions -fno-asynchronous-unwind-tables %xtra_fixcflags -Os -g3 -Werror-implicit-function-declaration |
133 |
%global basemakeflags prefix=%pkglibdir BINDIR=%_bindir MAN1DIR=%_mandir/man1 CFLAGS="$RPM_OPT_FLAGS %fixcflags $XTRA_CFLAGS" PDIET=%pkglibdir STRIP=: |
134 |
%global makeflags %basemakeflags |
135 |
|
136 |
for i in `find test -name 'runtests.sh'`; do |
137 |
ln -s %SOURCE10 `dirname $i`/runtests-X.sh |
138 |
done |
139 |
|
140 |
|
141 |
%build |
142 |
make %makeflags all %{?_smp_mflags} |
143 |
|
144 |
# 'dyn' target is not SMP safe |
145 |
%{?with_dynamic:make %makeflags dyn} |
146 |
|
147 |
|
148 |
%install |
149 |
rm -rf $RPM_BUILD_ROOT |
150 |
|
151 |
install -d -m755 $RPM_BUILD_ROOT/etc |
152 |
make %makeflags DESTDIR=$RPM_BUILD_ROOT install |
153 |
|
154 |
ln -s lib-%_arch ${RPM_BUILD_ROOT}%pkglibdir/lib-%_arch-%_vendor |
155 |
|
156 |
chmod a-x $RPM_BUILD_ROOT%pkglibdir/lib-*/*.o |
157 |
rm -f $RPM_BUILD_ROOT%_bindir/dnsd |
158 |
|
159 |
|
160 |
%check |
161 |
XTRA_CFLAGS='-fno-builtin' |
162 |
make %makeflags -C test all %{?_smp_mflags} DIET=$(echo `pwd`/bin-*/diet) -k || : |
163 |
make %makeflags -C test/inet all %{?_smp_mflags} DIET=$(echo `pwd`/bin-*/diet) || : |
164 |
|
165 |
cd test |
166 |
ulimit -m $[ 128*1024 ] -v $[ 256*1024 ] -d $[ 128*1024 ] -s 512 |
167 |
|
168 |
bash ./runtests-X.sh |
169 |
|
170 |
|
171 |
%clean |
172 |
rm -rf $RPM_BUILD_ROOT |
173 |
|
174 |
%files |
175 |
%defattr(-,root,root,-) |
176 |
%doc AUTHOR BUGS CAVEAT CHANGES COPYING FAQ PORTING README* |
177 |
%doc SECURITY THANKS TODO |
178 |
%doc %_mandir/*/* |
179 |
%_bindir/* |
180 |
|
181 |
|
182 |
%files header |
183 |
%defattr(-,root,root,-) |
184 |
%pkglibdir/include |
185 |
|
186 |
|
187 |
%files devel |
188 |
%defattr(-,root,root,-) |
189 |
%pkglibdir |
190 |
%exclude %pkglibdir/include |
191 |
%{?with_dynamic:%exclude %pkglibdir/*/*.so} |
192 |
|
193 |
|
194 |
%if %{with dynamic} |
195 |
%files lib |
196 |
%defattr(-,root,root,-) |
197 |
%config(noreplace) %_sysconfdir/* |
198 |
%dir %pkglibdir |
199 |
%dir %pkglibdir/lib-* |
200 |
%pkglibdir/lib-%target_cpu/*.so |
201 |
%endif |
202 |
|
203 |
|
204 |
%changelog |
205 |
* Fri Jul 14 2023 brian read <brianr@koozali.org> |
206 |
- add {} round vars in source lines so that can be converted to git [SME: 12380] |
207 |
|
208 |
* Sat Mar 12 2011 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.33-0.1600.20110311 |
209 |
- updated to 20110311 CVS snapshot |
210 |
- set fixed page size for arm |
211 |
- disabled linux 2.2/2.4 compatibility code + valgrind nice mode |
212 |
- reduced stack size for testsuite |
213 |
- rediffed patches |
214 |
|
215 |
* Sun Feb 20 2011 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.33-0.1600.20101223 |
216 |
- other ARM enhancements |
217 |
- fixed missing headers in last utime(2) + fadvise(2) patches |
218 |
|
219 |
* Sun Feb 20 2011 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.33-0.1505.20101223 |
220 |
- further ARM fixes |
221 |
- global fixes for utime(2), fadvise*(2) |
222 |
|
223 |
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.33-0.1504.20101223 |
224 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild |
225 |
|
226 |
* Fri Jan 14 2011 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> |
227 |
- added common alarm(2) implementation |
228 |
|
229 |
* Sun Jan 9 2011 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.33-0.1502.20101223 |
230 |
- replaced all the single patches with a big one from |
231 |
https://github.com/ensc/dietlibc/commits/rebase |
232 |
- various ARM-EABI fixes (667852) |
233 |
|
234 |
* Fri Dec 24 2010 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.33-0.1500.20101223 |
235 |
- updated to 20101223 CVS snapshot |
236 |
|
237 |
* Fri Jul 9 2010 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.32-1400 |
238 |
- added -static provides (#609606) |
239 |
- use %%apply, not %%patch |
240 |
- updated %%release_func macro |
241 |
|
242 |
* Sat Jul 25 2009 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.32-0 |
243 |
- updated to 0.32 |
244 |
- fixed stackgap/auxvec patch |
245 |
- added patches to fix SMP builds and to prevent object file stripping |
246 |
- moved %%changelog entries from 2005 and before into ChangeLog.2005 file |
247 |
|
248 |
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.31-9.20090228 |
249 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild |
250 |
|
251 |
* Sun Mar 1 2009 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-8.20090228 |
252 |
- splitted a noarch -header subpackage out of -devel |
253 |
|
254 |
* Sun Mar 1 2009 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-7.20090228 |
255 |
- updated to 20090228 |
256 |
- updated patches |
257 |
|
258 |
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.31-7.20081017 |
259 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild |
260 |
|
261 |
* Sat Oct 18 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-6.20081017 |
262 |
- updated to 20081017 CVS snapshot |
263 |
- relaxed some sanity checks on architecture not supported by Fedora |
264 |
and use '#warning' instead of '#error' |
265 |
- fixed ARM dynlib code |
266 |
|
267 |
* Wed Jul 16 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.31-6.20080517 |
268 |
- fix license tag |
269 |
|
270 |
* Sun May 18 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-5.20080517 |
271 |
- updated to 20080517 snapshot |
272 |
- use patches from git repository |
273 |
|
274 |
* Sun May 18 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-5.20080409 |
275 |
- fixed __signalfd() prototype |
276 |
|
277 |
* Sat Apr 19 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-4.20080409 |
278 |
- update -pagesize patch |
279 |
|
280 |
* Mon Apr 14 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-3.20080409 |
281 |
- removed debug stuff from specfile |
282 |
- updated patches to work with new isinf() behavior of gcc 4.3 |
283 |
|
284 |
* Sun Apr 13 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-2.20080409 |
285 |
- added patch for dynamic PAGE_SIZE support |
286 |
- fixed/enhanced testsuite and removed the '|| :' in %%check |
287 |
- improved/fixed floating point support *printf(3) |
288 |
|
289 |
* Thu Apr 10 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-1.20080409 |
290 |
- updated to CVS snapshot 20080409 |
291 |
|
292 |
* Fri Feb 22 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-1.20080221 |
293 |
- updated to CVS snapshot 20080221; removed most of the last patches |
294 |
as they are now in upstream |
295 |
- moved files into platform neutral /usr/lib dir (not using %%_lib or |
296 |
%%_libdir macro) |
297 |
- added -devel subpackage due to multiarch issues; main package contains |
298 |
only the 'diet' binary plus some tools while -devel holds all the |
299 |
header and object files. |
300 |
- fixed optimized memcpy(3) |
301 |
|
302 |
* Wed Feb 13 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-1.20080212 |
303 |
- updated to CVS snapshot 20080212 |
304 |
- fixed printf regression for '%+04i' style formats |
305 |
- added %%check and run a testsuite; it does not succeed now so it is |
306 |
for informational purposes only... |
307 |
- added bunch of patches to fixes big-endian issues in string routines |
308 |
|
309 |
* Sat Sep 1 2007 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.31-1 |
310 |
- updated to 0.31 |
311 |
- removed the no-stack-protector bits for i386 and x86_64 archs |
312 |
- improved stack-smash code a little bit |
313 |
- disabled dynamic lib for all arches |
314 |
- made objects non-executable to avoid "No build ID note" errors |
315 |
|
316 |
* Wed Jan 17 2007 David Woodhouse <dwmw2@infradead.org> 0.30-4 |
317 |
- Bump release to be higher than unexplained 0.30-3.fc6 |
318 |
|
319 |
* Wed Jan 17 2007 David Woodhouse <dwmw2@infradead.org> 0.30-3 |
320 |
- Apply workaround for GCC PR26374 to build on PPC again (#182118) |
321 |
|
322 |
* Fri Sep 15 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.30-2 |
323 |
- rebuilt |
324 |
|
325 |
* Sun Jul 9 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.30-1 |
326 |
- updated to 0.30 |
327 |
- removed cross-arch support |
328 |
- disable (non-working) SSP support; enable old stackgap code instead of |
329 |
|
330 |
* Sat Feb 18 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.29-6 |
331 |
- added '-Os' to the CFLAGS |
332 |
- exclude PPC arch due to strange compilation errors |