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