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