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