]> git.pld-linux.org Git - packages/binutils.git/blob - binutils.spec
- updated to 2.21.51.0.1
[packages/binutils.git] / binutils.spec
1 #
2 # Conditional build:
3 %bcond_with     allarchs        # enable all targets
4 # define addtargets x,y,z       # build with additional targets x,y,z (e.g. x86_64-linux)
5                                 # http://sourceware.org/ml/binutils/2008-03/msg00162.html
6 %bcond_without  gold            # don't build gold (no C++ dependencies)
7 %bcond_without  pax             # without PaX flags (for upstream bugreports)
8 #
9 Summary:        GNU Binary Utility Development Utilities
10 Summary(de.UTF-8):      GNU Binary Utility Development Utilities
11 Summary(es.UTF-8):      Utilitarios para desarrollo de binarios de la GNU
12 Summary(fr.UTF-8):      Utilitaires de développement binaire de GNU
13 Summary(pl.UTF-8):      Narzędzia GNU dla programistów
14 Summary(pt_BR.UTF-8):   Utilitários para desenvolvimento de binários da GNU
15 Summary(ru.UTF-8):      Набор инструментов GNU для построения исполняемых программ
16 Summary(tr.UTF-8):      GNU geliştirme araçları
17 Summary(uk.UTF-8):      Набір інструментів GNU для побудови виконуваних програм
18 Name:           binutils
19 Version:        2.21.51.0.1
20 Release:        1
21 Epoch:          3
22 License:        GPL v3+
23 Group:          Development/Tools
24 Source0:        ftp://ftp.kernel.org/pub/linux/devel/binutils/%{name}-%{version}.tar.bz2
25 # Source0-md5:  3e8b6349f38d6e0feba317055f0ced14
26 Source1:        http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
27 # Source1-md5:  a717d9707ec77d82acb6ec9078c472d6
28 Patch0:         %{name}-gasp.patch
29 Patch1:         %{name}-info.patch
30 Patch2:         %{name}-libtool-relink.patch
31 Patch3:         %{name}-pt_pax_flags.patch
32 Patch5:         %{name}-discarded.patch
33 Patch6:         %{name}-absolute-gnu_debuglink-path.patch
34 Patch7:         %{name}-libtool-m.patch
35 Patch8:         %{name}-build-id.patch
36 Patch9:         %{name}-tooldir.patch
37 URL:            http://sources.redhat.com/binutils/
38 BuildRequires:  autoconf >= 2.64
39 BuildRequires:  automake >= 1:1.11
40 BuildRequires:  bison
41 BuildRequires:  flex
42 BuildRequires:  gettext-devel
43 %{?with_gold:BuildRequires:     libstdc++-devel >= 6:4.0-1}
44 BuildRequires:  perl-tools-pod
45 %ifarch sparc sparc32
46 BuildRequires:  sparc32
47 %endif
48 BuildRequires:  texinfo >= 4.2
49 Conflicts:      gcc-c++ < 5:3.3
50 Conflicts:      modutils < 2.4.17
51 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
52
53 %description
54 Binutils is a collection of binary utilities, including:
55 - ar - create, modify and extract from archives,
56 - nm - lists symbols from object files,
57 - objcopy - copy and translate object files,
58 - objdump - display information from object files,
59 - ranlib - generate an index for the contents of an archive,
60 - size - list the section sizes of an object or archive file,
61 - strings - list printable strings from files,
62 - strip - discard symbols,
63 - addr2line - convert addresses to file and line,
64 - nlmconv - convert object code into an NLM.
65
66 %description -l es.UTF-8
67 Binutils es una colección de utilitarios necesarios para compilar
68 programas. Incluye assembler y linker, así como varios otros programas
69 para trabajar con formatos que se puedan ejecutar.
70
71 %description -l pl.UTF-8
72 Pakiet binutils zawiera zestaw narzędzi umożliwiających kompilację
73 programów. Znajdują się tutaj między innymi assembler, konsolidator
74 (linker), a także inne narzędzia do manipulowania binarnymi plikami
75 programów i bibliotek.
76
77 %description -l pt_BR.UTF-8
78 binutils é uma coletânea de utilitários necessários para compilar
79 programas. Inclui assembler e linker, assim como vários outros
80 programas para trabalhar com formatos executáveis.
81
82 %description -l ru.UTF-8
83 binutils - это набор инструментов, необходимых для компилляции
84 программ. Включает ассемблер, компоновщик и набор других программ для
85 работы с исполняемыми файлами разнообразных форматов.
86
87 %description -l uk.UTF-8
88 binutils - це набір інструментів, необхідних для компіляції програм.
89 Містить асемблер, компоновщик та інші програми, необхідні для роботи з
90 виконуваними файлами різних форматів.
91
92 %package libs
93 Summary:        GNU binutils shared libraries
94 Summary(pl.UTF-8):      Biblioteki współdzielone GNU binutils
95 Group:          Libraries
96 Conflicts:      binutils < 3:2.17.50.0.8-3
97
98 %description libs
99 GNU binutils shared libraries (libbfd, libopcodes).
100
101 %description libs -l pl.UTF-8
102 Biblioteki współdzielone GNU binutils (libbfd, libopcodes).
103
104 %package devel
105 Summary:        Development files for GNU binutils libraries
106 Summary(pl.UTF-8):      Pliki programistyczne bibliotek GNU binutils
107 Group:          Development/Libraries
108 Requires:       %{name}-libs = %{epoch}:%{version}-%{release}
109
110 %description devel
111 Development files for GNU binutils libraries (libbfd, libopcodes) and
112 static libiberty library.
113
114 %description devel -l pl.UTF-8
115 Pliki programistyczne bibliotek GNU binutils (libbfd, libopcodes) oraz
116 statyczna biblioteka libiberty.
117
118 %package static
119 Summary:        GNU binutils static libraries
120 Summary(pl.UTF-8):      Biblioteki statyczne do GNU binutils
121 Group:          Development/Libraries
122 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
123
124 %description static
125 Static GNU binutils libraries (libbfd, libopcodes).
126
127 %description static -l pl.UTF-8
128 Biblioteki statyczne GNU binutils (libbfd, libopcodes).
129
130 %package gasp
131 Summary:        GASP - old preprocessor for assembly programs
132 Summary(pl.UTF-8):      GASP - stary preprocesor dla programów w asemblerze
133 Group:          Development/Tools
134 Requires:       %{name} = %{epoch}:%{version}-%{release}
135
136 %description gasp
137 GASP - old preprocessor for assembly programs. It's officially
138 obsoleted, but it's still needed to build some packages.
139
140 %description gasp -l pl.UTF-8
141 GASP - stary preprocesor dla programów w asemblerze. Jest oficjalnie
142 uznany za przestarzały, ale jest nadal potrzebny do zbudowania
143 niektórych pakietów.
144
145 %package gold
146 Summary:        GOLD - new version of ELF linker originally developed at Google
147 Summary(pl.UTF-8):      GOLD - nowa wersja linkera ELF powstała w Google
148 Group:          Development/Tools
149 Requires:       %{name} = %{epoch}:%{version}-%{release}
150
151 %description gold
152 gold is an ELF linker. It is intended to have complete support for ELF
153 and to run as fast as possible on modern systems. For normal use it is
154 a drop-in replacement for the older GNU linker. gold was originally
155 developed at Google, and was contributed to the Free Software
156 Foundation in March 2008.
157
158 gold supports most of the features of the GNU linker for ELF targets.
159 Notable omissions - features of the GNU linker not currently supported
160 in gold - are:
161  - MEMORY regions in linker scripts
162  - MRI compatible linker scripts
163  - cross-reference reports (--cref)
164  - various other minor options.
165
166 %description gold -l pl.UTF-8
167 gold to linker dla plików ELF. Powstał z myślą o pełnej obsłudze
168 formatu ELF i jak najszybszym działaniu na współczesnych systemach.
169 Przy zwykłym użyciu jest zamiennikiem starszego linkera GNU. gold
170 początkowo był rozwijany przez Google i został przekazany Free
171 Software Foundation w marcu 2008.
172
173 gold obsługuje większość funkcji linkera GNU dla plików ELF. Istotne
174 braki - możliwości linkera GNU aktualnie nie obsługiwane przez gold -
175 to:
176 - regiony typu MEMORY w skryptach linkera
177 - skrypty linkera kompatybilne z MRI
178 - raporty odsyłaczy (--cref)
179 - kilka innych, mniej istotnych opcji.
180
181 %prep
182 %setup -q
183 %patch0 -p1
184 %patch1 -p1
185 %patch2 -p1
186 %{?with_pax:%patch3 -p1}
187 %patch5 -p1
188 %patch6 -p1
189 %patch7 -p1
190 %patch8 -p1
191 %patch9 -p1
192
193 # file contains hacks for ac 2.59 only
194 rm config/override.m4
195
196 %build
197 %{__aclocal}
198 %{__autoconf}
199
200 # non-standard regeneration (needed because of gasp patch)
201 # AM_BINUTILS_WARNINGS in bfd/warning.m4, ZW_GNU_GETTEXT_SISTER_DIR in config/gettext-sister.m4
202 for dir in gas bfd; do
203         cd $dir || exit 1
204         %{__aclocal} -I .. -I ../config -I ../bfd
205         %{__automake} Makefile
206         %{__automake} doc/Makefile
207         %{__autoconf}
208         cd ..
209 done
210
211 # More targets
212 TARGETS=
213 %ifarch ia64
214 TARGETS=i686-linux
215 %endif
216 # uhm?
217 %ifarch %{ix86}
218 TARGETS=x86_64-linux
219 %endif
220 %ifarch sparc
221 TARGETS=sparc64-linux
222 %endif
223 %{?addtargets:TARGETS="%{addtargets}"}
224
225 cp -f /usr/share/automake/config.* .
226 CFLAGS="%{rpmcflags}"; export CFLAGS
227 CXXFLAGS="%{rpmcxxflags}"; export CXXFLAGS
228 CC="%{__cc}"; export CC
229 CXX="%{__cxx}"; export CXX
230 %ifarch sparc
231 sparc32 \
232 %endif
233 ./configure %{_target_platform} \
234         --disable-debug \
235         --disable-werror \
236         --enable-build-warnings=,-Wno-missing-prototypes \
237         --enable-shared \
238         --prefix=%{_prefix} \
239         --libdir=%{_libdir} \
240         --infodir=%{_infodir} \
241         --mandir=%{_mandir} \
242         --with-tooldir=%{_prefix} \
243         %{!?with_allarchs:`[ -n "${TARGETS}" ] && echo "--enable-targets=${TARGETS}"`} \
244 %ifarch sparc
245         --enable-64-bit-bfd \
246 %else
247         %{?with_allarchs:--enable-64-bit-bfd} \
248 %endif
249         %{?with_allarchs:--enable-targets=alpha-linux,arm-linux,cris-linux,hppa-linux,i386-linux,ia64-linux,x86_64-linux,m68k-linux,mips-linux,mips64-linux,mips64el-linux,mipsel-linux,ppc-linux,s390-linux,s390x-linux,sh-linux,sparc-linux,sparc64-linux,i386-linuxaout} \
250 %if %{with gold}
251         --enable-gold=both/ld
252 %else
253         --disable-gold
254 %endif
255
256 %{__make}
257
258 %install
259 rm -rf $RPM_BUILD_ROOT
260
261 %{__make} install \
262         DESTDIR=$RPM_BUILD_ROOT
263
264 rm $RPM_BUILD_ROOT%{_infodir}/standards.info*
265
266 # remove these man pages unless we cross-build for win*/netware platforms.
267 # however, this should be done in Makefiles.
268 rm $RPM_BUILD_ROOT%{_mandir}/man1/{dlltool,nlmconv,windres}.1
269
270 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
271
272 install include/libiberty.h $RPM_BUILD_ROOT%{_includedir}
273 install libiberty/pic/libiberty.a $RPM_BUILD_ROOT%{_libdir}
274
275 # remove evil -L pointing inside builder's home
276 perl -pi -e 's@-L[^ ]*/pic @@g' $RPM_BUILD_ROOT%{_libdir}/libbfd.la
277
278 [ -x $RPM_BUILD_ROOT%{_bindir}/ld.bfd ] || ln $RPM_BUILD_ROOT%{_bindir}/ld{,.bfd}
279
280 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
281
282 %find_lang bfd
283 %find_lang binutils
284 %find_lang gas
285 %find_lang gprof
286 touch ld.lang
287 %find_lang ld
288 %if %{with gold}
289 %find_lang gold
290 %endif
291 %find_lang opcodes
292 cat bfd.lang opcodes.lang > %{name}-libs.lang
293 cat gas.lang gprof.lang ld.lang >> %{name}.lang
294
295 %clean
296 rm -rf $RPM_BUILD_ROOT
297
298 %post   -p /sbin/postshell
299 -/usr/sbin/fix-info-dir -c %{_infodir}
300
301 %postun -p /sbin/postshell
302 -/usr/sbin/fix-info-dir -c %{_infodir}
303
304 %post   libs -p /sbin/ldconfig
305 %postun libs -p /sbin/ldconfig
306
307 %post   devel -p /sbin/postshell
308 -/usr/sbin/fix-info-dir -c %{_infodir}
309
310 %postun devel -p /sbin/postshell
311 -/usr/sbin/fix-info-dir -c %{_infodir}
312
313 %files -f %{name}.lang
314 %defattr(644,root,root,755)
315 %doc README
316 %attr(755,root,root) %{_bindir}/addr2line
317 %attr(755,root,root) %{_bindir}/ar
318 %attr(755,root,root) %{_bindir}/as
319 %attr(755,root,root) %{_bindir}/c++filt
320 %attr(755,root,root) %{_bindir}/elfedit
321 %attr(755,root,root) %{_bindir}/gprof
322 %attr(755,root,root) %{_bindir}/ld
323 %attr(755,root,root) %{_bindir}/ld.bfd
324 %attr(755,root,root) %{_bindir}/nm
325 %attr(755,root,root) %{_bindir}/objcopy
326 %attr(755,root,root) %{_bindir}/objdump
327 %attr(755,root,root) %{_bindir}/ranlib
328 %attr(755,root,root) %{_bindir}/readelf
329 %attr(755,root,root) %{_bindir}/size
330 %attr(755,root,root) %{_bindir}/strings
331 %attr(755,root,root) %{_bindir}/strip
332 %{_infodir}/as.info*
333 %{_infodir}/binutils.info*
334 %{_infodir}/configure.info*
335 %{_infodir}/gprof.info*
336 %{_infodir}/ld.info*
337 %{_prefix}/lib/ldscripts
338 %{_mandir}/man1/*
339 %lang(cs) %{_mandir}/cs/man1/*
340 %lang(de) %{_mandir}/de/man1/*
341 %lang(es) %{_mandir}/es/man1/*
342 %lang(fi) %{_mandir}/fi/man1/*
343 %lang(fr) %{_mandir}/fr/man1/*
344 %lang(hu) %{_mandir}/hu/man1/*
345 %lang(ja) %{_mandir}/ja/man1/*
346 %lang(pl) %{_mandir}/pl/man1/*
347
348 %files libs -f %{name}-libs.lang
349 %defattr(644,root,root,755)
350 %attr(755,root,root) %{_libdir}/libbfd-*.so
351 %attr(755,root,root) %{_libdir}/libopcodes-*.so
352
353 %files devel
354 %defattr(644,root,root,755)
355 %attr(755,root,root) %{_libdir}/libbfd.so
356 %attr(755,root,root) %{_libdir}/libopcodes.so
357 %{_libdir}/libbfd.la
358 %{_libdir}/libopcodes.la
359 %{_libdir}/libiberty.a
360 %{_includedir}/ansidecl.h
361 %{_includedir}/bfd.h
362 %{_includedir}/bfdlink.h
363 %{_includedir}/dis-asm.h
364 %{_includedir}/libiberty.h
365 %{_includedir}/symcat.h
366 %{_infodir}/bfd.info*
367
368 %files static
369 %defattr(644,root,root,755)
370 %{_libdir}/libbfd.a
371 %{_libdir}/libopcodes.a
372
373 %files gasp
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_bindir}/gasp
376 %{_infodir}/gasp.info*
377
378 %if %{with gold}
379 %files gold -f gold.lang
380 %defattr(644,root,root,755)
381 %doc gold/{ChangeLog,README,TODO}
382 %attr(755,root,root) %{_bindir}/ld.gold
383 %endif
This page took 0.061471 seconds and 3 git commands to generate.