source: spec/trunk/SPECS/binutils.spec@ 1010

Last change on this file since 1010 was 777, checked in by Silvan Scherrer, 9 years ago

spec: binutils: don't enable plugins, fix dbg package

File size: 11.9 KB
Line 
1#define svn_url e:/trees/binutils/trunk
2%define svn_url http://svn.netlabs.org/repos/ports/binutils/trunk
3%define svn_rev 1587
4
5# rpmbuild parameters:
6# --define "binutils_target arm-linux-gnu" to create arm-linux-gnu-binutils.
7# --with debug: Build without optimizations and without splitting the debuginfo.
8# --without testsuite: Do not run the testsuite. Default is to run it.
9# --with testsuite: Run the testsuite. Default --with debug is not to run it.
10
11# we don't run the testsuit, as there are dependencies we don't have atm
12%define _without_testsuite 1
13
14%if 0%{!?binutils_target:1}
15# we always use _build, as target_platform isn't recognised by configure
16# define binutils_target %{_target_platform}
17%define binutils_target %{_build}
18%define isnative 1
19%define enable_shared 1
20%else
21%define cross %{binutils_target}-
22%define isnative 0
23%define enable_shared 0
24%endif
25# BZ 1124342: Provide a way to enable deterministic archives.
26# BZ 1195883: But do not do this by default.
27%define enable_deterministic_archives 0
28
29
30Summary: A GNU collection of binary utilities
31Name: %{?cross}binutils%{?_with_debug:-debug}
32Version: 2.25
33Release: 1%{?dist}
34License: GPLv3+
35Group: Development/Tools
36URL: http://sources.redhat.com/binutils
37
38Source: %{name}-%{version}%{?svn_rev:-r%{svn_rev}}.zip
39Vendor: bww bitwise works GmbH
40
41Provides: bundled(libiberty)
42
43# BZ 1173780: Building GOLD for PPC is not working at the moment.
44# define gold_arches %ix86 x86_64 %arm aarch64 ppc* %{power64}
45%define gold_arches %ix86 x86_64 %arm aarch64
46
47# we don't build on elf, so no gold for us
48# ifarch %gold_arches
49# define build_gold both
50# else
51%define build_gold no
52# endif
53
54%if 0%{?_with_debug:1}
55# Define this if you want to skip the strip step and preserve debug info.
56# Useful for testing.
57%define __debug_install_post : > %{_builddir}/%{?buildsubdir}/debugfiles.list
58%define debug_package %{nil}
59%define run_testsuite 0%{?_with_testsuite:1}
60%else
61%define run_testsuite 0%{!?_without_testsuite:1}
62%endif
63
64BuildRequires: texinfo >= 4.0, gettext, flex, bison, zlib-devel
65# BZ 920545: We need pod2man in order to build the manual pages.
66# BuildRequires: /@unixroot/usr/bin/pod2man
67# Required for: ld-bootstrap/bootstrap.exp bootstrap with --static
68# It should not be required for: ld-elf/elf.exp static {preinit,init,fini} array
69%if %{run_testsuite}
70# relro_test.sh uses dc which is part of the bc rpm, hence its inclusion here.
71BuildRequires: dejagnu, zlib-static, glibc-static, sharutils, bc
72%if "%{build_gold}" == "both"
73# The GOLD testsuite needs a static libc++
74BuildRequires: libstdc++-static
75%endif
76%endif
77Conflicts: gcc-c++ < 4.0.0
78#Requires(post): /sbin/install-info
79#Requires(preun): /sbin/install-info
80%ifarch ia64
81Obsoletes: gnupro <= 1117-1
82%endif
83
84
85# The higher of these two numbers determines the default ld.
86%{!?ld_bfd_priority: %define ld_bfd_priority 50}
87%{!?ld_gold_priority:%define ld_gold_priority 30}
88
89%if "%{build_gold}" == "both"
90Requires(post): coreutils
91Requires(post): %{_sbindir}/alternatives
92Requires(preun): %{_sbindir}/alternatives
93%endif
94
95# On ARM EABI systems, we do want -gnueabi to be part of the
96# target triple.
97%ifnarch %{arm}
98%define _gnu %{nil}
99%endif
100
101%description
102Binutils is a collection of binary utilities, including ar (for
103creating, modifying and extracting from archives), as (a family of GNU
104assemblers), gprof (for displaying call graph profile data), ld (the
105GNU linker), nm (for listing symbols from object files), objcopy (for
106copying and translating object files), objdump (for displaying
107information from object files), ranlib (for generating an index for
108the contents of an archive), readelf (for displaying detailed
109information about binary files), size (for listing the section sizes
110of an object or archive file), strings (for listing printable strings
111from files), strip (for discarding symbols), and addr2line (for
112converting addresses to file and line).
113
114%package devel
115Summary: BFD and opcodes dynamic libraries and header files
116Group: System Environment/Libraries
117Conflicts: binutils < 2.17.50.0.3-4
118#Requires(post): /sbin/install-info
119#Requires(preun): /sbin/install-info
120Requires: zlib-devel
121Requires: binutils = %{version}-%{release}
122# BZ 1215242: We need touch...
123Requires: coreutils
124
125%description devel
126This package contains BFD and opcodes static and dynamic libraries.
127
128The dynamic libraries are in this package, rather than a seperate
129base package because they are actually linker scripts that force
130the use of the static libraries. This is because the API of the
131BFD library is too unstable to be used dynamically.
132
133The static libraries are here because they are now needed by the
134dynamic libraries.
135
136Developers starting new projects are strongly encouraged to consider
137using libelf instead of BFD.
138
139%debug_package
140
141%prep
142%if %{?svn_rev:%(sh -c 'if test -f "%{_sourcedir}/%{name}-%{version}-r%{svn_rev}.zip" ; then echo 1 ; else echo 0 ; fi')}%{!?svn_rev):0}
143%setup -q
144%else
145%setup -n "%{name}-%{version}" -Tc
146svn export %{?svn_rev:-r %{svn_rev}} %{svn_url} . --force
147rm -f "%{_sourcedir}/%{name}-%{version}%{?svn_rev:-r%{svn_rev}}.zip"
148(cd .. && zip -SrX9 "%{_sourcedir}/%{name}-%{version}%{?svn_rev:-r%{svn_rev}}.zip" "%{name}-%{version}")
149%endif
150
151autogen.sh
152
153%build
154echo target is %{binutils_target}
155%ifarch %{power64}
156export CFLAGS="$RPM_OPT_FLAGS -Wno-error"
157%else
158export CFLAGS="$RPM_OPT_FLAGS"
159%endif
160CARGS=
161
162case %{binutils_target} in i?86*|sparc*|ppc*|s390*|sh*|arm*|aarch64*)
163 CARGS="$CARGS --enable-64-bit-bfd"
164 ;;
165esac
166
167case %{binutils_target} in ia64*)
168 CARGS="$CARGS --enable-targets=i386-linux"
169 ;;
170esac
171
172case %{binutils_target} in ppc*|ppc64*)
173 CARGS="$CARGS --enable-targets=spu"
174 ;;
175esac
176
177case %{binutils_target} in ppc64-*)
178 CARGS="$CARGS --enable-targets=powerpc64le-linux"
179 ;;
180esac
181
182case %{binutils_target} in ppc64le*)
183 CARGS="$CARGS --enable-targets=powerpc-linux"
184 ;;
185esac
186
187%if 0%{?_with_debug:1}
188CFLAGS="$CFLAGS -O0 -ggdb2 -Wno-error -D_FORTIFY_SOURCE=0"
189%define enable_shared 0
190%endif
191
192export LDFLAGS=" -Zhigh-mem -Zomf -Zargs-wild -Zargs-resp"
193
194# We could optimize the cross builds size by --enable-shared but the produced
195# binaries may be less convenient in the embedded environment.
196# the below configure switchs we don't use
197# --build=%{_target_platform} --host=%{_target_platform} \
198%configure \
199 --target=%{binutils_target} \
200%ifarch %gold_arches
201%if "%{build_gold}" == "both"
202 --enable-gold=default --enable-ld \
203%else
204 --enable-ld \
205%endif
206%endif
207%if !%{isnative}
208 --enable-targets=%{_host} \
209 --with-sysroot=%{_prefix}/%{binutils_target}/sys-root \
210 --program-prefix=%{cross} \
211%endif
212%if %{enable_shared}
213 --enable-shared --disable-static \
214%else
215 --disable-shared \
216%endif
217%if %{enable_deterministic_archives}
218 --enable-deterministic-archives \
219%else
220 --enable-deterministic-archives=no \
221%endif
222 $CARGS \
223 --enable-plugins=no \
224 --with-bugurl=http://trac.netlabs.org/ports/
225make %{_smp_mflags} tooldir=%{_prefix} all
226make %{_smp_mflags} tooldir=%{_prefix} info
227
228# Do not use %%check as it is run after %%install where libbfd.so is rebuild
229# with -fvisibility=hidden no longer being usable in its shared form.
230%if !%{run_testsuite}
231echo ====================TESTSUITE DISABLED=========================
232%else
233make -k check < /dev/null || :
234echo ====================TESTING=========================
235cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum
236echo ====================TESTING END=====================
237for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log}
238do
239 ln $file binutils-%{_target_platform}-$(basename $file) || :
240done
241tar cjf binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}-*.{sum,log}
242uuencode binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}.tar.bz2
243rm -f binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}-*.{sum,log}
244%endif
245
246%install
247rm -rf %{buildroot}
248make install DESTDIR=%{buildroot}
249%if %{isnative}
250make prefix=%{buildroot}%{_prefix} infodir=%{buildroot}%{_infodir} install-info
251
252#install -m 644 bfd/libbfd.a %{buildroot}%{_libdir}
253#install -m 644 libiberty/libiberty.a %{buildroot}%{_libdir}
254install -m 644 include/libiberty.h %{buildroot}%{_prefix}/include
255#install -m 644 opcodes/libopcodes.a %{buildroot}%{_libdir}
256# Remove Windows/Novell only man pages
257rm -f %{buildroot}%{_mandir}/man1/dlltool*
258rm -f %{buildroot}%{_mandir}/man1/nlmconv*
259rm -f %{buildroot}%{_mandir}/man1/windmc*
260
261%if %{enable_shared}
262chmod +x %{buildroot}%{_libdir}/*.dll
263%endif
264
265# Remove libtool files, which reference the .dll libs
266rm -f %{buildroot}%{_libdir}/*.la
267
268%else # !%{isnative}
269# For cross-binutils we drop the documentation.
270rm -rf %{buildroot}%{_infodir}
271# We keep these as one can have native + cross binutils of different versions.
272#rm -rf %{buildroot}%{_prefix}/share/locale
273#rm -rf %{buildroot}%{_mandir}
274rm -rf %{buildroot}%{_libdir}/libiberty.a
275%endif # !%{isnative}
276
277# This one comes from gcc
278rm -f %{buildroot}%{_infodir}/dir
279#rm -rf %{buildroot}%{_prefix}/%{binutils_target}
280
281%find_lang %{?cross}binutils
282%find_lang %{?cross}opcodes
283%find_lang %{?cross}bfd
284%find_lang %{?cross}gas
285%find_lang %{?cross}gprof
286cat %{?cross}opcodes.lang >> %{?cross}binutils.lang
287cat %{?cross}bfd.lang >> %{?cross}binutils.lang
288cat %{?cross}gas.lang >> %{?cross}binutils.lang
289cat %{?cross}gprof.lang >> %{?cross}binutils.lang
290
291if [ -x ld/ld-new ]; then
292 %find_lang %{?cross}ld
293 cat %{?cross}ld.lang >> %{?cross}binutils.lang
294fi
295if [ -x gold/ld-new ]; then
296 %find_lang %{?cross}gold
297 cat %{?cross}gold.lang >> %{?cross}binutils.lang
298fi
299
300%clean
301rm -rf %{buildroot}
302
303%post
304%if "%{build_gold}" == "both"
305%__rm -f %{_bindir}/%{?cross}ld
306%{_sbindir}/alternatives --install %{_bindir}/%{?cross}ld %{?cross}ld \
307 %{_bindir}/%{?cross}ld.bfd %{ld_bfd_priority}
308%{_sbindir}/alternatives --install %{_bindir}/%{?cross}ld %{?cross}ld \
309 %{_bindir}/%{?cross}ld.gold %{ld_gold_priority}
310%{_sbindir}/alternatives --auto %{?cross}ld
311%endif
312%if %{isnative}
313#/sbin/ldconfig
314# For --excludedocs:
315if [ -e %{_infodir}/binutils.info.gz ]
316then
317 %{_sbindir}/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz
318 %{_sbindir}/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
319 %{_sbindir}/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
320 %{_sbindir}/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
321fi
322%endif # %{isnative}
323exit 0
324
325%preun
326%if "%{build_gold}" == "both"
327if [ $1 = 0 ]; then
328 %{_sbindir}/alternatives --remove %{?cross}ld %{_bindir}/%{?cross}ld.bfd
329 %{_sbindir}/alternatives --remove %{?cross}ld %{_bindir}/%{?cross}ld.gold
330fi
331%endif
332%if %{isnative}
333if [ $1 = 0 ]; then
334 if [ -e %{_infodir}/binutils.info.gz ]
335 then
336 %{_sbindir}/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
337 %{_sbindir}/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
338 %{_sbindir}/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
339 %{_sbindir}/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
340 fi
341fi
342%endif
343exit 0
344
345%if %{isnative}
346#%postun -p /sbin/ldconfig
347%endif # %{isnative}
348
349%files -f %{?cross}binutils.lang
350%defattr(-,root,root,-)
351%doc README
352%{_bindir}/%{?cross}[!l]*.exe
353%{_prefix}/%{binutils_target}/bin/%{?cross}[!l]*.exe
354%if "%{build_gold}" == "both"
355%{_bindir}/%{?cross}ld*.exe
356%ghost %{_bindir}/%{?cross}ld
357%else
358#%{_bindir}/%{?cross}ld*.exe
359%endif
360%{_mandir}/man1/*
361%if %{enable_shared}
362%{_libdir}/*.dll
363%endif
364
365%if %{isnative}
366%{_infodir}/[^b]*info*
367%{_infodir}/binutils*info*
368
369%files devel
370%defattr(-,root,root,-)
371%{_prefix}/include/*
372%{_libdir}/*_dll.a
373%{_infodir}/bfd*info*
374
375%endif # %{isnative}
376
377%changelog
378* Tue May 31 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> 2.25-1
379- update to version 2.25
380
381* Wed Oct 5 2011 yd <yd@os2power.com> 2.21-1
382- Initial version
Note: See TracBrowser for help on using the repository browser.