commit:     92d989491169db22a750b0a524ad9472d1307b75
Author:     Jory Pratt <anarchy <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 17 19:37:05 2020 +0000
Commit:     Jory Pratt <anarchy <AT> gentoo <DOT> org>
CommitDate: Fri Apr 17 19:37:05 2020 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=92d98949

Add 2MB stacksize support to binutils/lld for musl users only

Signed-off-by: Jory Pratt <anarchy <AT> gentoo.org>

 sys-devel/binutils/Manifest                        |   2 +
 sys-devel/binutils/binutils-2.34.ebuild            | 443 +++++++++++++++++++++
 .../binutils/files/binutils-2.33-gcc-10.patch      |  39 ++
 .../binutils/files/binutils-configure-LANG.patch   |  65 +++
 sys-devel/binutils/metadata.xml                    |  17 +
 sys-devel/lld/Manifest                             |   1 +
 sys-devel/lld/lld-10.0.0.ebuild                    |  63 +++
 sys-devel/lld/metadata.xml                         |   7 +
 8 files changed, 637 insertions(+)

diff --git a/sys-devel/binutils/Manifest b/sys-devel/binutils/Manifest
new file mode 100644
index 0000000..7cea121
--- /dev/null
+++ b/sys-devel/binutils/Manifest
@@ -0,0 +1,2 @@
+DIST binutils-2.34-patches-1.tar.xz 20388 BLAKE2B 
8828505f62259a307de445357320827e7f6bc416a7f4c72140add505f62eef3928c7daec13be158b52c2a7a1d989f539025e4be6ec27ef80ede81477a42c5042
 SHA512 
951dffcc30ad5706dc48e71995217655c5d96472446ab66a357f19486b57d1868143a9809887eab7ba8c42c33124f8b37d3bab6618388ea8a08b4399d348a645
+DIST binutils-2.34.tar.xz 21637796 BLAKE2B 
07dd23916a7d27f71c3f160c8c16abe2bd4fce294c738c665a012a3be6a87dbe8160d0c38740524f9025e01d438e99b2a94bcf9f9f79ee214f5dd033de8aad3d
 SHA512 
2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd

