]> git.pld-linux.org Git - packages/dietlibc.git/blob - dietlibc.spec
up to 0.34 (rel 0.1 memalign patch needs update)
[packages/dietlibc.git] / dietlibc.spec
1 # Conditional build:
2 %bcond_without  ssp     # stack-smashing protector
3 %bcond_with     dynamic # dynamic lib support
4
5 %ifnarch %{ix86} %{x8664} arm
6 %undefine       with_dynamic
7 %endif
8
9 Summary:        C library optimized for size
10 Summary(pl.UTF-8):      Biblioteka standardowa C zoptymalizowana na rozmiar
11 Summary(pt_BR.UTF-8):   libc pequena otimizada para tamanho
12 Name:           dietlibc
13 Version:        0.34
14 Release:        0.1
15 Epoch:          2
16 License:        GPL v2
17 Group:          Development/Libraries
18 Source0:        http://www.fefe.de/dietlibc/%{name}-%{version}.tar.xz
19 # Source0-md5:  4f04a6f642548cc5be716a6e0de6b631
20 Patch0:         %{name}-ppc.patch
21 Patch1:         %{name}-opt.patch
22 Patch2:         %{name}-platform.patch
23 Patch3:         %{name}-guard.patch
24 Patch4:         %{name}-arm.patch
25 Patch5:         %{name}-diet-m.patch
26 Patch6:         %{name}-nostrip.patch
27 Patch7:         %{name}-stackgap-instead-of-ssp.patch
28 Patch9:         %{name}-memalign.patch
29 Patch10:        %{name}-getsubopt.patch
30 Patch11:        %{name}-devmacros.patch
31 Patch12:        %{name}-notify.patch
32 Patch13:        x32-fixes.patch
33 Patch14:        %{name}-no-vsyscall.patch
34 URL:            http://www.fefe.de/dietlibc/
35 BuildRequires:  rpmbuild(macros) >= 1.566
36 BuildRequires:  sed >= 4.0
37 %ifarch sparc sparcv9
38 BuildRequires:  sparc32
39 %endif
40 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41
42 %define         dietprefix      %{_prefix}/lib/dietlibc
43 # for some reason known only to rpm there must be "\\|" not "\|" here
44 %define         libarch         %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/;s/sparcv.*/sparc/')
45
46 %description
47 The diet libc is a libc that is optimized for small size. It can be
48 used to create small statically linked binaries for Linux on alpha,
49 arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64.
50
51 %description -l pl.UTF-8
52 diet libc to biblioteka libc zoptymalizowana pod kątem rozmiaru.
53 Może być używana do tworzenia małych, statycznie zlinkowanych
54 binariów dla Linuksa na architekturach alpha, arm, hppa, ia64, i386,
55 mips, s390, sparc, sparc64, ppc i x86_64.
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:        Shared dietlibc libraries
63 Summary(pl.UTF-8):      Biblioteki współdzielone dietlibc
64 Group:          Libraries
65
66 %description libs
67 This package contains the shared dietlibc libraries.
68
69 %description libs -l pl.UTF-8
70 Ten pakiet zawiera biblioteki współdzielone 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 %{!?with_ssp:%patch7 -p1}
110 %patch9 -p1
111 %patch10 -p1
112 %patch11 -p1
113 %patch12 -p1
114 %patch13 -p1
115 %patch14 -p1
116
117 %if "%{cc_version}" < "3.4"
118 %{__sed} -i -e '/CFLAGS/ s/-Wextra//' Makefile
119 %endif
120
121 %build
122 export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing -Wa,--noexecstack"
123 CC="%{__cc}"
124 %ifarch sparc sparcv9
125 sparc32 \
126 %endif
127 %{__make} -j1 all \
128 %ifarch x32
129         MYARCH=x32 \
130 %endif
131         prefix=%{dietprefix} \
132         CC="${CC#*ccache }"
133
134 %if %{with dynamic}
135 # 'dyn' target is not SMP safe
136 %{__make} -j1 dyn \
137 %ifarch x32
138         MYARCH=x32 \
139 %endif
140         prefix=%{dietprefix} \
141         CC="${CC}"
142 %endif
143
144 %install
145 rm -rf $RPM_BUILD_ROOT
146 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1}
147
148 %ifarch sparc sparcv9
149 sparc32 \
150 %endif
151 %{__make} install \
152 %ifarch x32
153         MYARCH=x32 \
154 %endif
155         DESTDIR=$RPM_BUILD_ROOT \
156         prefix=%{dietprefix}
157
158 mv $RPM_BUILD_ROOT%{dietprefix}/bin/* $RPM_BUILD_ROOT%{_bindir}
159 mv $RPM_BUILD_ROOT%{dietprefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
160 rm -rf $RPM_BUILD_ROOT%{dietprefix}/{bin,man}
161 rm -f $RPM_BUILD_ROOT%{_bindir}/diet-dyn
162 rm -f $RPM_BUILD_ROOT%{_bindir}/dnsd
163
164 cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<'EOF'
165 #!/bin/sh
166 exec %{_bindir}/diet gcc "$@"
167 EOF
168
169 %clean
170 rm -rf $RPM_BUILD_ROOT
171
172 %files
173 %defattr(644,root,root,755)
174 %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO
175 %dir %{dietprefix}
176 %dir %{dietprefix}/lib-%{libarch}
177
178 %if %{with dynamic}
179 %files libs
180 %defattr(644,root,root,755)
181 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so
182 %{_sysconfdir}/diet.ld.conf
183 %endif
184
185 %files devel
186 %defattr(644,root,root,755)
187 %attr(755,root,root) %{_bindir}/*-dietlibc-gcc
188 %attr(755,root,root) %{_bindir}/diet
189 %attr(755,root,root) %{_bindir}/elftrunc
190 %{dietprefix}/lib-%{libarch}/*.o
191 %{dietprefix}/include
192 %{_mandir}/man1/diet.1*
193
194 %files static
195 %defattr(644,root,root,755)
196 %{dietprefix}/lib-%{libarch}/*.a
This page took 0.079982 seconds and 3 git commands to generate.