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