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)
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 для побудови виконуваних програм
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
42 BuildRequires: gettext-devel
43 %{?with_gold:BuildRequires: libstdc++-devel >= 6:4.0-1}
44 BuildRequires: perl-tools-pod
46 BuildRequires: sparc32
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)
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.
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.
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.
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.
82 %description -l ru.UTF-8
83 binutils - это набор инструментов, необходимых для компилляции
84 программ. Включает ассемблер, компоновщик и набор других программ для
85 работы с исполняемыми файлами разнообразных форматов.
87 %description -l uk.UTF-8
88 binutils - це набір інструментів, необхідних для компіляції програм.
89 Містить асемблер, компоновщик та інші програми, необхідні для роботи з
90 виконуваними файлами різних форматів.
93 Summary: GNU binutils shared libraries
94 Summary(pl.UTF-8): Biblioteki współdzielone GNU binutils
96 Conflicts: binutils < 3:2.17.50.0.8-3
99 GNU binutils shared libraries (libbfd, libopcodes).
101 %description libs -l pl.UTF-8
102 Biblioteki współdzielone GNU binutils (libbfd, libopcodes).
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}
111 Development files for GNU binutils libraries (libbfd, libopcodes) and
112 static libiberty library.
114 %description devel -l pl.UTF-8
115 Pliki programistyczne bibliotek GNU binutils (libbfd, libopcodes) oraz
116 statyczna biblioteka libiberty.
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}
125 Static GNU binutils libraries (libbfd, libopcodes).
127 %description static -l pl.UTF-8
128 Biblioteki statyczne GNU binutils (libbfd, libopcodes).
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}
137 GASP - old preprocessor for assembly programs. It's officially
138 obsoleted, but it's still needed to build some packages.
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
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}
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.
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
161 - MEMORY regions in linker scripts
162 - MRI compatible linker scripts
163 - cross-reference reports (--cref)
164 - various other minor options.
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.
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 -
176 - regiony typu MEMORY w skryptach linkera
177 - skrypty linkera kompatybilne z MRI
178 - raporty odsyłaczy (--cref)
179 - kilka innych, mniej istotnych opcji.
186 %{?with_pax:%patch3 -p1}
193 # file contains hacks for ac 2.59 only
194 rm config/override.m4
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
204 %{__aclocal} -I .. -I ../config -I ../bfd
205 %{__automake} Makefile
206 %{__automake} doc/Makefile
221 TARGETS=sparc64-linux
223 %{?addtargets:TARGETS="%{addtargets}"}
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
233 ./configure %{_target_platform} \
236 --enable-build-warnings=,-Wno-missing-prototypes \
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}"`} \
245 --enable-64-bit-bfd \
247 %{?with_allarchs:--enable-64-bit-bfd} \
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} \
251 --enable-gold=both/ld
259 rm -rf $RPM_BUILD_ROOT
262 DESTDIR=$RPM_BUILD_ROOT
264 rm $RPM_BUILD_ROOT%{_infodir}/standards.info*
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
270 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
272 install include/libiberty.h $RPM_BUILD_ROOT%{_includedir}
273 install libiberty/pic/libiberty.a $RPM_BUILD_ROOT%{_libdir}
275 # remove evil -L pointing inside builder's home
276 perl -pi -e 's@-L[^ ]*/pic @@g' $RPM_BUILD_ROOT%{_libdir}/libbfd.la
278 [ -x $RPM_BUILD_ROOT%{_bindir}/ld.bfd ] || ln $RPM_BUILD_ROOT%{_bindir}/ld{,.bfd}
280 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
292 cat bfd.lang opcodes.lang > %{name}-libs.lang
293 cat gas.lang gprof.lang ld.lang >> %{name}.lang
296 rm -rf $RPM_BUILD_ROOT
298 %post -p /sbin/postshell
299 -/usr/sbin/fix-info-dir -c %{_infodir}
301 %postun -p /sbin/postshell
302 -/usr/sbin/fix-info-dir -c %{_infodir}
304 %post libs -p /sbin/ldconfig
305 %postun libs -p /sbin/ldconfig
307 %post devel -p /sbin/postshell
308 -/usr/sbin/fix-info-dir -c %{_infodir}
310 %postun devel -p /sbin/postshell
311 -/usr/sbin/fix-info-dir -c %{_infodir}
313 %files -f %{name}.lang
314 %defattr(644,root,root,755)
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
333 %{_infodir}/binutils.info*
334 %{_infodir}/configure.info*
335 %{_infodir}/gprof.info*
337 %{_prefix}/lib/ldscripts
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/*
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
354 %defattr(644,root,root,755)
355 %attr(755,root,root) %{_libdir}/libbfd.so
356 %attr(755,root,root) %{_libdir}/libopcodes.so
358 %{_libdir}/libopcodes.la
359 %{_libdir}/libiberty.a
360 %{_includedir}/ansidecl.h
362 %{_includedir}/bfdlink.h
363 %{_includedir}/dis-asm.h
364 %{_includedir}/libiberty.h
365 %{_includedir}/symcat.h
366 %{_infodir}/bfd.info*
369 %defattr(644,root,root,755)
371 %{_libdir}/libopcodes.a
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_bindir}/gasp
376 %{_infodir}/gasp.info*
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