Gentoo Archives: gentoo-commits

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/binutils/
Date: Sat, 17 Jul 2021 11:22:36
Message-Id: 1626520948.b0a39e54065f7eda2dfc719ec05e270fa7e23e38.slyfox@gentoo
1 commit: b0a39e54065f7eda2dfc719ec05e270fa7e23e38
2 Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jul 17 10:58:55 2021 +0000
4 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
5 CommitDate: Sat Jul 17 11:22:28 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0a39e54
7
8 sys-devel/binutils: drop old
9
10 Package-Manager: Portage-3.0.20, Repoman-3.0.3
11 Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
12
13 sys-devel/binutils/Manifest | 1 -
14 sys-devel/binutils/binutils-2.32-r1.ebuild | 434 -----------------------------
15 2 files changed, 435 deletions(-)
16
17 diff --git a/sys-devel/binutils/Manifest b/sys-devel/binutils/Manifest
18 index 6db5ab7b318..4c5f886c557 100644
19 --- a/sys-devel/binutils/Manifest
20 +++ b/sys-devel/binutils/Manifest
21 @@ -1,4 +1,3 @@
22 -DIST binutils-2.32-patches-2.tar.xz 145672 BLAKE2B 8218e621f99cb4bcd1638c3011449b94480d207eaeb79cf75c0072e0f1a86bfd1603fc4515bc40d3ac1921a18b9a211b20568f59b11b13eb44e6cff1329c5af9 SHA512 55c25a603f6175af3ade6848e5c1faba06a147d72e9a4f53d44502d97db76499485a67b278a654d18884714a7bf7b360c77c9e42dba3cdc188f805bfe461f09f
23 DIST binutils-2.32-patches-3.tar.xz 151372 BLAKE2B 70d5f78d9f3e3bf9ff096b6f24babcc35c63395a5e1155a981a5ceb4b7a5706ad2ee0c77c74e910fc0eefeaed19763113186deb9665eed538dc3b8e227bef12d SHA512 5e91eff63332c2aca86a82a287ca4959a6098065ed88078265a3d79a2c851abd113e9736b75d8102a208996ed1191b0e23569921217ece975f1d9005a55afd0d
24 DIST binutils-2.32.tar.xz 20774880 BLAKE2B d1bdbd9c8487c091665c197974ce4bdf520b7a67ed6997a81b87e6a0af9514a091458244f583acec5ae580ac2ee5e908f67f483b8e5263cd18ced794cb235da6 SHA512 d326408f12a03d9a61a9de56584c2af12f81c2e50d2d7e835d51565df8314df01575724afa1e43bd0db45cfc9916b41519b67dfce03232aa4978704492a6994a
25 DIST binutils-2.33.1-patches-2.tar.xz 18636 BLAKE2B 0e0757329b6a83aeff4f4c450c95e73fd48fcc89f83e63f294568632bee0972552cf2f57494352c5d9a7c16a51cdbc4108b38fa6028d4388c8e76046b3da9212 SHA512 d982f68d1f5fdb384309a2a1b7426bf840a90e7a85b37229b4223b62c36cab9dd9ec0c08382c85c68adf996dec21133df3180a2fc649363adae8645f8282f71d
26
27 diff --git a/sys-devel/binutils/binutils-2.32-r1.ebuild b/sys-devel/binutils/binutils-2.32-r1.ebuild
28 deleted file mode 100644
29 index 7bd6b4fbdc0..00000000000
30 --- a/sys-devel/binutils/binutils-2.32-r1.ebuild
31 +++ /dev/null
32 @@ -1,434 +0,0 @@
33 -# Copyright 1999-2021 Gentoo Authors
34 -# Distributed under the terms of the GNU General Public License v2
35 -
36 -EAPI=6
37 -
38 -inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs versionator
39 -
40 -DESCRIPTION="Tools necessary to build programs"
41 -HOMEPAGE="https://sourceware.org/binutils/"
42 -LICENSE="GPL-3+"
43 -# USE="+cxx" is a transitional flag until llvm migrates to new flags:
44 -# bug #677888
45 -IUSE="+cxx default-gold doc +gold multitarget +nls +plugins static-libs test"
46 -REQUIRED_USE="cxx? ( gold plugins ) default-gold? ( gold )"
47 -
48 -# Variables that can be set here:
49 -# PATCH_VER - the patchset version
50 -# Default: empty, no patching
51 -# PATCH_BINUTILS_VER - the binutils version in the patchset name
52 -# - Default: PV
53 -# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
54 -# for the patchsets
55 -# Default: dilfridge :)
56 -
57 -PATCH_VER=2
58 -PATCH_DEV=dilfridge
59 -
60 -case ${PV} in
61 - 9999)
62 - EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
63 - inherit git-r3
64 - S=${WORKDIR}/binutils
65 - EGIT_CHECKOUT_DIR=${S}
66 - SLOT=${PV}
67 - ;;
68 - *)
69 - SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz"
70 - SLOT=$(get_version_component_range 1-2)
71 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
72 - ;;
73 -esac
74 -
75 -#
76 -# The Gentoo patchset
77 -#
78 -PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
79 -PATCH_DEV=${PATCH_DEV:-slyfox}
80 -
81 -[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
82 - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
83 -
84 -# Disable gold testsuite since it always fails.
85 -PATCHES=( "${FILESDIR}/${PN}-2.29.1-nogoldtest.patch" )
86 -
87 -#
88 -# The cross-compile logic
89 -#
90 -export CTARGET=${CTARGET:-${CHOST}}
91 -if [[ ${CTARGET} == ${CHOST} ]] ; then
92 - if [[ ${CATEGORY} == cross-* ]] ; then
93 - export CTARGET=${CATEGORY#cross-}
94 - fi
95 -fi
96 -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
97 -
98 -#
99 -# The dependencies
100 -#
101 -RDEPEND="
102 - >=sys-devel/binutils-config-3
103 - sys-libs/zlib
104 -"
105 -DEPEND="${RDEPEND}
106 - doc? ( sys-apps/texinfo )
107 - test? ( dev-util/dejagnu )
108 - nls? ( sys-devel/gettext )
109 - sys-devel/flex
110 - virtual/yacc
111 -"
112 -
113 -RESTRICT="!test? ( test )"
114 -
115 -MY_BUILDDIR=${WORKDIR}/build
116 -
117 -src_unpack() {
118 - case ${PV} in
119 - *9999)
120 - git-r3_src_unpack
121 - ;;
122 - *)
123 - ;;
124 - esac
125 - default
126 - mkdir -p "${MY_BUILDDIR}"
127 -}
128 -
129 -src_prepare() {
130 - if [[ ! -z ${PATCH_VER} ]] ; then
131 - # Use upstream patch to enable development mode
132 - rm -v "${WORKDIR}/patch"/0000-Gentoo-Git-is-development.patch || die
133 -
134 - einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}"
135 - eapply "${WORKDIR}/patch"/*.patch
136 - fi
137 -
138 - # This check should probably go somewhere else, like pkg_pretend.
139 - if [[ ${CTARGET} == *-uclibc* ]] ; then
140 - if grep -qs 'linux-gnu' "${S}"/ltconfig ; then
141 - die "sorry, but this binutils doesn't yet support uClibc :("
142 - fi
143 - fi
144 -
145 - # Make sure our explicit libdir paths don't get clobbered. #562460
146 - sed -i \
147 - -e 's:@bfdlibdir@:@libdir@:g' \
148 - -e 's:@bfdincludedir@:@includedir@:g' \
149 - {bfd,opcodes}/Makefile.in || die
150 -
151 - # Fix locale issues if possible #122216
152 - if [[ -e ${FILESDIR}/binutils-configure-LANG.patch ]] ; then
153 - einfo "Fixing misc issues in configure files"
154 - for f in $(find "${S}" -name configure -exec grep -l 'autoconf version 2.13' {} +) ; do
155 - ebegin " Updating ${f/${S}\/}"
156 - patch "${f}" "${FILESDIR}"/binutils-configure-LANG.patch >& "${T}"/configure-patch.log \
157 - || eerror "Please file a bug about this"
158 - eend $?
159 - done
160 - fi
161 -
162 - # Fix conflicts with newer glibc #272594
163 - if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
164 - sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c
165 - fi
166 -
167 - # Apply things from PATCHES and user dirs
168 - default
169 -
170 - # Run misc portage update scripts
171 - gnuconfig_update
172 - elibtoolize --portage --no-uclibc
173 -}
174 -
175 -toolchain-binutils_bugurl() {
176 - printf "https://bugs.gentoo.org/"
177 -}
178 -toolchain-binutils_pkgversion() {
179 - printf "Gentoo ${PV}"
180 - [[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
181 -}
182 -
183 -src_configure() {
184 - # Setup some paths
185 - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
186 - INCPATH=${LIBPATH}/include
187 - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
188 - if is_cross ; then
189 - TOOLPATH=/usr/${CHOST}/${CTARGET}
190 - else
191 - TOOLPATH=/usr/${CTARGET}
192 - fi
193 - BINPATH=${TOOLPATH}/binutils-bin/${PV}
194 -
195 - # Make sure we filter $LINGUAS so that only ones that
196 - # actually work make it through #42033
197 - strip-linguas -u */po
198 -
199 - # Keep things sane
200 - strip-flags
201 -
202 - local x
203 - echo
204 - for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
205 - einfo "$(printf '%10s' ${x}:) ${!x}"
206 - done
207 - echo
208 -
209 - cd "${MY_BUILDDIR}"
210 - local myconf=()
211 -
212 - if use plugins ; then
213 - myconf+=( --enable-plugins )
214 - fi
215 - # enable gold (installed as ld.gold) and ld's plugin architecture
216 - if use gold ; then
217 - myconf+=( --enable-gold )
218 - if use default-gold; then
219 - myconf+=( --enable-gold=default )
220 - fi
221 - fi
222 -
223 - if use nls ; then
224 - myconf+=( --without-included-gettext )
225 - else
226 - myconf+=( --disable-nls )
227 - fi
228 -
229 - myconf+=( --with-system-zlib )
230 -
231 - # For bi-arch systems, enable a 64bit bfd. This matches
232 - # the bi-arch logic in toolchain.eclass. #446946
233 - # We used to do it for everyone, but it's slow on 32bit arches. #438522
234 - case $(tc-arch) in
235 - ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
236 - esac
237 -
238 - use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
239 -
240 - [[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
241 -
242 - is_cross && myconf+=(
243 - --with-sysroot="${EPREFIX}"/usr/${CTARGET}
244 - --enable-poison-system-directories
245 - )
246 -
247 - # glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
248 - # on everyone in alpha (for now), we'll just enable it when possible
249 - has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
250 - has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
251 -
252 - # mips can't do hash-style=gnu ...
253 - if [[ $(tc-arch) != mips ]] ; then
254 - myconf+=( --enable-default-hash-style=gnu )
255 - fi
256 -
257 - myconf+=(
258 - --prefix="${EPREFIX}"/usr
259 - --host=${CHOST}
260 - --target=${CTARGET}
261 - --datadir="${EPREFIX}"${DATAPATH}
262 - --datarootdir="${EPREFIX}"${DATAPATH}
263 - --infodir="${EPREFIX}"${DATAPATH}/info
264 - --mandir="${EPREFIX}"${DATAPATH}/man
265 - --bindir="${EPREFIX}"${BINPATH}
266 - --libdir="${EPREFIX}"${LIBPATH}
267 - --libexecdir="${EPREFIX}"${LIBPATH}
268 - --includedir="${EPREFIX}"${INCPATH}
269 - --enable-obsolete
270 - --enable-shared
271 - --enable-threads
272 - # Newer versions (>=2.27) offer a configure flag now.
273 - --enable-relro
274 - # Newer versions (>=2.24) make this an explicit option. #497268
275 - --enable-install-libiberty
276 - --disable-werror
277 - --with-bugurl="$(toolchain-binutils_bugurl)"
278 - --with-pkgversion="$(toolchain-binutils_pkgversion)"
279 - $(use_enable static-libs static)
280 - ${EXTRA_ECONF}
281 - # Disable modules that are in a combined binutils/gdb tree. #490566
282 - --disable-{gdb,libdecnumber,readline,sim}
283 - # Strip out broken static link flags.
284 - # https://gcc.gnu.org/PR56750
285 - --without-stage1-ldflags
286 - # Change SONAME to avoid conflict across
287 - # {native,cross}/binutils, binutils-libs. #666100
288 - --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
289 - )
290 - echo ./configure "${myconf[@]}"
291 - "${S}"/configure "${myconf[@]}" || die
292 -
293 - # Prevent makeinfo from running if doc is unset.
294 - if ! use doc ; then
295 - sed -i \
296 - -e '/^MAKEINFO/s:=.*:= true:' \
297 - Makefile || die
298 - fi
299 -}
300 -
301 -src_compile() {
302 - cd "${MY_BUILDDIR}"
303 - # see Note [tooldir hack for ldscripts]
304 - emake tooldir="${EPREFIX}${TOOLPATH}" all
305 -
306 - # only build info pages if the user wants them
307 - if use doc ; then
308 - emake info
309 - fi
310 -
311 - # we nuke the manpages when we're left with junk
312 - # (like when we bootstrap, no perl -> no manpages)
313 - find . -name '*.1' -a -size 0 -delete
314 -}
315 -
316 -src_test() {
317 - cd "${MY_BUILDDIR}"
318 -
319 - # bug 637066
320 - filter-flags -Wall -Wreturn-type
321 -
322 - # enable verbose test run and result logging
323 - emake -k check RUNTESTFLAGS='-a -v' VERBOSE=1
324 -}
325 -
326 -src_install() {
327 - local x d
328 -
329 - cd "${MY_BUILDDIR}"
330 - # see Note [tooldir hack for ldscripts]
331 - emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
332 - rm -rf "${ED}"/${LIBPATH}/bin
333 - use static-libs || find "${ED}" -name '*.la' -delete
334 -
335 - # Newer versions of binutils get fancy with ${LIBPATH} #171905
336 - cd "${ED}"/${LIBPATH}
337 - for d in ../* ; do
338 - [[ ${d} == ../${PV} ]] && continue
339 - mv ${d}/* . || die
340 - rmdir ${d} || die
341 - done
342 -
343 - # Now we collect everything intp the proper SLOT-ed dirs
344 - # When something is built to cross-compile, it installs into
345 - # /usr/$CHOST/ by default ... we have to 'fix' that :)
346 - if is_cross ; then
347 - cd "${ED}"/${BINPATH}
348 - for x in * ; do
349 - mv ${x} ${x/${CTARGET}-}
350 - done
351 -
352 - if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
353 - mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
354 - mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
355 - rm -r "${ED}"/usr/${CHOST}/{include,lib}
356 - fi
357 - fi
358 - insinto ${INCPATH}
359 - local libiberty_headers=(
360 - # Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
361 - demangle.h
362 - dyn-string.h
363 - fibheap.h
364 - hashtab.h
365 - libiberty.h
366 - objalloc.h
367 - splay-tree.h
368 - )
369 - doins "${libiberty_headers[@]/#/${S}/include/}"
370 - if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
371 - mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
372 - rm -r "${ED}"/${LIBPATH}/lib
373 - fi
374 -
375 - # Generate an env.d entry for this binutils
376 - insinto /etc/env.d/binutils
377 - cat <<-EOF > "${T}"/env.d
378 - TARGET="${CTARGET}"
379 - VER="${PV}"
380 - LIBPATH="${EPREFIX}${LIBPATH}"
381 - EOF
382 - newins "${T}"/env.d ${CTARGET}-${PV}
383 -
384 - # Handle documentation
385 - if ! is_cross ; then
386 - cd "${S}"
387 - dodoc README
388 - docinto bfd
389 - dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
390 - docinto binutils
391 - dodoc binutils/ChangeLog binutils/NEWS binutils/README
392 - docinto gas
393 - dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
394 - docinto gprof
395 - dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
396 - docinto ld
397 - dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
398 - docinto libiberty
399 - dodoc libiberty/ChangeLog* libiberty/README
400 - docinto opcodes
401 - dodoc opcodes/ChangeLog*
402 - fi
403 -
404 - # Remove shared info pages
405 - rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
406 -
407 - # Trim all empty dirs
408 - find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
409 -}
410 -
411 -pkg_postinst() {
412 - # Make sure this ${CTARGET} has a binutils version selected
413 - [[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
414 - binutils-config ${CTARGET}-${PV}
415 -}
416 -
417 -pkg_postrm() {
418 - local current_profile=$(binutils-config -c ${CTARGET})
419 -
420 - # If no other versions exist, then uninstall for this
421 - # target ... otherwise, switch to the newest version
422 - # Note: only do this if this version is unmerged. We
423 - # rerun binutils-config if this is a remerge, as
424 - # we want the mtimes on the symlinks updated (if
425 - # it is the same as the current selected profile)
426 - if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
427 - local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
428 - choice=${choice//$'\n'/ }
429 - choice=${choice/* }
430 - if [[ -z ${choice} ]] ; then
431 - binutils-config -u ${CTARGET}
432 - else
433 - binutils-config ${choice}
434 - fi
435 - elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
436 - binutils-config ${CTARGET}-${PV}
437 - fi
438 -}
439 -
440 -# Note [slotting support]
441 -# -----------------------
442 -# Gentoo's layout for binutils files is non-standard as Gentoo
443 -# supports slotted installation for binutils. Many tools
444 -# still expect binutils to reside in known locations.
445 -# binutils-config package restores symlinks into known locations,
446 -# like:
447 -# /usr/bin/${CTARGET}-<tool>
448 -# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
449 -# /usr/include/
450 -#
451 -# Note [tooldir hack for ldscripts]
452 -# ---------------------------------
453 -# Build system does not allow ./configure to tweak every location
454 -# we need for slotting binutils hence all the shuffling in
455 -# src_install(). This note is about SCRIPTDIR define handling.
456 -#
457 -# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
458 -# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
459 -# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
460 -# Thus we can't just move files around after compilation finished.
461 -#
462 -# Our goal is the following:
463 -# - at build-time set scriptdir to point to symlinked location:
464 -# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
465 -# - at install-time set scriptdir to point to slotted location:
466 -# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}