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