diff --git a/sys-devel/binutils/binutils-2.34.ebuild 
b/sys-devel/binutils/binutils-2.34.ebuild
new file mode 100644
index 0000000..4e33aa0
--- /dev/null
+++ b/sys-devel/binutils/binutils-2.34.ebuild
@@ -0,0 +1,443 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs
+
+DESCRIPTION="Tools necessary to build programs"
+HOMEPAGE="https://sourceware.org/binutils/";
+LICENSE="GPL-3+"
+IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test"
+REQUIRED_USE="default-gold? ( gold )"
+
+# Variables that can be set here:
+# PATCH_VER          - the patchset version
+#                      Default: empty, no patching
+# PATCH_BINUTILS_VER - the binutils version in the patchset name
+#                    - Default: PV
+# PATCH_DEV          - Use download URI 
https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
+#                      for the patchsets
+
+PATCH_VER=1
+PATCH_DEV=slyfox
+
+case ${PV} in
+       9999)
+               EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git";
+               inherit git-r3
+               S=${WORKDIR}/binutils
+               EGIT_CHECKOUT_DIR=${S}
+               SLOT=${PV}
+               ;;
+       *.9999)
+               EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git";
+               inherit git-r3
+               S=${WORKDIR}/binutils
+               EGIT_CHECKOUT_DIR=${S}
+               EGIT_BRANCH=$(ver_cut 1-2)
+               EGIT_BRANCH="binutils-${EGIT_BRANCH/./_}-branch"
+               SLOT=$(ver_cut 1-2)
+               ;;
+       *)
+               SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz"
+               SLOT=$(ver_cut 1-2)
+               KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips 
~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+               ;;
+esac
+
+#
+# The Gentoo patchset
+#
+PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
+PATCH_DEV=${PATCH_DEV:-slyfox}
+
+[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
+       
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz";
+
+#
+# The cross-compile logic
+#
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+       if [[ ${CATEGORY} == cross-* ]] ; then
+               export CTARGET=${CATEGORY#cross-}
+       fi
+fi
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+#
+# The dependencies
+#
+RDEPEND="
+       >=sys-devel/binutils-config-3
+       sys-libs/zlib
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       doc? ( sys-apps/texinfo )
+       test? ( dev-util/dejagnu )
+       nls? ( sys-devel/gettext )
+       sys-devel/flex
+       virtual/yacc
+"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.33-gcc-10.patch
+)
+
+MY_BUILDDIR=${WORKDIR}/build
+
+src_unpack() {
+       case ${PV} in
+               *9999)
+                       git-r3_src_unpack
+                       ;;
+               *)
+                       ;;
+       esac
+       default
+       mkdir -p "${MY_BUILDDIR}"
+}
+
+src_prepare() {
+       if [[ ! -z ${PATCH_VER} ]] ; then
+               # Use upstream patch to enable development mode
+               rm -v "${WORKDIR}/patch"/0000-Gentoo-Git-is-development.patch 
|| die
+
+               einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset 
${PATCH_VER}"
+               eapply "${WORKDIR}/patch"/*.patch
+       fi
+
+       # This check should probably go somewhere else, like pkg_pretend.
+       if [[ ${CTARGET} == *-uclibc* ]] ; then
+               if grep -qs 'linux-gnu' "${S}"/ltconfig ; then
+                       die "sorry, but this binutils doesn't yet support 
uClibc :("
+               fi
+       fi
+
+       # Make sure our explicit libdir paths don't get clobbered. #562460
+       sed -i \
+               -e 's:@bfdlibdir@:@libdir@:g' \
+               -e 's:@bfdincludedir@:@includedir@:g' \
+               {bfd,opcodes}/Makefile.in || die
+
+       # Fix locale issues if possible #122216
+       if [[ -e ${FILESDIR}/binutils-configure-LANG.patch ]] ; then
+               einfo "Fixing misc issues in configure files"
+               for f in $(find "${S}" -name configure -exec grep -l 'autoconf 
version 2.13' {} +) ; do
+                       ebegin "  Updating ${f/${S}\/}"
+                       patch "${f}" 
"${FILESDIR}"/binutils-configure-LANG.patch >& "${T}"/configure-patch.log \
+                               || eerror "Please file a bug about this"
+                       eend $?
+               done
+       fi
+
+       # Fix conflicts with newer glibc #272594
+       if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
+               sed -i 's:\<getline\>:get_line:g' 
libiberty/testsuite/test-demangle.c
+       fi
+
+       # Apply things from PATCHES and user dirs
+       default
+
+       # Run misc portage update scripts
+       gnuconfig_update
+       elibtoolize --portage --no-uclibc
+}
+
+toolchain-binutils_bugurl() {
+       printf "https://bugs.gentoo.org/";
+}
+toolchain-binutils_pkgversion() {
+       printf "Gentoo ${PV}"
+       [[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
+}
+
+src_configure() {
+       # Setup some paths
+       LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
+       INCPATH=${LIBPATH}/include
+       DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
+       if is_cross ; then
+               TOOLPATH=/usr/${CHOST}/${CTARGET}
+       else
+               TOOLPATH=/usr/${CTARGET}
+       fi
+       BINPATH=${TOOLPATH}/binutils-bin/${PV}
+
+       # Make sure we filter $LINGUAS so that only ones that
+       # actually work make it through #42033
+       strip-linguas -u */po
+
+       # Keep things sane
+       strip-flags
+
+       use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+       local x
+       echo
+       for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
+               einfo "$(printf '%10s' ${x}:) ${!x}"
+       done
+       echo
+
+       cd "${MY_BUILDDIR}"
+       local myconf=()
+
+       if use plugins ; then
+               myconf+=( --enable-plugins )
+       fi
+       # enable gold (installed as ld.gold) and ld's plugin architecture
+       if use gold ; then
+               myconf+=( --enable-gold )
+               if use default-gold; then
+                       myconf+=( --enable-gold=default )
+               fi
+       fi
+
+       if use nls ; then
+               myconf+=( --without-included-gettext )
+       else
+               myconf+=( --disable-nls )
+       fi
+
+       myconf+=( --with-system-zlib )
+
+       # For bi-arch systems, enable a 64bit bfd.  This matches
+       # the bi-arch logic in toolchain.eclass. #446946
+       # We used to do it for everyone, but it's slow on 32bit arches. #438522
+       case $(tc-arch) in
+               ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
+       esac
+
+       use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
+
+       [[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
+
+       is_cross && myconf+=(
+               --with-sysroot="${EPREFIX}"/usr/${CTARGET}
+               --enable-poison-system-directories
+       )
+
+       # glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
+       # on everyone in alpha (for now), we'll just enable it when possible
+       has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
+       has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
+
+       # mips can't do hash-style=gnu ...
+       if [[ $(tc-arch) != mips ]] ; then
+               myconf+=( --enable-default-hash-style=gnu )
+       fi
+
+       myconf+=(
+               --prefix="${EPREFIX}"/usr
+               --host=${CHOST}
+               --target=${CTARGET}
+               --datadir="${EPREFIX}"${DATAPATH}
+               --datarootdir="${EPREFIX}"${DATAPATH}
+               --infodir="${EPREFIX}"${DATAPATH}/info
+               --mandir="${EPREFIX}"${DATAPATH}/man
+               --bindir="${EPREFIX}"${BINPATH}
+               --libdir="${EPREFIX}"${LIBPATH}
+               --libexecdir="${EPREFIX}"${LIBPATH}
+               --includedir="${EPREFIX}"${INCPATH}
+               --enable-obsolete
+               --enable-shared
+               --enable-threads
+               # Newer versions (>=2.27) offer a configure flag now.
+               --enable-relro
+               # Newer versions (>=2.24) make this an explicit option. #497268
+               --enable-install-libiberty
+               --disable-werror
+               --with-bugurl="$(toolchain-binutils_bugurl)"
+               --with-pkgversion="$(toolchain-binutils_pkgversion)"
+               $(use_enable static-libs static)
+               ${EXTRA_ECONF}
+               # Disable modules that are in a combined binutils/gdb tree. 
#490566
+               --disable-{gdb,libdecnumber,readline,sim}
+               # Strip out broken static link flags.
+               # https://gcc.gnu.org/PR56750
+               --without-stage1-ldflags
+               # Change SONAME to avoid conflict across
+               # {native,cross}/binutils, binutils-libs. #666100
+               --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex 
multitarget mt st)
+       )
+       echo ./configure "${myconf[@]}"
+       "${S}"/configure "${myconf[@]}" || die
+
+       # Prevent makeinfo from running if doc is unset.
+       if ! use doc ; then
+               sed -i \
+                       -e '/^MAKEINFO/s:=.*:= true:' \
+                       Makefile || die
+       fi
+}
+
+src_compile() {
+       cd "${MY_BUILDDIR}"
+       # see Note [tooldir hack for ldscripts]
+       emake tooldir="${EPREFIX}${TOOLPATH}" all
+
+       # only build info pages if the user wants them
+       if use doc ; then
+               emake info
+       fi
+
+       # we nuke the manpages when we're left with junk
+       # (like when we bootstrap, no perl -> no manpages)
+       find . -name '*.1' -a -size 0 -delete
+}
+
+src_test() {
+       cd "${MY_BUILDDIR}"
+
+       # bug 637066
+       filter-flags -Wall -Wreturn-type
+
+       emake -k check
+}
+
+src_install() {
+       local x d
+
+       cd "${MY_BUILDDIR}"
+       # see Note [tooldir hack for ldscripts]
+       emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
+       rm -rf "${ED}"/${LIBPATH}/bin
+       use static-libs || find "${ED}" -name '*.la' -delete
+
+       # Newer versions of binutils get fancy with ${LIBPATH} #171905
+       cd "${ED}"/${LIBPATH}
+       for d in ../* ; do
+               [[ ${d} == ../${PV} ]] && continue
+               mv ${d}/* . || die
+               rmdir ${d} || die
+       done
+
+       # Now we collect everything intp the proper SLOT-ed dirs
+       # When something is built to cross-compile, it installs into
+       # /usr/$CHOST/ by default ... we have to 'fix' that :)
+       if is_cross ; then
+               cd "${ED}"/${BINPATH}
+               for x in * ; do
+                       mv ${x} ${x/${CTARGET}-}
+               done
+
+               if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
+                       mv "${ED}"/usr/${CHOST}/${CTARGET}/include 
"${ED}"/${INCPATH}
+                       mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* 
"${ED}"/${LIBPATH}/
+                       rm -r "${ED}"/usr/${CHOST}/{include,lib}
+               fi
+       fi
+       insinto ${INCPATH}
+       local libiberty_headers=(
+               # Not all the libiberty headers.  See 
libiberty/Makefile.in:install_to_libdir.
+               demangle.h
+               dyn-string.h
+               fibheap.h
+               hashtab.h
+               libiberty.h
+               objalloc.h
+               splay-tree.h
+       )
+       doins "${libiberty_headers[@]/#/${S}/include/}"
+       if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
+               mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
+               rm -r "${ED}"/${LIBPATH}/lib
+       fi
+
+       # Generate an env.d entry for this binutils
+       insinto /etc/env.d/binutils
+       cat <<-EOF > "${T}"/env.d
+               TARGET="${CTARGET}"
+               VER="${PV}"
+               LIBPATH="${EPREFIX}${LIBPATH}"
+       EOF
+       newins "${T}"/env.d ${CTARGET}-${PV}
+
+       # Handle documentation
+       if ! is_cross ; then
+               cd "${S}"
+               dodoc README
+               docinto bfd
+               dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
+               docinto binutils
+               dodoc binutils/ChangeLog binutils/NEWS binutils/README
+               docinto gas
+               dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
+               docinto gprof
+               dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
+               docinto ld
+               dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
+               docinto libiberty
+               dodoc libiberty/ChangeLog* libiberty/README
+               docinto opcodes
+               dodoc opcodes/ChangeLog*
+       fi
+
+       # Remove shared info pages
+       rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
+
+       # Trim all empty dirs
+       find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
+}
+
+pkg_postinst() {
+       # Make sure this ${CTARGET} has a binutils version selected
+       [[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
+       binutils-config ${CTARGET}-${PV}
+}
+
+pkg_postrm() {
+       local current_profile=$(binutils-config -c ${CTARGET})
+
+       # If no other versions exist, then uninstall for this
+       # target ... otherwise, switch to the newest version
+       # Note: only do this if this version is unmerged.  We
+       #       rerun binutils-config if this is a remerge, as
+       #       we want the mtimes on the symlinks updated (if
+       #       it is the same as the current selected profile)
+       if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == 
${CTARGET}-${PV} ]] ; then
+               local choice=$(binutils-config -l | grep ${CTARGET} | awk 
'{print $2}')
+               choice=${choice//$'\n'/ }
+               choice=${choice/* }
+               if [[ -z ${choice} ]] ; then
+                       binutils-config -u ${CTARGET}
+               else
+                       binutils-config ${choice}
+               fi
+       elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; 
then
+               binutils-config ${CTARGET}-${PV}
+       fi
+}
+
+# Note [slotting support]
+# -----------------------
+# Gentoo's layout for binutils files is non-standard as Gentoo
+# supports slotted installation for binutils. Many tools
+# still expect binutils to reside in known locations.
+# binutils-config package restores symlinks into known locations,
+# like:
+#    /usr/bin/${CTARGET}-<tool>
+#    /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
+#    /usr/include/
+#
+# Note [tooldir hack for ldscripts]
+# ---------------------------------
+# Build system does not allow ./configure to tweak every location
+# we need for slotting binutils hence all the shuffling in
+# src_install(). This note is about SCRIPTDIR define handling.
+#
+# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
+# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
+# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
+# Thus we can't just move files around after compilation finished.
+#
+# Our goal is the following:
+# - at build-time set scriptdir to point to symlinked location:
+#   ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
+# - at install-time set scriptdir to point to slotted location:
+#   ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}

diff --git a/sys-devel/binutils/files/binutils-2.33-gcc-10.patch 
b/sys-devel/binutils/files/binutils-2.33-gcc-10.patch
new file mode 100644
index 0000000..9e1a999
--- /dev/null
+++ b/sys-devel/binutils/files/binutils-2.33-gcc-10.patch
@@ -0,0 +1,39 @@
+binutils: drop redundant 'program_name' definition
+
+https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=0b398d69acde3377dfbbeb8a4cfe87ae8c8562fa
+--- a/binutils/coffdump.c
++++ b/binutils/coffdump.c
+@@ -456,8 +456,6 @@ coff_dump (struct coff_ofile *ptr)
+     dump_coff_section (ptr->sections + i);
+ }
+ 
+-char * program_name;
+-
+ static void
+ show_usage (FILE *file, int status)
+ {
+--- a/binutils/srconv.c
++++ b/binutils/srconv.c
+@@ -1687,8 +1687,6 @@ prescan (struct coff_ofile *otree)
+     }
+ }
+ 
+-char *program_name;
+-
+ ATTRIBUTE_NORETURN static void
+ show_usage (FILE *ffile, int status)
+ {
+--- a/binutils/sysdump.c
++++ b/binutils/sysdump.c
+@@ -633,8 +633,6 @@ module (void)
+     }
+ }
+ 
+-char *program_name;
+-
+ ATTRIBUTE_NORETURN static void
+ show_usage (FILE *ffile, int status)
+ {
+-- 
+2.25.0
+

diff --git a/sys-devel/binutils/files/binutils-configure-LANG.patch 
b/sys-devel/binutils/files/binutils-configure-LANG.patch
new file mode 100644
index 0000000..5521d19
--- /dev/null
+++ b/sys-devel/binutils/files/binutils-configure-LANG.patch
@@ -0,0 +1,65 @@
+The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in 
+option parsing, it may break.
+
+http://bugs.gentoo.org/103483
+http://bugs.gentoo.org/122216
+
+--- configure
++++ configure
+@@ -54,6 +54,19 @@
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+ 
++# NLS nuisances.
++for as_var in \
++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
++  LC_TELEPHONE LC_TIME
++do
++  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
++    eval $as_var=C; export $as_var
++  else
++    unset $as_var
++  fi
++done
++
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+@@ -452,16 +463,6 @@
+   esac
+ done
+ 
+-# NLS nuisances.
+-# Only set these to C if already set.  These must not be set unconditionally
+-# because not all systems understand e.g. LANG=C (notably SCO).
+-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+-# Non-C LC_CTYPE values break the ctype check.
+-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+-
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+@@ -1850,6 +1850,19 @@
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+ 
++# NLS nuisances.
++for as_var in \
++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
++  LC_TELEPHONE LC_TIME
++do
++  if (set +x; test -z "`(eval \$as_var=C; export \$as_var) 2>&1`"); then
++    eval \$as_var=C; export \$as_var
++  else
++    unset \$as_var
++  fi
++done
++
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do

diff --git a/sys-devel/binutils/metadata.xml b/sys-devel/binutils/metadata.xml
new file mode 100644
index 0000000..66f4f23
--- /dev/null
+++ b/sys-devel/binutils/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="project">
+               <email>toolch...@gentoo.org</email>
+               <name>Gentoo Toolchain Project</name>
+       </maintainer>
+       <use>
+               <flag name="default-gold">Set ld to point to ld.gold instead of 
ld.bfd</flag>
+               <flag name="gold">Build ld.gold linker</flag>
+               <flag name="plugins">Enable plugin support in tools</flag>
+               <flag name="multitarget">Adds support to binutils for cross 
compiling (does not work with gas)</flag>
+       </use>
+       <upstream>
+               <remote-id type="cpe">cpe:/a:gnu:binutils</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git a/sys-devel/lld/Manifest b/sys-devel/lld/Manifest
new file mode 100644
index 0000000..1094e2f
--- /dev/null
+++ b/sys-devel/lld/Manifest
@@ -0,0 +1 @@
+DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 
6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191
 SHA512 
baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0

diff --git a/sys-devel/lld/lld-10.0.0.ebuild b/sys-devel/lld/lld-10.0.0.ebuild
new file mode 100644
index 0000000..c5d902c
--- /dev/null
+++ b/sys-devel/lld/lld-10.0.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+inherit cmake-utils flag-o-matic llvm llvm.org multiprocessing python-any-r1
+
+DESCRIPTION="The LLVM linker (link editor)"
+HOMEPAGE="https://llvm.org/";
+LLVM_COMPONENTS=( lld )
+LLVM_TEST_COMPONENTS=( llvm/utils/{lit,unittest} )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="~sys-devel/llvm-${PV}"
+DEPEND="${RDEPEND}"
+BDEPEND="test? ( $(python_gen_any_dep 
"~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") )"
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+       has_version -b "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+       LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup
+       use test && python-any-r1_pkg_setup
+       use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_SHARED_LIBS=OFF
+
+               -DLLVM_INCLUDE_TESTS=$(usex test)
+       )
+       use test && mycmakeargs+=(
+               -DLLVM_BUILD_TESTS=ON
+               -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
+               -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+               -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs 
"${MAKEOPTS}" "$(get_nproc)")}"
+       )
+
+       cmake-utils_src_configure
+}
+
+src_test() {
+       local -x LIT_PRESERVES_TMP=1
+       cmake-utils_src_make check-lld
+}
+
+src_install() {
+       cmake-utils_src_install
+       # LLD has no shared libraries, so strip it all for the time being
+       rm -r "${ED}"/usr/{include,lib*} || die
+}

diff --git a/sys-devel/lld/metadata.xml b/sys-devel/lld/metadata.xml
new file mode 100644
index 0000000..89c4bdb
--- /dev/null
+++ b/sys-devel/lld/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="project">
+               <email>l...@gentoo.org</email>
+       </maintainer>
+</pkgmetadata>

Reply via email to