]> git.pld-linux.org Git - packages/dietlibc.git/blob - dietlibc.spec
- more dynamic fixes (x86_64 builds now)
[packages/dietlibc.git] / dietlibc.spec
1 #
2 # Conditional build:
3 %bcond_without  ssp     # stack-smashing protector
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.33
15 Release:        1
16 Epoch:          2
17 License:        GPL v2
18 Group:          Development/Libraries
19 Source0:        http://www.fefe.de/dietlibc/%{name}-%{version}.tar.bz2
20 # Source0-md5:  9d541b9a6623b04ec12e5248b82db7c0
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}-dynamic.patch
35 Patch13:        %{name}-strcoll.patch
36 Patch14:        umount-arch.patch
37 Patch15:        %{name}-memalign.patch
38 Patch16:        %{name}-getsubopt.patch
39 Patch17:        %{name}-devmacros.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 The diet libc is a libc that is optimized for small size. It can be
55 used to create small statically linked binaries for Linux on alpha,
56 arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64.
57
58 %description -l pl.UTF-8
59 diet libc to biblioteka libc zoptymalizowana pod kątem rozmiaru.
60 Może być używana do tworzenia małych, statycznie zlinkowanych
61 binariów dla Linuksa na architekturach alpha, arm, hppa, ia64, i386,
62 mips, s390, sparc, sparc64, ppc i x86_64.
63
64 %description -l pt_BR.UTF-8
65 A diet libc e' uma libc otimizada para criar pequenos binários
66 estaticamente linkados para Linux.
67
68 %package libs
69 Summary:        Shared dietlibc libraries
70 Summary(pl.UTF-8):      Biblioteki współdzielone dietlibc
71 Group:          Libraries
72
73 %description libs
74 This package contains the shared dietlibc libraries.
75
76 %description libs -l pl.UTF-8
77 Ten pakiet zawiera biblioteki współdzielone dietlibc.
78
79 %package devel
80 Summary:        Development files for dietlibc
81 Summary(pl.UTF-8):      Pliki dla programistów używających dietlibc
82 Summary(pt_BR.UTF-8):   libc pequena otimizada para tamanho
83 Group:          Development/Libraries
84 Requires:       %{name} = %{epoch}:%{version}-%{release}
85
86 %description devel
87 Small libc for building embedded applications - development files.
88
89 %description devel -l pl.UTF-8
90 Niewielka libc do budowania aplikacji wbudowanych - pliki dla
91 programistów.
92
93 %package static
94 Summary:        Static libraries for dietlibc
95 Summary(pl.UTF-8):      Biblioteki statyczne dla dietlibc
96 Group:          Development/Libraries
97 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
98
99 %description static
100 Small libc for building embedded applications - static libraries.
101
102 %description static -l pl.UTF-8
103 Niewielka libc do budowania aplikacji wbudowanych - biblioteki
104 statyczne.
105
106 %prep
107 %setup -q
108 %undos arm/md5asm.S
109 %patch0 -p1
110 %patch1 -p1
111 %patch2 -p1
112 %patch3 -p1
113 %patch4 -p1
114 %patch5 -p1
115 %patch6 -p1
116 %patch7 -p1
117 %patch8 -p1
118 %{!?with_ssp:%patch9 -p1}
119 %patch10 -p1
120 %patch11 -p1
121 %patch12 -p1
122 %patch13 -p1
123 %patch14 -p1
124 %patch15 -p1
125 %patch16 -p1
126 %patch17 -p1
127 %patch19 -p1
128
129 %if "%{cc_version}" < "3.4"
130 %{__sed} -i -e '/CFLAGS/ s/-Wextra//' Makefile
131 %endif
132
133 # there is unconditional nice.c already; __nice.c breaks x86_64 build
134 %{__rm} lib/__nice.c
135
136 %build
137 export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing -Wa,--noexecstack"
138 CC="%{__cc}"
139 %ifarch sparc sparcv9
140 sparc32 \
141 %endif
142 %{__make} -j1 all \
143         prefix=%{dietprefix} \
144         CC="${CC#*ccache }"
145
146 %if %{with dynamic}
147 # 'dyn' target is not SMP safe
148 %{__make} -j1 dyn \
149         prefix=%{dietprefix} \
150         CC="${CC}"
151 %endif
152
153 %install
154 rm -rf $RPM_BUILD_ROOT
155 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1}
156
157 %ifarch sparc sparcv9
158 sparc32 \
159 %endif
160 %{__make} install \
161         DESTDIR=$RPM_BUILD_ROOT \
162         prefix=%{dietprefix}
163
164 mv $RPM_BUILD_ROOT%{dietprefix}/bin/* $RPM_BUILD_ROOT%{_bindir}
165 mv $RPM_BUILD_ROOT%{dietprefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
166 rm -rf $RPM_BUILD_ROOT%{dietprefix}/{bin,man}
167 rm -f $RPM_BUILD_ROOT%{_bindir}/diet-dyn
168 rm -f $RPM_BUILD_ROOT%{_bindir}/dnsd
169
170 cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<'EOF'
171 #!/bin/sh
172 exec %{_bindir}/diet gcc "$@"
173 EOF
174
175 %clean
176 rm -rf $RPM_BUILD_ROOT
177
178 %files
179 %defattr(644,root,root,755)
180 %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO
181 %dir %{dietprefix}
182 %dir %{dietprefix}/lib-%{libarch}
183
184 %if %{with dynamic}
185 %files libs
186 %defattr(644,root,root,755)
187 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so
188 %{_sysconfdir}/diet.ld.conf
189 %endif
190
191 %files devel
192 %defattr(644,root,root,755)
193 %attr(755,root,root) %{_bindir}/*-dietlibc-gcc
194 %attr(755,root,root) %{_bindir}/diet
195 %attr(755,root,root) %{_bindir}/elftrunc
196 %{dietprefix}/lib-%{libarch}/*.o
197 %{dietprefix}/include
198 %{_mandir}/man1/diet.1*
199
200 %files static
201 %defattr(644,root,root,755)
202 %{dietprefix}/lib-%{libarch}/*.a
This page took 0.076731 seconds and 3 git commands to generate.