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