]> git.pld-linux.org Git - packages/binutils.git/blob - binutils.spec
9a78e16fc97815ddedeed60e46c79db974dec31e
[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.20.51.0.6
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:  8a5b135a6dcdd891a32a7c67bb401fe8
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 CC="%{__cc}"; export CC
228 %ifarch sparc
229 sparc32 \
230 %endif
231 ./configure %{_target_platform} \
232         --disable-debug \
233         --disable-werror \
234         --enable-build-warnings=,-Wno-missing-prototypes \
235         --enable-shared \
236         --prefix=%{_prefix} \
237         --libdir=%{_libdir} \
238         --infodir=%{_infodir} \
239         --mandir=%{_mandir} \
240         --with-tooldir=%{_prefix} \
241         %{!?with_allarchs:`[ -n "${TARGETS}" ] && echo "--enable-targets=${TARGETS}"`} \
242 %ifarch sparc
243         --enable-64-bit-bfd \
244 %else
245         %{?with_allarchs:--enable-64-bit-bfd} \
246 %endif
247         %{?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} \
248 %if %{with gold}
249         --enable-gold=both/bfd
250 %else
251         --disable-gold
252 %endif
253
254 %{__make}
255
256 %install
257 rm -rf $RPM_BUILD_ROOT
258
259 %{__make} install \
260         DESTDIR=$RPM_BUILD_ROOT
261
262 rm $RPM_BUILD_ROOT%{_infodir}/standards.info*
263
264 # remove these man pages unless we cross-build for win*/netware platforms.
265 # however, this should be done in Makefiles.
266 rm $RPM_BUILD_ROOT%{_mandir}/man1/{dlltool,nlmconv,windres}.1
267
268 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
269
270 install include/libiberty.h $RPM_BUILD_ROOT%{_includedir}
271 install libiberty/pic/libiberty.a $RPM_BUILD_ROOT%{_libdir}
272
273 # remove evil -L pointing inside builder's home
274 perl -pi -e 's@-L[^ ]*/pic @@g' $RPM_BUILD_ROOT%{_libdir}/libbfd.la
275
276 [ -x $RPM_BUILD_ROOT%{_bindir}/ld.bfd ] || ln $RPM_BUILD_ROOT%{_bindir}/ld{,.bfd}
277
278 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
279
280 %find_lang bfd
281 %find_lang binutils
282 %find_lang gas
283 %find_lang gprof
284 touch ld.lang
285 %find_lang ld
286 %if %{with gold}
287 %find_lang gold
288 %endif
289 %find_lang opcodes
290 cat bfd.lang opcodes.lang > %{name}-libs.lang
291 cat gas.lang gprof.lang ld.lang >> %{name}.lang
292
293 %clean
294 rm -rf $RPM_BUILD_ROOT
295
296 %post   -p /sbin/postshell
297 -/usr/sbin/fix-info-dir -c %{_infodir}
298
299 %postun -p /sbin/postshell
300 -/usr/sbin/fix-info-dir -c %{_infodir}
301
302 %post   libs -p /sbin/ldconfig
303 %postun libs -p /sbin/ldconfig
304
305 %post   devel -p /sbin/postshell
306 -/usr/sbin/fix-info-dir -c %{_infodir}
307
308 %postun devel -p /sbin/postshell
309 -/usr/sbin/fix-info-dir -c %{_infodir}
310
311 %files -f %{name}.lang
312 %defattr(644,root,root,755)
313 %doc README
314 %attr(755,root,root) %{_bindir}/addr2line
315 %attr(755,root,root) %{_bindir}/ar
316 %attr(755,root,root) %{_bindir}/as
317 %attr(755,root,root) %{_bindir}/c++filt
318 %attr(755,root,root) %{_bindir}/elfedit
319 %attr(755,root,root) %{_bindir}/gprof
320 %attr(755,root,root) %{_bindir}/ld
321 %attr(755,root,root) %{_bindir}/ld.bfd
322 %attr(755,root,root) %{_bindir}/nm
323 %attr(755,root,root) %{_bindir}/objcopy
324 %attr(755,root,root) %{_bindir}/objdump
325 %attr(755,root,root) %{_bindir}/ranlib
326 %attr(755,root,root) %{_bindir}/readelf
327 %attr(755,root,root) %{_bindir}/size
328 %attr(755,root,root) %{_bindir}/strings
329 %attr(755,root,root) %{_bindir}/strip
330 %{_infodir}/as.info*
331 %{_infodir}/binutils.info*
332 %{_infodir}/configure.info*
333 %{_infodir}/gprof.info*
334 %{_infodir}/ld.info*
335 %{_prefix}/lib/ldscripts
336 %{_mandir}/man1/*
337 %lang(cs) %{_mandir}/cs/man1/*
338 %lang(de) %{_mandir}/de/man1/*
339 %lang(es) %{_mandir}/es/man1/*
340 %lang(fi) %{_mandir}/fi/man1/*
341 %lang(fr) %{_mandir}/fr/man1/*
342 %lang(hu) %{_mandir}/hu/man1/*
343 %lang(ja) %{_mandir}/ja/man1/*
344 %lang(pl) %{_mandir}/pl/man1/*
345
346 %files libs -f %{name}-libs.lang
347 %defattr(644,root,root,755)
348 %attr(755,root,root) %{_libdir}/libbfd-*.so
349 %attr(755,root,root) %{_libdir}/libopcodes-*.so
350
351 %files devel
352 %defattr(644,root,root,755)
353 %attr(755,root,root) %{_libdir}/libbfd.so
354 %attr(755,root,root) %{_libdir}/libopcodes.so
355 %{_libdir}/libbfd.la
356 %{_libdir}/libopcodes.la
357 %{_libdir}/libiberty.a
358 %{_includedir}/ansidecl.h
359 %{_includedir}/bfd.h
360 %{_includedir}/bfdlink.h
361 %{_includedir}/dis-asm.h
362 %{_includedir}/libiberty.h
363 %{_includedir}/symcat.h
364 %{_infodir}/bfd.info*
365
366 %files static
367 %defattr(644,root,root,755)
368 %{_libdir}/libbfd.a
369 %{_libdir}/libopcodes.a
370
371 %files gasp
372 %defattr(644,root,root,755)
373 %attr(755,root,root) %{_bindir}/gasp
374 %{_infodir}/gasp.info*
375
376 %if %{with gold}
377 %files gold -f gold.lang
378 %defattr(644,root,root,755)
379 %doc gold/{ChangeLog,README,TODO}
380 %attr(755,root,root) %{_bindir}/ld.gold
381 %endif
This page took 0.059235 seconds and 3 git commands to generate.