public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
@ 2019-07-14 23:50 Mike Gilbert
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr' Mike Gilbert
                   ` (7 more replies)
  0 siblings, 8 replies; 34+ messages in thread
From: Mike Gilbert @ 2019-07-14 23:50 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

This series introduces the global USE flag 'split-usr' to control
whether binaries and libraries are split into separate / and /usr
directories, or if they are always installed in /usr. This is a step
toward making merged /usr workable on Gentoo for the average user.

This USE flag is already being used by some packages, including
sys-apps/baselayout and sys-apps/systemd.

This series also moves the gen_usr_ldscript function to a new eclass,
and makes it a noop on most systems when split-usr is enabled. Moving
it to a new eclass allows us to avoid adding IUSE="split-usr" to every
ebuild that uses toolchain-funcs.eclass.

Mike Gilbert (6):
  profiles: add global USE flag 'split-usr'
  profiles: enable USE="split-usr" in base
  usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass
  usr-ldscript.eclass: return early if USE=split-usr is disabled
  Convert ebuilds to inherit usr-ldscript
  toolchain-funcs.eclass: deprecate gen_usr_ldscript

 app-accessibility/brltty/brltty-5.2-r1.ebuild |   2 +-
 app-accessibility/brltty/brltty-6.0-r1.ebuild |   2 +-
 app-arch/bzip2/bzip2-1.0.6-r11.ebuild         |   2 +-
 app-arch/bzip2/bzip2-1.0.7.ebuild             |   2 +-
 app-arch/bzip2/bzip2-1.0.8.ebuild             |   2 +-
 app-arch/bzip2/bzip2-9999.ebuild              |   2 +-
 app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild    |   2 +-
 app-arch/xz-utils/xz-utils-5.2.4-r3.ebuild    |   2 +-
 app-arch/xz-utils/xz-utils-9999.ebuild        |   2 +-
 dev-libs/expat/expat-2.2.6.ebuild             |   2 +-
 dev-libs/expat/expat-2.2.7.ebuild             |   2 +-
 dev-libs/libaio/libaio-0.3.110.ebuild         |   2 +-
 dev-libs/libaio/libaio-0.3.111.ebuild         |   2 +-
 dev-libs/libaio/libaio-0.3.112.ebuild         |   2 +-
 dev-libs/libaio/libaio-9999.ebuild            |   2 +-
 dev-libs/libedit/libedit-20130712.3.1.ebuild  |   2 +-
 dev-libs/libedit/libedit-20170329.3.1.ebuild  |   2 +-
 dev-libs/libiconv/libiconv-1.14-r1.ebuild     |   2 +-
 dev-libs/libiconv/libiconv-1.15.ebuild        |   2 +-
 dev-libs/libintl/libintl-0.19.7.ebuild        |   2 +-
 dev-libs/libintl/libintl-0.19.8.1.ebuild      |   2 +-
 dev-libs/libintl/libintl-0.20.1.ebuild        |   2 +-
 dev-libs/libpcre/libpcre-8.41-r1.ebuild       |   2 +-
 dev-libs/libpcre/libpcre-8.42.ebuild          |   2 +-
 dev-libs/libpcre/libpcre-8.43.ebuild          |   2 +-
 dev-libs/libpcre2/libpcre2-10.32.ebuild       |   2 +-
 dev-libs/libpcre2/libpcre2-10.33.ebuild       |   2 +-
 .../libpwquality/libpwquality-1.4.0.ebuild    |   2 +-
 .../libusb-compat-0.1.5-r2.ebuild             |   2 +-
 .../libusb-compat-0.1.5-r3.ebuild             |   2 +-
 dev-libs/libusb/libusb-1.0.19-r1.ebuild       |   2 +-
 dev-libs/libusb/libusb-1.0.21.ebuild          |   2 +-
 dev-libs/libusb/libusb-1.0.22.ebuild          |   2 +-
 dev-libs/lzo/lzo-2.10.ebuild                  |   2 +-
 eclass/toolchain-funcs.eclass                 |  15 +-
 eclass/usr-ldscript.eclass                    | 160 ++++++++++++++++++
 .../iptables/iptables-1.6.1-r3.ebuild         |   2 +-
 .../iptables/iptables-1.6.2-r2.ebuild         |   2 +-
 .../iptables/iptables-1.8.2-r2.ebuild         |   2 +-
 .../iptables/iptables-1.8.3-r1.ebuild         |   2 +-
 net-libs/libmnl/libmnl-1.0.3-r1.ebuild        |   2 +-
 net-libs/libmnl/libmnl-1.0.4.ebuild           |   2 +-
 net-libs/libnftnl/libnftnl-1.0.8-r1.ebuild    |   2 +-
 net-libs/libnftnl/libnftnl-1.1.1-r1.ebuild    |   2 +-
 net-libs/libnftnl/libnftnl-1.1.2-r1.ebuild    |   2 +-
 net-libs/libnftnl/libnftnl-1.1.3.ebuild       |   2 +-
 net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild    |   2 +-
 net-libs/libtirpc/libtirpc-1.0.3.ebuild       |   2 +-
 net-libs/libtirpc/libtirpc-1.1.4.ebuild       |   2 +-
 profiles/base/make.defaults                   |   4 +
 profiles/use.desc                             |   1 +
 sys-apps/acl/acl-2.2.52-r1.ebuild             |   2 +-
 sys-apps/acl/acl-2.2.53.ebuild                |   2 +-
 sys-apps/attr/attr-2.4.47-r2.ebuild           |   2 +-
 sys-apps/attr/attr-2.4.48-r2.ebuild           |   2 +-
 sys-apps/attr/attr-2.4.48-r3.ebuild           |   2 +-
 sys-apps/dmapi/dmapi-2.2.12-r1.ebuild         |   2 +-
 sys-apps/keyutils/keyutils-1.5.11-r1.ebuild   |   2 +-
 sys-apps/keyutils/keyutils-1.5.9-r4.ebuild    |   2 +-
 sys-apps/keyutils/keyutils-1.6.ebuild         |   2 +-
 sys-apps/openrc/openrc-0.34.11.ebuild         |   2 +-
 sys-apps/openrc/openrc-0.38.3-r1.ebuild       |   2 +-
 sys-apps/openrc/openrc-0.38.3.ebuild          |   2 +-
 sys-apps/openrc/openrc-0.41.2.ebuild          |   2 +-
 sys-apps/openrc/openrc-9999.ebuild            |   2 +-
 .../tcp-wrappers-7.6.22-r1.ebuild             |   2 +-
 sys-apps/util-linux/util-linux-2.33-r1.ebuild |   2 +-
 sys-apps/util-linux/util-linux-2.33.1.ebuild  |   2 +-
 sys-apps/util-linux/util-linux-2.33.2.ebuild  |   2 +-
 sys-apps/util-linux/util-linux-2.34-r2.ebuild |   2 +-
 sys-apps/util-linux/util-linux-9999.ebuild    |   2 +-
 sys-auth/skey/skey-1.1.5-r11.ebuild           |   2 +-
 .../freebsd-cddl/freebsd-cddl-11.1.ebuild     |   2 +-
 .../freebsd-cddl/freebsd-cddl-9.1.ebuild      |   2 +-
 .../freebsd-lib/freebsd-lib-11.1-r1.ebuild    |   2 +-
 .../freebsd-lib/freebsd-lib-9.1-r11.ebuild    |   2 +-
 sys-fs/e2fsprogs/e2fsprogs-1.44.5.ebuild      |   2 +-
 sys-fs/e2fsprogs/e2fsprogs-1.44.6.ebuild      |   2 +-
 sys-fs/e2fsprogs/e2fsprogs-1.45.1-r1.ebuild   |   2 +-
 sys-fs/e2fsprogs/e2fsprogs-1.45.2.ebuild      |   2 +-
 sys-fs/lvm2/lvm2-2.02.116.ebuild              |   2 +-
 sys-fs/lvm2/lvm2-2.02.145-r2.ebuild           |   2 +-
 sys-fs/lvm2/lvm2-2.02.183.ebuild              |   2 +-
 sys-fs/lvm2/lvm2-2.02.184-r4.ebuild           |   2 +-
 sys-fs/lvm2/lvm2-2.02.185.ebuild              |   2 +-
 sys-fs/lvm2/lvm2-2.03.05.ebuild               |   2 +-
 sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild |   2 +-
 sys-fs/reiser4progs/reiser4progs-1.2.0.ebuild |   2 +-
 sys-fs/reiser4progs/reiser4progs-1.2.1.ebuild |   2 +-
 .../reiserfsprogs/reiserfsprogs-3.6.25.ebuild |   2 +-
 .../reiserfsprogs/reiserfsprogs-3.6.27.ebuild |   2 +-
 sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild     |   2 +-
 sys-fs/xfsprogs/xfsprogs-4.17.0-r1.ebuild     |   2 +-
 sys-fs/xfsprogs/xfsprogs-4.19.0.ebuild        |   2 +-
 sys-fs/xfsprogs/xfsprogs-4.20.0.ebuild        |   2 +-
 sys-fs/xfsprogs/xfsprogs-5.0.0.ebuild         |   2 +-
 sys-fs/zfs/zfs-0.6.5.11-r2.ebuild             |   2 +-
 sys-fs/zfs/zfs-0.7.13.ebuild                  |   2 +-
 sys-fs/zfs/zfs-0.7.9999.ebuild                |   2 +-
 sys-fs/zfs/zfs-0.8.1.ebuild                   |   2 +-
 sys-fs/zfs/zfs-9999.ebuild                    |   2 +-
 sys-libs/cracklib/cracklib-2.9.6-r2.ebuild    |   2 +-
 sys-libs/cracklib/cracklib-2.9.7.ebuild       |   2 +-
 .../e2fsprogs-libs-1.44.5.ebuild              |   2 +-
 .../e2fsprogs-libs-1.44.6.ebuild              |   2 +-
 .../e2fsprogs-libs-1.45.1.ebuild              |   2 +-
 .../e2fsprogs-libs-1.45.2.ebuild              |   2 +-
 sys-libs/glibc/glibc-2.19-r2.ebuild           |   2 +-
 sys-libs/glibc/glibc-2.26-r7.ebuild           |   2 +-
 sys-libs/glibc/glibc-2.27-r6.ebuild           |   2 +-
 sys-libs/glibc/glibc-2.28-r6.ebuild           |   2 +-
 sys-libs/glibc/glibc-2.29-r2.ebuild           |   2 +-
 sys-libs/glibc/glibc-9999.ebuild              |   2 +-
 sys-libs/gpm/gpm-1.20.7-r2.ebuild             |   2 +-
 sys-libs/libaal/libaal-1.0.6.ebuild           |   2 +-
 sys-libs/libaal/libaal-1.0.7-r1.ebuild        |   2 +-
 sys-libs/libaal/libaal-1.0.7.ebuild           |   2 +-
 sys-libs/libcap/libcap-2.26-r2.ebuild         |   2 +-
 sys-libs/libcap/libcap-2.27.ebuild            |   2 +-
 sys-libs/libnih/libnih-1.0.3-r3.ebuild        |   2 +-
 sys-libs/ncurses/ncurses-6.1-r2.ebuild        |   2 +-
 sys-libs/ncurses/ncurses-6.1-r3.ebuild        |   2 +-
 sys-libs/ncurses/ncurses-6.1_p20181020.ebuild |   2 +-
 sys-libs/pam/pam-1.2.1-r2.ebuild              |   2 +-
 sys-libs/pam/pam-1.3.0-r2.ebuild              |   2 +-
 sys-libs/pam/pam-1.3.1-r1.ebuild              |   2 +-
 sys-libs/pwdb/pwdb-0.62-r1.ebuild             |   2 +-
 sys-libs/readline/readline-6.3_p8-r3.ebuild   |   2 +-
 sys-libs/readline/readline-7.0_p3-r1.ebuild   |   2 +-
 sys-libs/readline/readline-7.0_p3.ebuild      |   2 +-
 sys-libs/readline/readline-7.0_p5.ebuild      |   2 +-
 sys-libs/readline/readline-8.0.ebuild         |   2 +-
 sys-libs/zlib/zlib-1.2.11-r2.ebuild           |   2 +-
 sys-process/audit/audit-2.6.4.ebuild          |   2 +-
 sys-process/audit/audit-2.7.1.ebuild          |   2 +-
 sys-process/audit/audit-2.8.2.ebuild          |   2 +-
 sys-process/audit/audit-2.8.3.ebuild          |   2 +-
 sys-process/audit/audit-2.8.4.ebuild          |   2 +-
 sys-process/procps/procps-3.3.15-r1.ebuild    |   2 +-
 139 files changed, 304 insertions(+), 146 deletions(-)
 create mode 100644 eclass/usr-ldscript.eclass

-- 
2.22.0



^ permalink raw reply	[flat|nested] 34+ messages in thread

* [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr'
  2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
@ 2019-07-14 23:50 ` Mike Gilbert
  2019-07-15  3:29   ` Michał Górny
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base Mike Gilbert
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 34+ messages in thread
From: Mike Gilbert @ 2019-07-14 23:50 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 profiles/use.desc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/profiles/use.desc b/profiles/use.desc
index fc19bbd0bbaa..ec5d4d6bc594 100644
--- a/profiles/use.desc
+++ b/profiles/use.desc
@@ -299,6 +299,7 @@ source - Zip the sources and install them
 sox - Add support for Sound eXchange (SoX)
 speex - Add support for the speex audio codec (used for speech)
 spell - Add dictionary support
+split-usr - Splits /bin and /lib from /usr/bin and /usr/lib
 sqlite - Add support for sqlite - embedded sql database
 ssl - Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
 startup-notification - Enable application startup event feedback mechanism
-- 
2.22.0



^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr' Mike Gilbert
@ 2019-07-14 23:50 ` Mike Gilbert
  2019-07-15  1:49   ` Michael Orlitzky
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 3/6] usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass Mike Gilbert
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 34+ messages in thread
From: Mike Gilbert @ 2019-07-14 23:50 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 profiles/base/make.defaults | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/profiles/base/make.defaults b/profiles/base/make.defaults
index 3fdd2e453a46..80c5852277f4 100644
--- a/profiles/base/make.defaults
+++ b/profiles/base/make.defaults
@@ -115,6 +115,10 @@ USE="${USE} cxx"
 # https://archives.gentoo.org/gentoo-dev/message/ba0e3457e4b807e79816f0df03566af0
 USE="${USE} xattr"
 
+# Mike Gilbert <floppym@gentoo.org> (2019-07-14)
+# Enable split-usr by default to keep systems working.
+USE="${USE} split-usr"
+
 # Tiziano Müller <dev-zero@gentoo.org> (2010-01-24)
 # We usually don't want python to (re)write .py[co] files during phase runs
 # since it could cause sandbox violations
-- 
2.22.0



^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [gentoo-dev] [PATCH 3/6] usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass
  2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr' Mike Gilbert
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base Mike Gilbert
@ 2019-07-14 23:50 ` Mike Gilbert
  2019-07-15  5:41   ` Ulrich Mueller
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 4/6] usr-ldscript.eclass: return early if USE=split-usr is disabled Mike Gilbert
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 34+ messages in thread
From: Mike Gilbert @ 2019-07-14 23:50 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

This intentionally redefines the same function to ease migration. Once
all ebuilds have been converted, the definition in toolchain-funcs can
be removed.

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 eclass/usr-ldscript.eclass | 156 +++++++++++++++++++++++++++++++++++++
 1 file changed, 156 insertions(+)
 create mode 100644 eclass/usr-ldscript.eclass

diff --git a/eclass/usr-ldscript.eclass b/eclass/usr-ldscript.eclass
new file mode 100644
index 000000000000..c1abbb49f4ba
--- /dev/null
+++ b/eclass/usr-ldscript.eclass
@@ -0,0 +1,156 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: usr-ldscript.eclass
+# @MAINTAINER:
+# Toolchain Ninjas <toolchain@gentoo.org>
+# @AUTHOR:
+# Mike Gilbert <floppym@gentoo.org>
+# @BLURB: Defines the gen_usr_ldscript function.
+
+if [[ -z ${_USR_LDSCRIPT_ECLASS} ]]; then
+_USR_LDSCRIPT_ECLASS=1
+
+inherit multilib toolchain-funcs
+
+# @FUNCTION: gen_usr_ldscript
+# @USAGE: [-a] <list of libs to create linker scripts for>
+# @DESCRIPTION:
+# This function generate linker scripts in /usr/lib for dynamic
+# libs in /lib.  This is to fix linking problems when you have
+# the .so in /lib, and the .a in /usr/lib.  What happens is that
+# in some cases when linking dynamic, the .a in /usr/lib is used
+# instead of the .so in /lib due to gcc/libtool tweaking ld's
+# library search path.  This causes many builds to fail.
+# See bug #4411 for more info.
+#
+# Note that you should in general use the unversioned name of
+# the library (libfoo.so), as ldconfig should usually update it
+# correctly to point to the latest version of the library present.
+gen_usr_ldscript() {
+	local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname)
+	[[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/
+
+	tc-is-static-only && return
+
+	# We only care about stuffing / for the native ABI. #479448
+	if [[ $(type -t multilib_is_native_abi) == "function" ]] ; then
+		multilib_is_native_abi || return 0
+	fi
+
+	# Eventually we'd like to get rid of this func completely #417451
+	case ${CTARGET:-${CHOST}} in
+	*-darwin*) ;;
+	*-android*) return 0 ;;
+	*linux*|*-freebsd*|*-openbsd*|*-netbsd*)
+		use prefix && return 0 ;;
+	*) return 0 ;;
+	esac
+
+	# Just make sure it exists
+	dodir /usr/${libdir}
+
+	if [[ $1 == "-a" ]] ; then
+		auto=true
+		shift
+		dodir /${libdir}
+	fi
+
+	# OUTPUT_FORMAT gives hints to the linker as to what binary format
+	# is referenced ... makes multilib saner
+	local flags=( ${CFLAGS} ${LDFLAGS} -Wl,--verbose )
+	if $(tc-getLD) --version | grep -q 'GNU gold' ; then
+		# If they're using gold, manually invoke the old bfd. #487696
+		local d="${T}/bfd-linker"
+		mkdir -p "${d}"
+		ln -sf $(which ${CHOST}-ld.bfd) "${d}"/ld
+		flags+=( -B"${d}" )
+	fi
+	output_format=$($(tc-getCC) "${flags[@]}" 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
+	[[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
+
+	for lib in "$@" ; do
+		local tlib
+		if ${auto} ; then
+			lib="lib${lib}${suffix}"
+		else
+			# Ensure /lib/${lib} exists to avoid dangling scripts/symlinks.
+			# This especially is for AIX where $(get_libname) can return ".a",
+			# so /lib/${lib} might be moved to /usr/lib/${lib} (by accident).
+			[[ -r ${ED}/${libdir}/${lib} ]] || continue
+			#TODO: better die here?
+		fi
+
+		case ${CTARGET:-${CHOST}} in
+		*-darwin*)
+			if ${auto} ; then
+				tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib})
+			else
+				tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib})
+			fi
+			[[ -z ${tlib} ]] && die "unable to read install_name from ${lib}"
+			tlib=${tlib##*/}
+
+			if ${auto} ; then
+				mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die
+				# some install_names are funky: they encode a version
+				if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]] ; then
+					mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die
+				fi
+				rm -f "${ED}"/${libdir}/${lib}
+			fi
+
+			# Mach-O files have an id, which is like a soname, it tells how
+			# another object linking against this lib should reference it.
+			# Since we moved the lib from usr/lib into lib this reference is
+			# wrong.  Hence, we update it here.  We don't configure with
+			# libdir=/lib because that messes up libtool files.
+			# Make sure we don't lose the specific version, so just modify the
+			# existing install_name
+			if [[ ! -w "${ED}/${libdir}/${tlib}" ]] ; then
+				chmod u+w "${ED}${libdir}/${tlib}" # needed to write to it
+				local nowrite=yes
+			fi
+			install_name_tool \
+				-id "${EPREFIX}"/${libdir}/${tlib} \
+				"${ED}"/${libdir}/${tlib} || die "install_name_tool failed"
+			[[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}"
+			# Now as we don't use GNU binutils and our linker doesn't
+			# understand linker scripts, just create a symlink.
+			pushd "${ED}/usr/${libdir}" > /dev/null
+			ln -snf "../../${libdir}/${tlib}" "${lib}"
+			popd > /dev/null
+			;;
+		*)
+			if ${auto} ; then
+				tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib})
+				[[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}"
+				mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die
+				# some SONAMEs are funky: they encode a version before the .so
+				if [[ ${tlib} != ${lib}* ]] ; then
+					mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die
+				fi
+				rm -f "${ED}"/${libdir}/${lib}
+			else
+				tlib=${lib}
+			fi
+			cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT
+			/* GNU ld script
+			   Since Gentoo has critical dynamic libraries in /lib, and the static versions
+			   in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
+			   run into linking problems.  This "fake" dynamic lib is a linker script that
+			   redirects the linker to the real lib.  And yes, this works in the cross-
+			   compiling scenario as the sysroot-ed linker will prepend the real path.
+
+			   See bug https://bugs.gentoo.org/4411 for more info.
+			 */
+			${output_format}
+			GROUP ( ${EPREFIX}/${libdir}/${tlib} )
+			END_LDSCRIPT
+			;;
+		esac
+		fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}"
+	done
+}
+
+fi # _USR_LDSCRIPT_ECLASS
-- 
2.22.0



^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [gentoo-dev] [PATCH 4/6] usr-ldscript.eclass: return early if USE=split-usr is disabled
  2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
                   ` (2 preceding siblings ...)
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 3/6] usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass Mike Gilbert
@ 2019-07-14 23:50 ` Mike Gilbert
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 5/6] Convert ebuilds to inherit usr-ldscript Mike Gilbert
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 34+ messages in thread
From: Mike Gilbert @ 2019-07-14 23:50 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

Bug: https://bugs.gentoo.org/417451
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 eclass/usr-ldscript.eclass | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/eclass/usr-ldscript.eclass b/eclass/usr-ldscript.eclass
index c1abbb49f4ba..a0fbd7d42ec4 100644
--- a/eclass/usr-ldscript.eclass
+++ b/eclass/usr-ldscript.eclass
@@ -13,6 +13,8 @@ _USR_LDSCRIPT_ECLASS=1
 
 inherit multilib toolchain-funcs
 
+IUSE="split-usr"
+
 # @FUNCTION: gen_usr_ldscript
 # @USAGE: [-a] <list of libs to create linker scripts for>
 # @DESCRIPTION:
@@ -43,7 +45,9 @@ gen_usr_ldscript() {
 	*-darwin*) ;;
 	*-android*) return 0 ;;
 	*linux*|*-freebsd*|*-openbsd*|*-netbsd*)
-		use prefix && return 0 ;;
+		use prefix && return 0
+		use split-usr || return 0
+		;;
 	*) return 0 ;;
 	esac
 
-- 
2.22.0



^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [gentoo-dev] [PATCH 5/6] Convert ebuilds to inherit usr-ldscript
  2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
                   ` (3 preceding siblings ...)
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 4/6] usr-ldscript.eclass: return early if USE=split-usr is disabled Mike Gilbert
@ 2019-07-14 23:50 ` Mike Gilbert
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 6/6] toolchain-funcs.eclass: deprecate gen_usr_ldscript Mike Gilbert
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 34+ messages in thread
From: Mike Gilbert @ 2019-07-14 23:50 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 app-accessibility/brltty/brltty-5.2-r1.ebuild        | 2 +-
 app-accessibility/brltty/brltty-6.0-r1.ebuild        | 2 +-
 app-arch/bzip2/bzip2-1.0.6-r11.ebuild                | 2 +-
 app-arch/bzip2/bzip2-1.0.7.ebuild                    | 2 +-
 app-arch/bzip2/bzip2-1.0.8.ebuild                    | 2 +-
 app-arch/bzip2/bzip2-9999.ebuild                     | 2 +-
 app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild           | 2 +-
 app-arch/xz-utils/xz-utils-5.2.4-r3.ebuild           | 2 +-
 app-arch/xz-utils/xz-utils-9999.ebuild               | 2 +-
 dev-libs/expat/expat-2.2.6.ebuild                    | 2 +-
 dev-libs/expat/expat-2.2.7.ebuild                    | 2 +-
 dev-libs/libaio/libaio-0.3.110.ebuild                | 2 +-
 dev-libs/libaio/libaio-0.3.111.ebuild                | 2 +-
 dev-libs/libaio/libaio-0.3.112.ebuild                | 2 +-
 dev-libs/libaio/libaio-9999.ebuild                   | 2 +-
 dev-libs/libedit/libedit-20130712.3.1.ebuild         | 2 +-
 dev-libs/libedit/libedit-20170329.3.1.ebuild         | 2 +-
 dev-libs/libiconv/libiconv-1.14-r1.ebuild            | 2 +-
 dev-libs/libiconv/libiconv-1.15.ebuild               | 2 +-
 dev-libs/libintl/libintl-0.19.7.ebuild               | 2 +-
 dev-libs/libintl/libintl-0.19.8.1.ebuild             | 2 +-
 dev-libs/libintl/libintl-0.20.1.ebuild               | 2 +-
 dev-libs/libpcre/libpcre-8.41-r1.ebuild              | 2 +-
 dev-libs/libpcre/libpcre-8.42.ebuild                 | 2 +-
 dev-libs/libpcre/libpcre-8.43.ebuild                 | 2 +-
 dev-libs/libpcre2/libpcre2-10.32.ebuild              | 2 +-
 dev-libs/libpcre2/libpcre2-10.33.ebuild              | 2 +-
 dev-libs/libpwquality/libpwquality-1.4.0.ebuild      | 2 +-
 dev-libs/libusb-compat/libusb-compat-0.1.5-r2.ebuild | 2 +-
 dev-libs/libusb-compat/libusb-compat-0.1.5-r3.ebuild | 2 +-
 dev-libs/libusb/libusb-1.0.19-r1.ebuild              | 2 +-
 dev-libs/libusb/libusb-1.0.21.ebuild                 | 2 +-
 dev-libs/libusb/libusb-1.0.22.ebuild                 | 2 +-
 dev-libs/lzo/lzo-2.10.ebuild                         | 2 +-
 net-firewall/iptables/iptables-1.6.1-r3.ebuild       | 2 +-
 net-firewall/iptables/iptables-1.6.2-r2.ebuild       | 2 +-
 net-firewall/iptables/iptables-1.8.2-r2.ebuild       | 2 +-
 net-firewall/iptables/iptables-1.8.3-r1.ebuild       | 2 +-
 net-libs/libmnl/libmnl-1.0.3-r1.ebuild               | 2 +-
 net-libs/libmnl/libmnl-1.0.4.ebuild                  | 2 +-
 net-libs/libnftnl/libnftnl-1.0.8-r1.ebuild           | 2 +-
 net-libs/libnftnl/libnftnl-1.1.1-r1.ebuild           | 2 +-
 net-libs/libnftnl/libnftnl-1.1.2-r1.ebuild           | 2 +-
 net-libs/libnftnl/libnftnl-1.1.3.ebuild              | 2 +-
 net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild           | 2 +-
 net-libs/libtirpc/libtirpc-1.0.3.ebuild              | 2 +-
 net-libs/libtirpc/libtirpc-1.1.4.ebuild              | 2 +-
 sys-apps/acl/acl-2.2.52-r1.ebuild                    | 2 +-
 sys-apps/acl/acl-2.2.53.ebuild                       | 2 +-
 sys-apps/attr/attr-2.4.47-r2.ebuild                  | 2 +-
 sys-apps/attr/attr-2.4.48-r2.ebuild                  | 2 +-
 sys-apps/attr/attr-2.4.48-r3.ebuild                  | 2 +-
 sys-apps/dmapi/dmapi-2.2.12-r1.ebuild                | 2 +-
 sys-apps/keyutils/keyutils-1.5.11-r1.ebuild          | 2 +-
 sys-apps/keyutils/keyutils-1.5.9-r4.ebuild           | 2 +-
 sys-apps/keyutils/keyutils-1.6.ebuild                | 2 +-
 sys-apps/openrc/openrc-0.34.11.ebuild                | 2 +-
 sys-apps/openrc/openrc-0.38.3-r1.ebuild              | 2 +-
 sys-apps/openrc/openrc-0.38.3.ebuild                 | 2 +-
 sys-apps/openrc/openrc-0.41.2.ebuild                 | 2 +-
 sys-apps/openrc/openrc-9999.ebuild                   | 2 +-
 sys-apps/tcp-wrappers/tcp-wrappers-7.6.22-r1.ebuild  | 2 +-
 sys-apps/util-linux/util-linux-2.33-r1.ebuild        | 2 +-
 sys-apps/util-linux/util-linux-2.33.1.ebuild         | 2 +-
 sys-apps/util-linux/util-linux-2.33.2.ebuild         | 2 +-
 sys-apps/util-linux/util-linux-2.34-r2.ebuild        | 2 +-
 sys-apps/util-linux/util-linux-9999.ebuild           | 2 +-
 sys-auth/skey/skey-1.1.5-r11.ebuild                  | 2 +-
 sys-freebsd/freebsd-cddl/freebsd-cddl-11.1.ebuild    | 2 +-
 sys-freebsd/freebsd-cddl/freebsd-cddl-9.1.ebuild     | 2 +-
 sys-freebsd/freebsd-lib/freebsd-lib-11.1-r1.ebuild   | 2 +-
 sys-freebsd/freebsd-lib/freebsd-lib-9.1-r11.ebuild   | 2 +-
 sys-fs/e2fsprogs/e2fsprogs-1.44.5.ebuild             | 2 +-
 sys-fs/e2fsprogs/e2fsprogs-1.44.6.ebuild             | 2 +-
 sys-fs/e2fsprogs/e2fsprogs-1.45.1-r1.ebuild          | 2 +-
 sys-fs/e2fsprogs/e2fsprogs-1.45.2.ebuild             | 2 +-
 sys-fs/lvm2/lvm2-2.02.116.ebuild                     | 2 +-
 sys-fs/lvm2/lvm2-2.02.145-r2.ebuild                  | 2 +-
 sys-fs/lvm2/lvm2-2.02.183.ebuild                     | 2 +-
 sys-fs/lvm2/lvm2-2.02.184-r4.ebuild                  | 2 +-
 sys-fs/lvm2/lvm2-2.02.185.ebuild                     | 2 +-
 sys-fs/lvm2/lvm2-2.03.05.ebuild                      | 2 +-
 sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild        | 2 +-
 sys-fs/reiser4progs/reiser4progs-1.2.0.ebuild        | 2 +-
 sys-fs/reiser4progs/reiser4progs-1.2.1.ebuild        | 2 +-
 sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild     | 2 +-
 sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild     | 2 +-
 sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild            | 2 +-
 sys-fs/xfsprogs/xfsprogs-4.17.0-r1.ebuild            | 2 +-
 sys-fs/xfsprogs/xfsprogs-4.19.0.ebuild               | 2 +-
 sys-fs/xfsprogs/xfsprogs-4.20.0.ebuild               | 2 +-
 sys-fs/xfsprogs/xfsprogs-5.0.0.ebuild                | 2 +-
 sys-fs/zfs/zfs-0.6.5.11-r2.ebuild                    | 2 +-
 sys-fs/zfs/zfs-0.7.13.ebuild                         | 2 +-
 sys-fs/zfs/zfs-0.7.9999.ebuild                       | 2 +-
 sys-fs/zfs/zfs-0.8.1.ebuild                          | 2 +-
 sys-fs/zfs/zfs-9999.ebuild                           | 2 +-
 sys-libs/cracklib/cracklib-2.9.6-r2.ebuild           | 2 +-
 sys-libs/cracklib/cracklib-2.9.7.ebuild              | 2 +-
 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild | 2 +-
 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.6.ebuild | 2 +-
 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.1.ebuild | 2 +-
 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild | 2 +-
 sys-libs/glibc/glibc-2.19-r2.ebuild                  | 2 +-
 sys-libs/glibc/glibc-2.26-r7.ebuild                  | 2 +-
 sys-libs/glibc/glibc-2.27-r6.ebuild                  | 2 +-
 sys-libs/glibc/glibc-2.28-r6.ebuild                  | 2 +-
 sys-libs/glibc/glibc-2.29-r2.ebuild                  | 2 +-
 sys-libs/glibc/glibc-9999.ebuild                     | 2 +-
 sys-libs/gpm/gpm-1.20.7-r2.ebuild                    | 2 +-
 sys-libs/libaal/libaal-1.0.6.ebuild                  | 2 +-
 sys-libs/libaal/libaal-1.0.7-r1.ebuild               | 2 +-
 sys-libs/libaal/libaal-1.0.7.ebuild                  | 2 +-
 sys-libs/libcap/libcap-2.26-r2.ebuild                | 2 +-
 sys-libs/libcap/libcap-2.27.ebuild                   | 2 +-
 sys-libs/libnih/libnih-1.0.3-r3.ebuild               | 2 +-
 sys-libs/ncurses/ncurses-6.1-r2.ebuild               | 2 +-
 sys-libs/ncurses/ncurses-6.1-r3.ebuild               | 2 +-
 sys-libs/ncurses/ncurses-6.1_p20181020.ebuild        | 2 +-
 sys-libs/pam/pam-1.2.1-r2.ebuild                     | 2 +-
 sys-libs/pam/pam-1.3.0-r2.ebuild                     | 2 +-
 sys-libs/pam/pam-1.3.1-r1.ebuild                     | 2 +-
 sys-libs/pwdb/pwdb-0.62-r1.ebuild                    | 2 +-
 sys-libs/readline/readline-6.3_p8-r3.ebuild          | 2 +-
 sys-libs/readline/readline-7.0_p3-r1.ebuild          | 2 +-
 sys-libs/readline/readline-7.0_p3.ebuild             | 2 +-
 sys-libs/readline/readline-7.0_p5.ebuild             | 2 +-
 sys-libs/readline/readline-8.0.ebuild                | 2 +-
 sys-libs/zlib/zlib-1.2.11-r2.ebuild                  | 2 +-
 sys-process/audit/audit-2.6.4.ebuild                 | 2 +-
 sys-process/audit/audit-2.7.1.ebuild                 | 2 +-
 sys-process/audit/audit-2.8.2.ebuild                 | 2 +-
 sys-process/audit/audit-2.8.3.ebuild                 | 2 +-
 sys-process/audit/audit-2.8.4.ebuild                 | 2 +-
 sys-process/procps/procps-3.3.15-r1.ebuild           | 2 +-
 135 files changed, 135 insertions(+), 135 deletions(-)

diff --git a/app-accessibility/brltty/brltty-5.2-r1.ebuild b/app-accessibility/brltty/brltty-5.2-r1.ebuild
index 7f9cc71db5fd..ab9c8c096d17 100644
--- a/app-accessibility/brltty/brltty-5.2-r1.ebuild
+++ b/app-accessibility/brltty/brltty-5.2-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 PYTHON_COMPAT=( python2_7 python3_{5,6} )
 FINDLIB_USE="ocaml"
 
-inherit findlib eutils multilib toolchain-funcs java-pkg-opt-2 flag-o-matic \
+inherit findlib eutils multilib toolchain-funcs java-pkg-opt-2 flag-o-matic usr-ldscript \
 	autotools udev systemd python-r1
 
 DESCRIPTION="Daemon that provides access to the Linux/Unix console for a blind person"
diff --git a/app-accessibility/brltty/brltty-6.0-r1.ebuild b/app-accessibility/brltty/brltty-6.0-r1.ebuild
index cdc5b015c769..578a5f5d432f 100644
--- a/app-accessibility/brltty/brltty-6.0-r1.ebuild
+++ b/app-accessibility/brltty/brltty-6.0-r1.ebuild
@@ -8,7 +8,7 @@ FINDLIB_USE="ocaml"
 JAVA_PKG_WANT_SOURCE="1.8"
 JAVA_PKG_WANT_TARGET="1.8"
 
-inherit findlib eutils multilib toolchain-funcs java-pkg-opt-2 flag-o-matic \
+inherit findlib eutils multilib toolchain-funcs java-pkg-opt-2 flag-o-matic usr-ldscript \
 	autotools udev systemd python-r1
 
 DESCRIPTION="Daemon that provides access to the Linux/Unix console for a blind person"
diff --git a/app-arch/bzip2/bzip2-1.0.6-r11.ebuild b/app-arch/bzip2/bzip2-1.0.6-r11.ebuild
index 0bad400bb1de..09361b3bc875 100644
--- a/app-arch/bzip2/bzip2-1.0.6-r11.ebuild
+++ b/app-arch/bzip2/bzip2-1.0.6-r11.ebuild
@@ -6,7 +6,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
 HOMEPAGE="https://sourceware.org/bzip2/"
diff --git a/app-arch/bzip2/bzip2-1.0.7.ebuild b/app-arch/bzip2/bzip2-1.0.7.ebuild
index b0538f6ddf11..eb484311ab63 100644
--- a/app-arch/bzip2/bzip2-1.0.7.ebuild
+++ b/app-arch/bzip2/bzip2-1.0.7.ebuild
@@ -6,7 +6,7 @@
 
 EAPI=7
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
 HOMEPAGE="https://sourceware.org/bzip2/"
diff --git a/app-arch/bzip2/bzip2-1.0.8.ebuild b/app-arch/bzip2/bzip2-1.0.8.ebuild
index fd6f85299859..ffd93f563cb2 100644
--- a/app-arch/bzip2/bzip2-1.0.8.ebuild
+++ b/app-arch/bzip2/bzip2-1.0.8.ebuild
@@ -6,7 +6,7 @@
 
 EAPI=7
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
 HOMEPAGE="https://sourceware.org/bzip2/"
diff --git a/app-arch/bzip2/bzip2-9999.ebuild b/app-arch/bzip2/bzip2-9999.ebuild
index 1b4bac424b04..18d203a04c24 100644
--- a/app-arch/bzip2/bzip2-9999.ebuild
+++ b/app-arch/bzip2/bzip2-9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit meson multilib-minimal
+inherit meson multilib-minimal usr-ldscript
 
 DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
 HOMEPAGE="https://gitlab.com/federicomenaquintero/bzip2"
diff --git a/app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild b/app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild
index 3ba0a112b9ef..46b80edbb4e0 100644
--- a/app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild
+++ b/app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild
@@ -6,7 +6,7 @@
 
 EAPI=6
 
-inherit multilib toolchain-funcs libtool multilib-minimal preserve-libs
+inherit multilib toolchain-funcs libtool multilib-minimal preserve-libs usr-ldscript
 
 if [[ ${PV} == "9999" ]] ; then
 	EGIT_REPO_URI="https://git.tukaani.org/xz.git"
diff --git a/app-arch/xz-utils/xz-utils-5.2.4-r3.ebuild b/app-arch/xz-utils/xz-utils-5.2.4-r3.ebuild
index 249d0a2b31e2..ac156fa115ad 100644
--- a/app-arch/xz-utils/xz-utils-5.2.4-r3.ebuild
+++ b/app-arch/xz-utils/xz-utils-5.2.4-r3.ebuild
@@ -6,7 +6,7 @@
 
 EAPI=6
 
-inherit multilib toolchain-funcs libtool multilib-minimal preserve-libs
+inherit multilib toolchain-funcs libtool multilib-minimal preserve-libs usr-ldscript
 
 if [[ ${PV} == "9999" ]] ; then
 	EGIT_REPO_URI="https://git.tukaani.org/xz.git"
diff --git a/app-arch/xz-utils/xz-utils-9999.ebuild b/app-arch/xz-utils/xz-utils-9999.ebuild
index 249d0a2b31e2..ac156fa115ad 100644
--- a/app-arch/xz-utils/xz-utils-9999.ebuild
+++ b/app-arch/xz-utils/xz-utils-9999.ebuild
@@ -6,7 +6,7 @@
 
 EAPI=6
 
-inherit multilib toolchain-funcs libtool multilib-minimal preserve-libs
+inherit multilib toolchain-funcs libtool multilib-minimal preserve-libs usr-ldscript
 
 if [[ ${PV} == "9999" ]] ; then
 	EGIT_REPO_URI="https://git.tukaani.org/xz.git"
diff --git a/dev-libs/expat/expat-2.2.6.ebuild b/dev-libs/expat/expat-2.2.6.ebuild
index 1dcb23acd7cc..09463066ad8e 100644
--- a/dev-libs/expat/expat-2.2.6.ebuild
+++ b/dev-libs/expat/expat-2.2.6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 AUTOTOOLS_AUTO_DEPEND=no
-inherit autotools eutils libtool multilib toolchain-funcs multilib-minimal
+inherit autotools eutils libtool multilib toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Stream-oriented XML parser library"
 HOMEPAGE="https://libexpat.github.io/"
diff --git a/dev-libs/expat/expat-2.2.7.ebuild b/dev-libs/expat/expat-2.2.7.ebuild
index 10b55b52b3ce..fae01371c50f 100644
--- a/dev-libs/expat/expat-2.2.7.ebuild
+++ b/dev-libs/expat/expat-2.2.7.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 AUTOTOOLS_AUTO_DEPEND=no
-inherit autotools eutils libtool multilib toolchain-funcs multilib-minimal
+inherit autotools eutils libtool multilib toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Stream-oriented XML parser library"
 HOMEPAGE="https://libexpat.github.io/"
diff --git a/dev-libs/libaio/libaio-0.3.110.ebuild b/dev-libs/libaio/libaio-0.3.110.ebuild
index 5b5e2acaf55e..e8dbee25e771 100644
--- a/dev-libs/libaio/libaio-0.3.110.ebuild
+++ b/dev-libs/libaio/libaio-0.3.110.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit eutils multilib-minimal toolchain-funcs flag-o-matic
+inherit eutils multilib-minimal toolchain-funcs flag-o-matic usr-ldscript
 
 DESCRIPTION="Asynchronous input/output library that uses the kernels native interface"
 HOMEPAGE="http://lse.sourceforge.net/io/aio.html"
diff --git a/dev-libs/libaio/libaio-0.3.111.ebuild b/dev-libs/libaio/libaio-0.3.111.ebuild
index f0f972624dcf..926858c4ed94 100644
--- a/dev-libs/libaio/libaio-0.3.111.ebuild
+++ b/dev-libs/libaio/libaio-0.3.111.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit multilib-minimal toolchain-funcs flag-o-matic
+inherit multilib-minimal toolchain-funcs flag-o-matic usr-ldscript
 
 DESCRIPTION="Asynchronous input/output library that uses the kernels native interface"
 HOMEPAGE="https://pagure.io/libaio"
diff --git a/dev-libs/libaio/libaio-0.3.112.ebuild b/dev-libs/libaio/libaio-0.3.112.ebuild
index b6ff5d1d4215..17263d200f64 100644
--- a/dev-libs/libaio/libaio-0.3.112.ebuild
+++ b/dev-libs/libaio/libaio-0.3.112.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="7"
 
-inherit multilib-minimal toolchain-funcs flag-o-matic
+inherit multilib-minimal toolchain-funcs flag-o-matic usr-ldscript
 
 DESCRIPTION="Asynchronous input/output library that uses the kernels native interface"
 HOMEPAGE="https://pagure.io/libaio"
diff --git a/dev-libs/libaio/libaio-9999.ebuild b/dev-libs/libaio/libaio-9999.ebuild
index b6ff5d1d4215..17263d200f64 100644
--- a/dev-libs/libaio/libaio-9999.ebuild
+++ b/dev-libs/libaio/libaio-9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="7"
 
-inherit multilib-minimal toolchain-funcs flag-o-matic
+inherit multilib-minimal toolchain-funcs flag-o-matic usr-ldscript
 
 DESCRIPTION="Asynchronous input/output library that uses the kernels native interface"
 HOMEPAGE="https://pagure.io/libaio"
diff --git a/dev-libs/libedit/libedit-20130712.3.1.ebuild b/dev-libs/libedit/libedit-20130712.3.1.ebuild
index 6bf68ac10f6f..03923953f6d9 100644
--- a/dev-libs/libedit/libedit-20130712.3.1.ebuild
+++ b/dev-libs/libedit/libedit-20130712.3.1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit eutils toolchain-funcs versionator base multilib-minimal
+inherit eutils toolchain-funcs versionator base multilib-minimal usr-ldscript
 
 MY_PV=$(get_major_version)-$(get_after_major_version)
 MY_P=${PN}-${MY_PV}
diff --git a/dev-libs/libedit/libedit-20170329.3.1.ebuild b/dev-libs/libedit/libedit-20170329.3.1.ebuild
index 19cad65d54ad..bf68b0153f00 100644
--- a/dev-libs/libedit/libedit-20170329.3.1.ebuild
+++ b/dev-libs/libedit/libedit-20170329.3.1.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="6"
-inherit autotools multilib-minimal toolchain-funcs
+inherit autotools multilib-minimal toolchain-funcs usr-ldscript
 
 MY_PV=${PV/./-}
 MY_P=${PN}-${MY_PV}
diff --git a/dev-libs/libiconv/libiconv-1.14-r1.ebuild b/dev-libs/libiconv/libiconv-1.14-r1.ebuild
index 644bfafed5ea..c3c450b8a397 100644
--- a/dev-libs/libiconv/libiconv-1.14-r1.ebuild
+++ b/dev-libs/libiconv/libiconv-1.14-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="4"
 
-inherit libtool toolchain-funcs multilib-minimal
+inherit libtool toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="GNU charset conversion library for libc which doesn't implement it"
 HOMEPAGE="https://www.gnu.org/software/libiconv/"
diff --git a/dev-libs/libiconv/libiconv-1.15.ebuild b/dev-libs/libiconv/libiconv-1.15.ebuild
index 5d47b69f440f..e935e807bd3c 100644
--- a/dev-libs/libiconv/libiconv-1.15.ebuild
+++ b/dev-libs/libiconv/libiconv-1.15.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit libtool toolchain-funcs multilib-minimal
+inherit libtool toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="GNU charset conversion library for libc which doesn't implement it"
 HOMEPAGE="https://www.gnu.org/software/libiconv/"
diff --git a/dev-libs/libintl/libintl-0.19.7.ebuild b/dev-libs/libintl/libintl-0.19.7.ebuild
index 611831825144..00d244bd65c1 100644
--- a/dev-libs/libintl/libintl-0.19.7.ebuild
+++ b/dev-libs/libintl/libintl-0.19.7.ebuild
@@ -7,7 +7,7 @@ EAPI="5"
 
 MY_P="gettext-${PV}"
 
-inherit multilib-minimal toolchain-funcs libtool
+inherit multilib-minimal toolchain-funcs libtool usr-ldscript
 
 DESCRIPTION="the GNU international library (split out of gettext)"
 HOMEPAGE="https://www.gnu.org/software/gettext/"
diff --git a/dev-libs/libintl/libintl-0.19.8.1.ebuild b/dev-libs/libintl/libintl-0.19.8.1.ebuild
index 25e6cde3bcec..49b6bc0d32c3 100644
--- a/dev-libs/libintl/libintl-0.19.8.1.ebuild
+++ b/dev-libs/libintl/libintl-0.19.8.1.ebuild
@@ -7,7 +7,7 @@ EAPI="5"
 
 MY_P="gettext-${PV}"
 
-inherit multilib-minimal toolchain-funcs libtool
+inherit multilib-minimal toolchain-funcs libtool usr-ldscript
 
 DESCRIPTION="the GNU international library (split out of gettext)"
 HOMEPAGE="https://www.gnu.org/software/gettext/"
diff --git a/dev-libs/libintl/libintl-0.20.1.ebuild b/dev-libs/libintl/libintl-0.20.1.ebuild
index da2640badddb..464638fd8ba4 100644
--- a/dev-libs/libintl/libintl-0.20.1.ebuild
+++ b/dev-libs/libintl/libintl-0.20.1.ebuild
@@ -7,7 +7,7 @@ EAPI=7
 
 MY_P="gettext-${PV}"
 
-inherit multilib-minimal toolchain-funcs libtool
+inherit multilib-minimal toolchain-funcs libtool usr-ldscript
 
 DESCRIPTION="the GNU international library (split out of gettext)"
 HOMEPAGE="https://www.gnu.org/software/gettext/"
diff --git a/dev-libs/libpcre/libpcre-8.41-r1.ebuild b/dev-libs/libpcre/libpcre-8.41-r1.ebuild
index d6f935a21d87..a56a11099734 100644
--- a/dev-libs/libpcre/libpcre-8.41-r1.ebuild
+++ b/dev-libs/libpcre/libpcre-8.41-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit eutils multilib libtool flag-o-matic toolchain-funcs multilib-minimal
+inherit eutils multilib libtool flag-o-matic toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Perl-compatible regular expression library"
 HOMEPAGE="http://www.pcre.org/"
diff --git a/dev-libs/libpcre/libpcre-8.42.ebuild b/dev-libs/libpcre/libpcre-8.42.ebuild
index 5de61cf52e95..eac6c8167e91 100644
--- a/dev-libs/libpcre/libpcre-8.42.ebuild
+++ b/dev-libs/libpcre/libpcre-8.42.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit multilib libtool flag-o-matic toolchain-funcs multilib-minimal
+inherit multilib libtool flag-o-matic toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Perl-compatible regular expression library"
 HOMEPAGE="http://www.pcre.org/"
diff --git a/dev-libs/libpcre/libpcre-8.43.ebuild b/dev-libs/libpcre/libpcre-8.43.ebuild
index 3a5b54a20a8f..5f64e1c1ac8c 100644
--- a/dev-libs/libpcre/libpcre-8.43.ebuild
+++ b/dev-libs/libpcre/libpcre-8.43.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit multilib libtool flag-o-matic toolchain-funcs multilib-minimal
+inherit multilib libtool flag-o-matic toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Perl-compatible regular expression library"
 HOMEPAGE="http://www.pcre.org/"
diff --git a/dev-libs/libpcre2/libpcre2-10.32.ebuild b/dev-libs/libpcre2/libpcre2-10.32.ebuild
index 2f727e0827a6..46a1c5ac6da0 100644
--- a/dev-libs/libpcre2/libpcre2-10.32.ebuild
+++ b/dev-libs/libpcre2/libpcre2-10.32.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic libtool multilib-minimal toolchain-funcs
+inherit flag-o-matic libtool multilib-minimal toolchain-funcs usr-ldscript
 
 DESCRIPTION="Perl-compatible regular expression library"
 HOMEPAGE="http://www.pcre.org/"
diff --git a/dev-libs/libpcre2/libpcre2-10.33.ebuild b/dev-libs/libpcre2/libpcre2-10.33.ebuild
index 36feb39ef3d3..152a9b890bbe 100644
--- a/dev-libs/libpcre2/libpcre2-10.33.ebuild
+++ b/dev-libs/libpcre2/libpcre2-10.33.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic libtool multilib-minimal toolchain-funcs
+inherit flag-o-matic libtool multilib-minimal toolchain-funcs usr-ldscript
 
 DESCRIPTION="Perl-compatible regular expression library"
 HOMEPAGE="http://www.pcre.org/"
diff --git a/dev-libs/libpwquality/libpwquality-1.4.0.ebuild b/dev-libs/libpwquality/libpwquality-1.4.0.ebuild
index a27c196f0607..55e9c8b1b473 100644
--- a/dev-libs/libpwquality/libpwquality-1.4.0.ebuild
+++ b/dev-libs/libpwquality/libpwquality-1.4.0.ebuild
@@ -4,7 +4,7 @@
 EAPI=6
 PYTHON_COMPAT=( python{2_7,3_5,3_6} )
 
-inherit eutils multilib pam python-r1 toolchain-funcs
+inherit eutils multilib pam python-r1 toolchain-funcs usr-ldscript
 
 DESCRIPTION="Library for password quality checking and generating random passwords"
 HOMEPAGE="https://github.com/libpwquality/libpwquality"
diff --git a/dev-libs/libusb-compat/libusb-compat-0.1.5-r2.ebuild b/dev-libs/libusb-compat/libusb-compat-0.1.5-r2.ebuild
index a6572e20ab75..44ada6fd920c 100644
--- a/dev-libs/libusb-compat/libusb-compat-0.1.5-r2.ebuild
+++ b/dev-libs/libusb-compat/libusb-compat-0.1.5-r2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Userspace access to USB devices (libusb-0.1 compat wrapper)"
 HOMEPAGE="http://libusb.sourceforge.net/"
diff --git a/dev-libs/libusb-compat/libusb-compat-0.1.5-r3.ebuild b/dev-libs/libusb-compat/libusb-compat-0.1.5-r3.ebuild
index 4e620b5b8fb4..b69a4a60f75e 100644
--- a/dev-libs/libusb-compat/libusb-compat-0.1.5-r3.ebuild
+++ b/dev-libs/libusb-compat/libusb-compat-0.1.5-r3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Userspace access to USB devices (libusb-0.1 compat wrapper)"
 HOMEPAGE="http://libusb.sourceforge.net/"
diff --git a/dev-libs/libusb/libusb-1.0.19-r1.ebuild b/dev-libs/libusb/libusb-1.0.19-r1.ebuild
index c2aeaec6561f..0485e029b05d 100644
--- a/dev-libs/libusb/libusb-1.0.19-r1.ebuild
+++ b/dev-libs/libusb/libusb-1.0.19-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit multilib-minimal toolchain-funcs
+inherit multilib-minimal toolchain-funcs usr-ldscript
 
 DESCRIPTION="Userspace access to USB devices"
 HOMEPAGE="https://libusb.info/ https://github.com/libusb/libusb"
diff --git a/dev-libs/libusb/libusb-1.0.21.ebuild b/dev-libs/libusb/libusb-1.0.21.ebuild
index b9139ce49c31..660a93b597c9 100644
--- a/dev-libs/libusb/libusb-1.0.21.ebuild
+++ b/dev-libs/libusb/libusb-1.0.21.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit multilib-minimal toolchain-funcs
+inherit multilib-minimal toolchain-funcs usr-ldscript
 
 DESCRIPTION="Userspace access to USB devices"
 HOMEPAGE="https://libusb.info/ https://github.com/libusb/libusb"
diff --git a/dev-libs/libusb/libusb-1.0.22.ebuild b/dev-libs/libusb/libusb-1.0.22.ebuild
index 0b14288ec0d2..11f3472ae014 100644
--- a/dev-libs/libusb/libusb-1.0.22.ebuild
+++ b/dev-libs/libusb/libusb-1.0.22.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
-inherit ltprune toolchain-funcs multilib-minimal
+inherit ltprune toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Userspace access to USB devices"
 HOMEPAGE="https://libusb.info/ https://github.com/libusb/libusb"
diff --git a/dev-libs/lzo/lzo-2.10.ebuild b/dev-libs/lzo/lzo-2.10.ebuild
index 2960660b6803..34b3f895ccc1 100644
--- a/dev-libs/lzo/lzo-2.10.ebuild
+++ b/dev-libs/lzo/lzo-2.10.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit multilib-minimal toolchain-funcs
+inherit multilib-minimal toolchain-funcs usr-ldscript
 
 DESCRIPTION="An extremely fast compression and decompression library"
 HOMEPAGE="http://www.oberhumer.com/opensource/lzo/"
diff --git a/net-firewall/iptables/iptables-1.6.1-r3.ebuild b/net-firewall/iptables/iptables-1.6.1-r3.ebuild
index 1a3c753e2820..8c2f8c8173fa 100644
--- a/net-firewall/iptables/iptables-1.6.1-r3.ebuild
+++ b/net-firewall/iptables/iptables-1.6.1-r3.ebuild
@@ -6,7 +6,7 @@ EAPI="5"
 # Force users doing their own patches to install their own tools
 AUTOTOOLS_AUTO_DEPEND=no
 
-inherit eutils multilib systemd toolchain-funcs autotools flag-o-matic
+inherit eutils multilib systemd toolchain-funcs autotools flag-o-matic usr-ldscript
 
 DESCRIPTION="Linux kernel (2.4+) firewall, NAT and packet mangling tools"
 HOMEPAGE="https://www.netfilter.org/projects/iptables/"
diff --git a/net-firewall/iptables/iptables-1.6.2-r2.ebuild b/net-firewall/iptables/iptables-1.6.2-r2.ebuild
index 6688c68b711c..40d1b1f8de5f 100644
--- a/net-firewall/iptables/iptables-1.6.2-r2.ebuild
+++ b/net-firewall/iptables/iptables-1.6.2-r2.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 # Force users doing their own patches to install their own tools
 AUTOTOOLS_AUTO_DEPEND=no
 
-inherit ltprune multilib systemd toolchain-funcs autotools flag-o-matic
+inherit ltprune multilib systemd toolchain-funcs autotools flag-o-matic usr-ldscript
 
 DESCRIPTION="Linux kernel (2.4+) firewall, NAT and packet mangling tools"
 HOMEPAGE="https://www.netfilter.org/projects/iptables/"
diff --git a/net-firewall/iptables/iptables-1.8.2-r2.ebuild b/net-firewall/iptables/iptables-1.8.2-r2.ebuild
index c739239e1fbb..65bb18d8aad2 100644
--- a/net-firewall/iptables/iptables-1.8.2-r2.ebuild
+++ b/net-firewall/iptables/iptables-1.8.2-r2.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 # Force users doing their own patches to install their own tools
 AUTOTOOLS_AUTO_DEPEND=no
 
-inherit multilib systemd toolchain-funcs autotools flag-o-matic
+inherit multilib systemd toolchain-funcs autotools flag-o-matic usr-ldscript
 
 DESCRIPTION="Linux kernel (2.4+) firewall, NAT and packet mangling tools"
 HOMEPAGE="https://www.netfilter.org/projects/iptables/"
diff --git a/net-firewall/iptables/iptables-1.8.3-r1.ebuild b/net-firewall/iptables/iptables-1.8.3-r1.ebuild
index bd4baa71ef07..108426718102 100644
--- a/net-firewall/iptables/iptables-1.8.3-r1.ebuild
+++ b/net-firewall/iptables/iptables-1.8.3-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=7
 # Force users doing their own patches to install their own tools
 AUTOTOOLS_AUTO_DEPEND=no
 
-inherit multilib systemd toolchain-funcs autotools flag-o-matic
+inherit multilib systemd toolchain-funcs autotools flag-o-matic usr-ldscript
 
 DESCRIPTION="Linux kernel (2.4+) firewall, NAT and packet mangling tools"
 HOMEPAGE="https://www.netfilter.org/projects/iptables/"
diff --git a/net-libs/libmnl/libmnl-1.0.3-r1.ebuild b/net-libs/libmnl/libmnl-1.0.3-r1.ebuild
index 32cb3b12ff39..316073b5786e 100644
--- a/net-libs/libmnl/libmnl-1.0.3-r1.ebuild
+++ b/net-libs/libmnl/libmnl-1.0.3-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=4
 
-inherit eutils toolchain-funcs
+inherit eutils toolchain-funcs usr-ldscript
 
 DESCRIPTION="Minimalistic netlink library"
 HOMEPAGE="https://netfilter.org/projects/libmnl/"
diff --git a/net-libs/libmnl/libmnl-1.0.4.ebuild b/net-libs/libmnl/libmnl-1.0.4.ebuild
index af3095f7d746..fd97a5559d26 100644
--- a/net-libs/libmnl/libmnl-1.0.4.ebuild
+++ b/net-libs/libmnl/libmnl-1.0.4.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit eutils toolchain-funcs
+inherit eutils toolchain-funcs usr-ldscript
 
 DESCRIPTION="Minimalistic netlink library"
 HOMEPAGE="https://netfilter.org/projects/libmnl/"
diff --git a/net-libs/libnftnl/libnftnl-1.0.8-r1.ebuild b/net-libs/libnftnl/libnftnl-1.0.8-r1.ebuild
index 2d6458565f50..469321c67eb3 100644
--- a/net-libs/libnftnl/libnftnl-1.0.8-r1.ebuild
+++ b/net-libs/libnftnl/libnftnl-1.0.8-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit autotools linux-info toolchain-funcs
+inherit autotools linux-info toolchain-funcs usr-ldscript
 
 DESCRIPTION="Netlink API to the in-kernel nf_tables subsystem"
 HOMEPAGE="https://netfilter.org/projects/nftables/"
diff --git a/net-libs/libnftnl/libnftnl-1.1.1-r1.ebuild b/net-libs/libnftnl/libnftnl-1.1.1-r1.ebuild
index 078b64bdd182..e6bf90ec6c46 100644
--- a/net-libs/libnftnl/libnftnl-1.1.1-r1.ebuild
+++ b/net-libs/libnftnl/libnftnl-1.1.1-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit autotools linux-info toolchain-funcs
+inherit autotools linux-info toolchain-funcs usr-ldscript
 
 DESCRIPTION="Netlink API to the in-kernel nf_tables subsystem"
 HOMEPAGE="https://netfilter.org/projects/nftables/"
diff --git a/net-libs/libnftnl/libnftnl-1.1.2-r1.ebuild b/net-libs/libnftnl/libnftnl-1.1.2-r1.ebuild
index f30e15c1dafc..b1708f1cde2b 100644
--- a/net-libs/libnftnl/libnftnl-1.1.2-r1.ebuild
+++ b/net-libs/libnftnl/libnftnl-1.1.2-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit autotools linux-info toolchain-funcs
+inherit autotools linux-info toolchain-funcs usr-ldscript
 
 DESCRIPTION="Netlink API to the in-kernel nf_tables subsystem"
 HOMEPAGE="https://netfilter.org/projects/nftables/"
diff --git a/net-libs/libnftnl/libnftnl-1.1.3.ebuild b/net-libs/libnftnl/libnftnl-1.1.3.ebuild
index fef5f291c8c5..ac6405559337 100644
--- a/net-libs/libnftnl/libnftnl-1.1.3.ebuild
+++ b/net-libs/libnftnl/libnftnl-1.1.3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit autotools linux-info toolchain-funcs
+inherit autotools linux-info toolchain-funcs usr-ldscript
 
 DESCRIPTION="Netlink API to the in-kernel nf_tables subsystem"
 HOMEPAGE="https://netfilter.org/projects/nftables/"
diff --git a/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild b/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild
index effab58d64ba..18d84c39cbc4 100644
--- a/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild
+++ b/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="5"
 
-inherit autotools multilib-minimal toolchain-funcs eutils
+inherit autotools multilib-minimal toolchain-funcs eutils usr-ldscript
 
 DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
 HOMEPAGE="http://libtirpc.sourceforge.net/"
diff --git a/net-libs/libtirpc/libtirpc-1.0.3.ebuild b/net-libs/libtirpc/libtirpc-1.0.3.ebuild
index edd425c4147f..f11a57ae4b22 100644
--- a/net-libs/libtirpc/libtirpc-1.0.3.ebuild
+++ b/net-libs/libtirpc/libtirpc-1.0.3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit autotools multilib-minimal toolchain-funcs
+inherit autotools multilib-minimal toolchain-funcs usr-ldscript
 
 DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
 HOMEPAGE="http://libtirpc.sourceforge.net/"
diff --git a/net-libs/libtirpc/libtirpc-1.1.4.ebuild b/net-libs/libtirpc/libtirpc-1.1.4.ebuild
index 379d48aabec7..154c5fcdab39 100644
--- a/net-libs/libtirpc/libtirpc-1.1.4.ebuild
+++ b/net-libs/libtirpc/libtirpc-1.1.4.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit autotools multilib-minimal toolchain-funcs
+inherit autotools multilib-minimal toolchain-funcs usr-ldscript
 
 DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
 HOMEPAGE="http://libtirpc.sourceforge.net/"
diff --git a/sys-apps/acl/acl-2.2.52-r1.ebuild b/sys-apps/acl/acl-2.2.52-r1.ebuild
index bdd5e9b35d2c..11c8d630a18c 100644
--- a/sys-apps/acl/acl-2.2.52-r1.ebuild
+++ b/sys-apps/acl/acl-2.2.52-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="4"
 
-inherit eutils libtool toolchain-funcs multilib-minimal
+inherit eutils libtool toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="access control list utilities, libraries and headers"
 HOMEPAGE="https://savannah.nongnu.org/projects/acl"
diff --git a/sys-apps/acl/acl-2.2.53.ebuild b/sys-apps/acl/acl-2.2.53.ebuild
index 0f86e64949fb..97265989420a 100644
--- a/sys-apps/acl/acl-2.2.53.ebuild
+++ b/sys-apps/acl/acl-2.2.53.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit libtool ltprune toolchain-funcs multilib-minimal
+inherit libtool ltprune toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="access control list utilities, libraries and headers"
 HOMEPAGE="https://savannah.nongnu.org/projects/acl"
diff --git a/sys-apps/attr/attr-2.4.47-r2.ebuild b/sys-apps/attr/attr-2.4.47-r2.ebuild
index 73a66e95a563..62babe4016f4 100644
--- a/sys-apps/attr/attr-2.4.47-r2.ebuild
+++ b/sys-apps/attr/attr-2.4.47-r2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="4"
 
-inherit eutils libtool toolchain-funcs multilib-minimal
+inherit eutils libtool toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Extended attributes tools"
 HOMEPAGE="https://savannah.nongnu.org/projects/attr"
diff --git a/sys-apps/attr/attr-2.4.48-r2.ebuild b/sys-apps/attr/attr-2.4.48-r2.ebuild
index cddd683796bf..0f25cfed5ee3 100644
--- a/sys-apps/attr/attr-2.4.48-r2.ebuild
+++ b/sys-apps/attr/attr-2.4.48-r2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit libtool ltprune toolchain-funcs multilib-minimal
+inherit libtool ltprune toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Extended attributes tools"
 HOMEPAGE="https://savannah.nongnu.org/projects/attr"
diff --git a/sys-apps/attr/attr-2.4.48-r3.ebuild b/sys-apps/attr/attr-2.4.48-r3.ebuild
index fc52baba5793..15333e644dad 100644
--- a/sys-apps/attr/attr-2.4.48-r3.ebuild
+++ b/sys-apps/attr/attr-2.4.48-r3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit libtool toolchain-funcs multilib-minimal
+inherit libtool toolchain-funcs multilib-minimal usr-ldscript
 
 DESCRIPTION="Extended attributes tools"
 HOMEPAGE="https://savannah.nongnu.org/projects/attr"
diff --git a/sys-apps/dmapi/dmapi-2.2.12-r1.ebuild b/sys-apps/dmapi/dmapi-2.2.12-r1.ebuild
index 4ef5173b2030..db8656744f24 100644
--- a/sys-apps/dmapi/dmapi-2.2.12-r1.ebuild
+++ b/sys-apps/dmapi/dmapi-2.2.12-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="5"
 
-inherit eutils toolchain-funcs multilib multilib-minimal
+inherit eutils toolchain-funcs multilib multilib-minimal usr-ldscript
 
 DESCRIPTION="XFS data management API library"
 HOMEPAGE="https://xfs.wiki.kernel.org/"
diff --git a/sys-apps/keyutils/keyutils-1.5.11-r1.ebuild b/sys-apps/keyutils/keyutils-1.5.11-r1.ebuild
index 23be07210bad..d133ff0065c1 100644
--- a/sys-apps/keyutils/keyutils-1.5.11-r1.ebuild
+++ b/sys-apps/keyutils/keyutils-1.5.11-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit multilib toolchain-funcs linux-info multilib-minimal
+inherit multilib toolchain-funcs linux-info multilib-minimal usr-ldscript
 
 DESCRIPTION="Linux Key Management Utilities"
 HOMEPAGE="https://people.redhat.com/dhowells/keyutils/"
diff --git a/sys-apps/keyutils/keyutils-1.5.9-r4.ebuild b/sys-apps/keyutils/keyutils-1.5.9-r4.ebuild
index 9270c709bd7f..dfe742f2070a 100644
--- a/sys-apps/keyutils/keyutils-1.5.9-r4.ebuild
+++ b/sys-apps/keyutils/keyutils-1.5.9-r4.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="5"
 
-inherit multilib eutils toolchain-funcs linux-info multilib-minimal
+inherit multilib eutils toolchain-funcs linux-info multilib-minimal usr-ldscript
 
 DESCRIPTION="Linux Key Management Utilities"
 HOMEPAGE="https://people.redhat.com/dhowells/keyutils/"
diff --git a/sys-apps/keyutils/keyutils-1.6.ebuild b/sys-apps/keyutils/keyutils-1.6.ebuild
index eeca7d4ac1f6..b09c313644d6 100644
--- a/sys-apps/keyutils/keyutils-1.6.ebuild
+++ b/sys-apps/keyutils/keyutils-1.6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit multilib toolchain-funcs linux-info multilib-minimal
+inherit multilib toolchain-funcs linux-info multilib-minimal usr-ldscript
 
 DESCRIPTION="Linux Key Management Utilities"
 HOMEPAGE="https://people.redhat.com/dhowells/keyutils/"
diff --git a/sys-apps/openrc/openrc-0.34.11.ebuild b/sys-apps/openrc/openrc-0.34.11.ebuild
index 7fd281798c14..9ae507eb58b0 100644
--- a/sys-apps/openrc/openrc-0.34.11.ebuild
+++ b/sys-apps/openrc/openrc-0.34.11.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic pam toolchain-funcs
+inherit flag-o-matic pam toolchain-funcs usr-ldscript
 
 DESCRIPTION="OpenRC manages the services, startup and shutdown of a host"
 HOMEPAGE="https://github.com/openrc/openrc/"
diff --git a/sys-apps/openrc/openrc-0.38.3-r1.ebuild b/sys-apps/openrc/openrc-0.38.3-r1.ebuild
index 0aac6fcda8c0..e9d7ad4ad0c1 100644
--- a/sys-apps/openrc/openrc-0.38.3-r1.ebuild
+++ b/sys-apps/openrc/openrc-0.38.3-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic pam toolchain-funcs
+inherit flag-o-matic pam toolchain-funcs usr-ldscript
 
 DESCRIPTION="OpenRC manages the services, startup and shutdown of a host"
 HOMEPAGE="https://github.com/openrc/openrc/"
diff --git a/sys-apps/openrc/openrc-0.38.3.ebuild b/sys-apps/openrc/openrc-0.38.3.ebuild
index 36b27b7c1239..f11de7bde25d 100644
--- a/sys-apps/openrc/openrc-0.38.3.ebuild
+++ b/sys-apps/openrc/openrc-0.38.3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic pam toolchain-funcs
+inherit flag-o-matic pam toolchain-funcs usr-ldscript
 
 DESCRIPTION="OpenRC manages the services, startup and shutdown of a host"
 HOMEPAGE="https://github.com/openrc/openrc/"
diff --git a/sys-apps/openrc/openrc-0.41.2.ebuild b/sys-apps/openrc/openrc-0.41.2.ebuild
index f1133a48f97f..efd8b930cfff 100644
--- a/sys-apps/openrc/openrc-0.41.2.ebuild
+++ b/sys-apps/openrc/openrc-0.41.2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic pam toolchain-funcs
+inherit flag-o-matic pam toolchain-funcs usr-ldscript
 
 DESCRIPTION="OpenRC manages the services, startup and shutdown of a host"
 HOMEPAGE="https://github.com/openrc/openrc/"
diff --git a/sys-apps/openrc/openrc-9999.ebuild b/sys-apps/openrc/openrc-9999.ebuild
index 1ad60296587a..11160d67f9bc 100644
--- a/sys-apps/openrc/openrc-9999.ebuild
+++ b/sys-apps/openrc/openrc-9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic pam toolchain-funcs
+inherit flag-o-matic pam toolchain-funcs usr-ldscript
 
 DESCRIPTION="OpenRC manages the services, startup and shutdown of a host"
 HOMEPAGE="https://github.com/openrc/openrc/"
diff --git a/sys-apps/tcp-wrappers/tcp-wrappers-7.6.22-r1.ebuild b/sys-apps/tcp-wrappers/tcp-wrappers-7.6.22-r1.ebuild
index ce6284cf8b66..f1edc84189b8 100644
--- a/sys-apps/tcp-wrappers/tcp-wrappers-7.6.22-r1.ebuild
+++ b/sys-apps/tcp-wrappers/tcp-wrappers-7.6.22-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="4"
 
-inherit eutils toolchain-funcs versionator flag-o-matic multilib-minimal
+inherit eutils toolchain-funcs versionator flag-o-matic multilib-minimal usr-ldscript
 
 MY_PV=$(get_version_component_range 1-2)
 DEB_PV=$(get_version_component_range 3)
diff --git a/sys-apps/util-linux/util-linux-2.33-r1.ebuild b/sys-apps/util-linux/util-linux-2.33-r1.ebuild
index 1655fa2b7b99..48646c81ec91 100644
--- a/sys-apps/util-linux/util-linux-2.33-r1.ebuild
+++ b/sys-apps/util-linux/util-linux-2.33-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 
 PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
 
-inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
+inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 usr-ldscript \
 	pam python-r1 multilib-minimal multiprocessing systemd
 
 MY_PV="${PV/_/-}"
diff --git a/sys-apps/util-linux/util-linux-2.33.1.ebuild b/sys-apps/util-linux/util-linux-2.33.1.ebuild
index 661e74c09f59..cf434f37b7d6 100644
--- a/sys-apps/util-linux/util-linux-2.33.1.ebuild
+++ b/sys-apps/util-linux/util-linux-2.33.1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 
 PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
 
-inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
+inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 usr-ldscript \
 	pam python-r1 multilib-minimal multiprocessing systemd
 
 MY_PV="${PV/_/-}"
diff --git a/sys-apps/util-linux/util-linux-2.33.2.ebuild b/sys-apps/util-linux/util-linux-2.33.2.ebuild
index f8deb925a000..603e9b589105 100644
--- a/sys-apps/util-linux/util-linux-2.33.2.ebuild
+++ b/sys-apps/util-linux/util-linux-2.33.2.ebuild
@@ -5,7 +5,7 @@ EAPI=6
 
 PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
 
-inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
+inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 usr-ldscript \
 	pam python-r1 multilib-minimal multiprocessing systemd
 
 MY_PV="${PV/_/-}"
diff --git a/sys-apps/util-linux/util-linux-2.34-r2.ebuild b/sys-apps/util-linux/util-linux-2.34-r2.ebuild
index 89fd6458e7b2..166323bf558c 100644
--- a/sys-apps/util-linux/util-linux-2.34-r2.ebuild
+++ b/sys-apps/util-linux/util-linux-2.34-r2.ebuild
@@ -5,7 +5,7 @@ EAPI=7
 
 PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
 
-inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
+inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 usr-ldscript \
 	pam python-r1 multilib-minimal multiprocessing systemd
 
 MY_PV="${PV/_/-}"
diff --git a/sys-apps/util-linux/util-linux-9999.ebuild b/sys-apps/util-linux/util-linux-9999.ebuild
index 89fd6458e7b2..166323bf558c 100644
--- a/sys-apps/util-linux/util-linux-9999.ebuild
+++ b/sys-apps/util-linux/util-linux-9999.ebuild
@@ -5,7 +5,7 @@ EAPI=7
 
 PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
 
-inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
+inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 usr-ldscript \
 	pam python-r1 multilib-minimal multiprocessing systemd
 
 MY_PV="${PV/_/-}"
diff --git a/sys-auth/skey/skey-1.1.5-r11.ebuild b/sys-auth/skey/skey-1.1.5-r11.ebuild
index 1100c546e4fc..20fa205171d0 100644
--- a/sys-auth/skey/skey-1.1.5-r11.ebuild
+++ b/sys-auth/skey/skey-1.1.5-r11.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs readme.gentoo-r1
+inherit toolchain-funcs readme.gentoo-r1 usr-ldscript
 
 DESCRIPTION="Linux Port of OpenBSD Single-key Password System"
 HOMEPAGE="http://www.openbsd.org/faq/faq8.html#SKey"
diff --git a/sys-freebsd/freebsd-cddl/freebsd-cddl-11.1.ebuild b/sys-freebsd/freebsd-cddl/freebsd-cddl-11.1.ebuild
index 673b4bd19b29..06a875225fed 100644
--- a/sys-freebsd/freebsd-cddl/freebsd-cddl-11.1.ebuild
+++ b/sys-freebsd/freebsd-cddl/freebsd-cddl-11.1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit bsdmk freebsd toolchain-funcs multilib
+inherit bsdmk freebsd toolchain-funcs multilib usr-ldscript
 
 DESCRIPTION="FreeBSD CDDL (opensolaris/zfs) extra software"
 SLOT="0"
diff --git a/sys-freebsd/freebsd-cddl/freebsd-cddl-9.1.ebuild b/sys-freebsd/freebsd-cddl/freebsd-cddl-9.1.ebuild
index 9191274069da..517b17da8e2c 100644
--- a/sys-freebsd/freebsd-cddl/freebsd-cddl-9.1.ebuild
+++ b/sys-freebsd/freebsd-cddl/freebsd-cddl-9.1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=4
 
-inherit bsdmk freebsd toolchain-funcs multilib
+inherit bsdmk freebsd toolchain-funcs multilib usr-ldscript
 
 DESCRIPTION="FreeBSD CDDL (opensolaris/zfs) extra software"
 SLOT="0"
diff --git a/sys-freebsd/freebsd-lib/freebsd-lib-11.1-r1.ebuild b/sys-freebsd/freebsd-lib/freebsd-lib-11.1-r1.ebuild
index cd66d1e6bd91..68bc1432a8a3 100644
--- a/sys-freebsd/freebsd-lib/freebsd-lib-11.1-r1.ebuild
+++ b/sys-freebsd/freebsd-lib/freebsd-lib-11.1-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit bsdmk freebsd flag-o-matic multilib toolchain-funcs eutils multibuild multilib-build
+inherit bsdmk freebsd flag-o-matic multilib toolchain-funcs eutils multibuild multilib-build usr-ldscript
 
 DESCRIPTION="FreeBSD's base system libraries"
 SLOT="0"
diff --git a/sys-freebsd/freebsd-lib/freebsd-lib-9.1-r11.ebuild b/sys-freebsd/freebsd-lib/freebsd-lib-9.1-r11.ebuild
index 500ae3dcf0ab..354d1d40f722 100644
--- a/sys-freebsd/freebsd-lib/freebsd-lib-9.1-r11.ebuild
+++ b/sys-freebsd/freebsd-lib/freebsd-lib-9.1-r11.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit bsdmk freebsd flag-o-matic multilib toolchain-funcs eutils multibuild multilib-build
+inherit bsdmk freebsd flag-o-matic multilib toolchain-funcs eutils multibuild multilib-build usr-ldscript
 
 DESCRIPTION="FreeBSD's base system libraries"
 SLOT="0"
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.44.5.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.44.5.ebuild
index 78f00a2c0a26..94a537874026 100644
--- a/sys-fs/e2fsprogs/e2fsprogs-1.44.5.ebuild
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.44.5.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit flag-o-matic multilib toolchain-funcs
+inherit flag-o-matic multilib toolchain-funcs usr-ldscript
 
 DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities"
 HOMEPAGE="http://e2fsprogs.sourceforge.net/"
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.44.6.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.44.6.ebuild
index 8dc1b6efbfd7..9f9a16850ec7 100644
--- a/sys-fs/e2fsprogs/e2fsprogs-1.44.6.ebuild
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.44.6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit flag-o-matic multilib toolchain-funcs
+inherit flag-o-matic multilib toolchain-funcs usr-ldscript
 
 DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities"
 HOMEPAGE="http://e2fsprogs.sourceforge.net/"
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.45.1-r1.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.45.1-r1.ebuild
index c0ce32929e1b..e8d3b12ae9d9 100644
--- a/sys-fs/e2fsprogs/e2fsprogs-1.45.1-r1.ebuild
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.45.1-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit flag-o-matic systemd toolchain-funcs udev
+inherit flag-o-matic systemd toolchain-funcs udev usr-ldscript
 
 DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities"
 HOMEPAGE="http://e2fsprogs.sourceforge.net/"
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.45.2.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.45.2.ebuild
index 0a5a645000b5..a0376e387d27 100644
--- a/sys-fs/e2fsprogs/e2fsprogs-1.45.2.ebuild
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.45.2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit flag-o-matic systemd toolchain-funcs udev
+inherit flag-o-matic systemd toolchain-funcs udev usr-ldscript
 
 DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities"
 HOMEPAGE="http://e2fsprogs.sourceforge.net/"
diff --git a/sys-fs/lvm2/lvm2-2.02.116.ebuild b/sys-fs/lvm2/lvm2-2.02.116.ebuild
index 25f00eb6d517..c08ea9082043 100644
--- a/sys-fs/lvm2/lvm2-2.02.116.ebuild
+++ b/sys-fs/lvm2/lvm2-2.02.116.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
-inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic usr-ldscript
 
 DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
 HOMEPAGE="https://sourceware.org/lvm2/"
diff --git a/sys-fs/lvm2/lvm2-2.02.145-r2.ebuild b/sys-fs/lvm2/lvm2-2.02.145-r2.ebuild
index 31435ff9d055..9123620e40b1 100644
--- a/sys-fs/lvm2/lvm2-2.02.145-r2.ebuild
+++ b/sys-fs/lvm2/lvm2-2.02.145-r2.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
-inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic usr-ldscript
 
 DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
 HOMEPAGE="https://sourceware.org/lvm2/"
diff --git a/sys-fs/lvm2/lvm2-2.02.183.ebuild b/sys-fs/lvm2/lvm2-2.02.183.ebuild
index a42fa720445f..1b37eab4af34 100644
--- a/sys-fs/lvm2/lvm2-2.02.183.ebuild
+++ b/sys-fs/lvm2/lvm2-2.02.183.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
-inherit autotools linux-info multilib systemd toolchain-funcs udev flag-o-matic
+inherit autotools linux-info multilib systemd toolchain-funcs udev flag-o-matic usr-ldscript
 
 DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
 HOMEPAGE="https://sourceware.org/lvm2/"
diff --git a/sys-fs/lvm2/lvm2-2.02.184-r4.ebuild b/sys-fs/lvm2/lvm2-2.02.184-r4.ebuild
index 5841cdc1a4da..8bdc388eb348 100644
--- a/sys-fs/lvm2/lvm2-2.02.184-r4.ebuild
+++ b/sys-fs/lvm2/lvm2-2.02.184-r4.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
-inherit autotools linux-info multilib systemd toolchain-funcs udev flag-o-matic
+inherit autotools linux-info multilib systemd toolchain-funcs udev flag-o-matic usr-ldscript
 
 DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
 HOMEPAGE="https://sourceware.org/lvm2/"
diff --git a/sys-fs/lvm2/lvm2-2.02.185.ebuild b/sys-fs/lvm2/lvm2-2.02.185.ebuild
index 871a483ce9f3..2912f4832990 100644
--- a/sys-fs/lvm2/lvm2-2.02.185.ebuild
+++ b/sys-fs/lvm2/lvm2-2.02.185.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
-inherit autotools linux-info multilib systemd toolchain-funcs udev flag-o-matic
+inherit autotools linux-info multilib systemd toolchain-funcs udev flag-o-matic usr-ldscript
 
 DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
 HOMEPAGE="https://sourceware.org/lvm2/"
diff --git a/sys-fs/lvm2/lvm2-2.03.05.ebuild b/sys-fs/lvm2/lvm2-2.03.05.ebuild
index f82f1a6846b5..c605404faf84 100644
--- a/sys-fs/lvm2/lvm2-2.03.05.ebuild
+++ b/sys-fs/lvm2/lvm2-2.03.05.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
-inherit autotools linux-info multilib systemd toolchain-funcs udev flag-o-matic
+inherit autotools linux-info multilib systemd toolchain-funcs udev flag-o-matic usr-ldscript
 
 DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
 HOMEPAGE="https://sourceware.org/lvm2/"
diff --git a/sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild b/sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild
index b4bf73709751..09e280d49e72 100644
--- a/sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild
+++ b/sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="4"
 
-inherit multilib eutils toolchain-funcs
+inherit multilib eutils toolchain-funcs usr-ldscript
 
 DESCRIPTION="reiser4progs: mkfs, fsck, etc..."
 HOMEPAGE="https://sourceforge.net/projects/reiser4/"
diff --git a/sys-fs/reiser4progs/reiser4progs-1.2.0.ebuild b/sys-fs/reiser4progs/reiser4progs-1.2.0.ebuild
index 2eea9f465d4e..d1dfac41fa30 100644
--- a/sys-fs/reiser4progs/reiser4progs-1.2.0.ebuild
+++ b/sys-fs/reiser4progs/reiser4progs-1.2.0.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit multilib eutils toolchain-funcs
+inherit multilib eutils toolchain-funcs usr-ldscript
 
 DESCRIPTION="reiser4progs: mkfs, fsck, etc..."
 HOMEPAGE="https://sourceforge.net/projects/reiser4/"
diff --git a/sys-fs/reiser4progs/reiser4progs-1.2.1.ebuild b/sys-fs/reiser4progs/reiser4progs-1.2.1.ebuild
index 1e0a57a8fb8d..0c268dd4ffc2 100644
--- a/sys-fs/reiser4progs/reiser4progs-1.2.1.ebuild
+++ b/sys-fs/reiser4progs/reiser4progs-1.2.1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit multilib eutils toolchain-funcs
+inherit multilib eutils toolchain-funcs usr-ldscript
 
 DESCRIPTION="reiser4progs: mkfs, fsck, etc..."
 HOMEPAGE="https://sourceforge.net/projects/reiser4/"
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild
index 89edb77da894..136fa84d1c7f 100644
--- a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="5"
 
-inherit eutils flag-o-matic
+inherit eutils flag-o-matic usr-ldscript
 
 DESCRIPTION="Reiserfs Utilities"
 HOMEPAGE="https://www.kernel.org/pub/linux/utils/fs/reiserfs/"
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild
index 7b78ae3280d9..4dbf1f47be7a 100644
--- a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit autotools flag-o-matic
+inherit autotools flag-o-matic usr-ldscript
 
 DESCRIPTION="Reiserfs Utilities"
 HOMEPAGE="https://www.kernel.org/pub/linux/utils/fs/reiserfs/"
diff --git a/sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild b/sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild
index b4194627134d..6cbfd5ef5e3f 100644
--- a/sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild
+++ b/sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
-inherit autotools toolchain-funcs
+inherit autotools toolchain-funcs usr-ldscript
 
 DESCRIPTION="System Utilities Based on Sysfs"
 HOMEPAGE="http://linux-diag.sourceforge.net/Sysfsutils.html"
diff --git a/sys-fs/xfsprogs/xfsprogs-4.17.0-r1.ebuild b/sys-fs/xfsprogs/xfsprogs-4.17.0-r1.ebuild
index 8e1861b25c61..1fd9976f056b 100644
--- a/sys-fs/xfsprogs/xfsprogs-4.17.0-r1.ebuild
+++ b/sys-fs/xfsprogs/xfsprogs-4.17.0-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs multilib systemd
+inherit toolchain-funcs multilib systemd usr-ldscript
 
 DESCRIPTION="xfs filesystem utilities"
 HOMEPAGE="https://xfs.wiki.kernel.org/"
diff --git a/sys-fs/xfsprogs/xfsprogs-4.19.0.ebuild b/sys-fs/xfsprogs/xfsprogs-4.19.0.ebuild
index 6e3d050f54b1..ae8d51e34a04 100644
--- a/sys-fs/xfsprogs/xfsprogs-4.19.0.ebuild
+++ b/sys-fs/xfsprogs/xfsprogs-4.19.0.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs multilib systemd
+inherit toolchain-funcs multilib systemd usr-ldscript
 
 DESCRIPTION="xfs filesystem utilities"
 HOMEPAGE="https://xfs.wiki.kernel.org/"
diff --git a/sys-fs/xfsprogs/xfsprogs-4.20.0.ebuild b/sys-fs/xfsprogs/xfsprogs-4.20.0.ebuild
index d676076b7dc9..79a212d5e50d 100644
--- a/sys-fs/xfsprogs/xfsprogs-4.20.0.ebuild
+++ b/sys-fs/xfsprogs/xfsprogs-4.20.0.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs multilib systemd
+inherit toolchain-funcs multilib systemd usr-ldscript
 
 DESCRIPTION="xfs filesystem utilities"
 HOMEPAGE="https://xfs.wiki.kernel.org/"
diff --git a/sys-fs/xfsprogs/xfsprogs-5.0.0.ebuild b/sys-fs/xfsprogs/xfsprogs-5.0.0.ebuild
index d676076b7dc9..79a212d5e50d 100644
--- a/sys-fs/xfsprogs/xfsprogs-5.0.0.ebuild
+++ b/sys-fs/xfsprogs/xfsprogs-5.0.0.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs multilib systemd
+inherit toolchain-funcs multilib systemd usr-ldscript
 
 DESCRIPTION="xfs filesystem utilities"
 HOMEPAGE="https://xfs.wiki.kernel.org/"
diff --git a/sys-fs/zfs/zfs-0.6.5.11-r2.ebuild b/sys-fs/zfs/zfs-0.6.5.11-r2.ebuild
index de5c91273626..10a8985e6e6e 100644
--- a/sys-fs/zfs/zfs-0.6.5.11-r2.ebuild
+++ b/sys-fs/zfs/zfs-0.6.5.11-r2.ebuild
@@ -13,7 +13,7 @@ else
 	KEYWORDS="amd64"
 fi
 
-inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev usr-ldscript
 
 DESCRIPTION="Userland utilities for ZFS Linux kernel module"
 HOMEPAGE="https://zfsonlinux.org/"
diff --git a/sys-fs/zfs/zfs-0.7.13.ebuild b/sys-fs/zfs/zfs-0.7.13.ebuild
index e756a9445a1d..18349e7f7c5b 100644
--- a/sys-fs/zfs/zfs-0.7.13.ebuild
+++ b/sys-fs/zfs/zfs-0.7.13.ebuild
@@ -13,7 +13,7 @@ else
 	KEYWORDS="amd64"
 fi
 
-inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-single-r1 systemd toolchain-funcs udev
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-single-r1 systemd toolchain-funcs udev usr-ldscript
 
 DESCRIPTION="Userland utilities for ZFS Linux kernel module"
 HOMEPAGE="https://zfsonlinux.org/"
diff --git a/sys-fs/zfs/zfs-0.7.9999.ebuild b/sys-fs/zfs/zfs-0.7.9999.ebuild
index b5d23507354f..e1e82c39ace1 100644
--- a/sys-fs/zfs/zfs-0.7.9999.ebuild
+++ b/sys-fs/zfs/zfs-0.7.9999.ebuild
@@ -14,7 +14,7 @@ else
 	KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
 fi
 
-inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev usr-ldscript
 
 DESCRIPTION="Userland utilities for ZFS Linux kernel module"
 HOMEPAGE="https://zfsonlinux.org/"
diff --git a/sys-fs/zfs/zfs-0.8.1.ebuild b/sys-fs/zfs/zfs-0.8.1.ebuild
index 129f34845447..275c7978fbc8 100644
--- a/sys-fs/zfs/zfs-0.8.1.ebuild
+++ b/sys-fs/zfs/zfs-0.8.1.ebuild
@@ -6,7 +6,7 @@ EAPI=7
 DISTUTILS_OPTIONAL=1
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
 
-inherit bash-completion-r1 flag-o-matic linux-info linux-mod distutils-r1 systemd toolchain-funcs udev
+inherit bash-completion-r1 flag-o-matic linux-info linux-mod distutils-r1 systemd toolchain-funcs udev usr-ldscript
 
 DESCRIPTION="Userland utilities for ZFS Linux kernel module"
 HOMEPAGE="https://zfsonlinux.org/"
diff --git a/sys-fs/zfs/zfs-9999.ebuild b/sys-fs/zfs/zfs-9999.ebuild
index 129f34845447..275c7978fbc8 100644
--- a/sys-fs/zfs/zfs-9999.ebuild
+++ b/sys-fs/zfs/zfs-9999.ebuild
@@ -6,7 +6,7 @@ EAPI=7
 DISTUTILS_OPTIONAL=1
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
 
-inherit bash-completion-r1 flag-o-matic linux-info linux-mod distutils-r1 systemd toolchain-funcs udev
+inherit bash-completion-r1 flag-o-matic linux-info linux-mod distutils-r1 systemd toolchain-funcs udev usr-ldscript
 
 DESCRIPTION="Userland utilities for ZFS Linux kernel module"
 HOMEPAGE="https://zfsonlinux.org/"
diff --git a/sys-libs/cracklib/cracklib-2.9.6-r2.ebuild b/sys-libs/cracklib/cracklib-2.9.6-r2.ebuild
index 6e376b8e318d..896e7381b42e 100644
--- a/sys-libs/cracklib/cracklib-2.9.6-r2.ebuild
+++ b/sys-libs/cracklib/cracklib-2.9.6-r2.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 PYTHON_COMPAT=( python{2_7,3_5,3_6} )
 DISTUTILS_OPTIONAL=1
 
-inherit distutils-r1 libtool multilib-minimal toolchain-funcs
+inherit distutils-r1 libtool multilib-minimal toolchain-funcs usr-ldscript
 
 MY_P=${P/_}
 DESCRIPTION="Password Checking Library"
diff --git a/sys-libs/cracklib/cracklib-2.9.7.ebuild b/sys-libs/cracklib/cracklib-2.9.7.ebuild
index 7df94016acec..0a330b76d928 100644
--- a/sys-libs/cracklib/cracklib-2.9.7.ebuild
+++ b/sys-libs/cracklib/cracklib-2.9.7.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
 DISTUTILS_OPTIONAL=1
 
-inherit distutils-r1 libtool multilib-minimal toolchain-funcs
+inherit distutils-r1 libtool multilib-minimal toolchain-funcs usr-ldscript
 
 MY_P=${P/_}
 DESCRIPTION="Password Checking Library"
diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild
index 8cff9d1681dc..cb2148f93d6a 100644
--- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild
+++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 MY_PN=${PN%-libs}
 MY_P="${MY_PN}-${PV}"
diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.6.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.6.ebuild
index 4e57e98b3787..ddc14e8614b7 100644
--- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.6.ebuild
+++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 MY_PN=${PN%-libs}
 MY_P="${MY_PN}-${PV}"
diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.1.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.1.ebuild
index 79ee32709eb3..336f8a744c79 100644
--- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.1.ebuild
+++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 MY_PN=${PN%-libs}
 MY_P="${MY_PN}-${PV}"
diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild
index b792476b0e35..33de769f874a 100644
--- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild
+++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit toolchain-funcs multilib-minimal
+inherit toolchain-funcs multilib-minimal usr-ldscript
 
 MY_PN=${PN%-libs}
 MY_P="${MY_PN}-${PV}"
diff --git a/sys-libs/glibc/glibc-2.19-r2.ebuild b/sys-libs/glibc/glibc-2.19-r2.ebuild
index 496ac4d5a31a..376a1082ba8a 100644
--- a/sys-libs/glibc/glibc-2.19-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.19-r2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit prefix eutils versionator toolchain-funcs flag-o-matic gnuconfig \
+inherit prefix eutils versionator toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
 	multilib systemd multiprocessing
 
 DESCRIPTION="GNU libc C library"
diff --git a/sys-libs/glibc/glibc-2.26-r7.ebuild b/sys-libs/glibc/glibc-2.26-r7.ebuild
index 75c16e8a73bb..7caf7ba188cb 100644
--- a/sys-libs/glibc/glibc-2.26-r7.ebuild
+++ b/sys-libs/glibc/glibc-2.26-r7.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit prefix toolchain-glibc
+inherit prefix toolchain-glibc usr-ldscript
 
 DESCRIPTION="GNU libc C library"
 HOMEPAGE="https://www.gnu.org/software/libc/"
diff --git a/sys-libs/glibc/glibc-2.27-r6.ebuild b/sys-libs/glibc/glibc-2.27-r6.ebuild
index 157ab8b051d5..fc6931ffb7cb 100644
--- a/sys-libs/glibc/glibc-2.27-r6.ebuild
+++ b/sys-libs/glibc/glibc-2.27-r6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit prefix eutils versionator toolchain-funcs flag-o-matic gnuconfig \
+inherit prefix eutils versionator toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
 	multilib systemd multiprocessing
 
 DESCRIPTION="GNU libc C library"
diff --git a/sys-libs/glibc/glibc-2.28-r6.ebuild b/sys-libs/glibc/glibc-2.28-r6.ebuild
index e92fe7e72e68..761c007900b2 100644
--- a/sys-libs/glibc/glibc-2.28-r6.ebuild
+++ b/sys-libs/glibc/glibc-2.28-r6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig \
+inherit prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
 	multilib systemd multiprocessing
 
 DESCRIPTION="GNU libc C library"
diff --git a/sys-libs/glibc/glibc-2.29-r2.ebuild b/sys-libs/glibc/glibc-2.29-r2.ebuild
index 1530ae9e9a3d..ad6fed1c1662 100644
--- a/sys-libs/glibc/glibc-2.29-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.29-r2.ebuild
@@ -5,7 +5,7 @@ EAPI=6
 
 PYTHON_COMPAT=( python3_{5,6,7} )
 
-inherit python-any-r1 prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig \
+inherit python-any-r1 prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
 	multilib systemd multiprocessing
 
 DESCRIPTION="GNU libc C library"
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index da0584e4b079..39209741d278 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -5,7 +5,7 @@ EAPI=6
 
 PYTHON_COMPAT=( python3_{5,6,7} )
 
-inherit python-any-r1 prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig \
+inherit python-any-r1 prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
 	multilib systemd multiprocessing
 
 DESCRIPTION="GNU libc C library"
diff --git a/sys-libs/gpm/gpm-1.20.7-r2.ebuild b/sys-libs/gpm/gpm-1.20.7-r2.ebuild
index e7d0c6b08f94..4738990b77e9 100644
--- a/sys-libs/gpm/gpm-1.20.7-r2.ebuild
+++ b/sys-libs/gpm/gpm-1.20.7-r2.ebuild
@@ -5,7 +5,7 @@
 
 EAPI=5
 
-inherit eutils systemd toolchain-funcs autotools multilib-minimal
+inherit eutils systemd toolchain-funcs autotools multilib-minimal usr-ldscript
 
 DESCRIPTION="Console-based mouse driver"
 HOMEPAGE="https://www.nico.schottelius.org/software/gpm/"
diff --git a/sys-libs/libaal/libaal-1.0.6.ebuild b/sys-libs/libaal/libaal-1.0.6.ebuild
index 21061c06745e..7c3711c17c19 100644
--- a/sys-libs/libaal/libaal-1.0.6.ebuild
+++ b/sys-libs/libaal/libaal-1.0.6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="4"
 
-inherit toolchain-funcs eutils
+inherit toolchain-funcs eutils usr-ldscript
 
 DESCRIPTION="library required by reiser4progs"
 HOMEPAGE="https://sourceforge.net/projects/reiser4/"
diff --git a/sys-libs/libaal/libaal-1.0.7-r1.ebuild b/sys-libs/libaal/libaal-1.0.7-r1.ebuild
index bd15352a4c18..b2206e5a7024 100644
--- a/sys-libs/libaal/libaal-1.0.7-r1.ebuild
+++ b/sys-libs/libaal/libaal-1.0.7-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit toolchain-funcs
+inherit toolchain-funcs usr-ldscript
 
 DESCRIPTION="library required by reiser4progs"
 HOMEPAGE="https://sourceforge.net/projects/reiser4/"
diff --git a/sys-libs/libaal/libaal-1.0.7.ebuild b/sys-libs/libaal/libaal-1.0.7.ebuild
index 78fb9df4d93b..0c87ceae6fdc 100644
--- a/sys-libs/libaal/libaal-1.0.7.ebuild
+++ b/sys-libs/libaal/libaal-1.0.7.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs
+inherit toolchain-funcs usr-ldscript
 
 DESCRIPTION="library required by reiser4progs"
 HOMEPAGE="https://sourceforge.net/projects/reiser4/"
diff --git a/sys-libs/libcap/libcap-2.26-r2.ebuild b/sys-libs/libcap/libcap-2.26-r2.ebuild
index fd3012bbc79f..868775df0ffc 100644
--- a/sys-libs/libcap/libcap-2.26-r2.ebuild
+++ b/sys-libs/libcap/libcap-2.26-r2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit multilib multilib-minimal toolchain-funcs pam
+inherit multilib multilib-minimal toolchain-funcs pam usr-ldscript
 
 DESCRIPTION="POSIX 1003.1e capabilities"
 HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
diff --git a/sys-libs/libcap/libcap-2.27.ebuild b/sys-libs/libcap/libcap-2.27.ebuild
index 04fbcb01a47e..c91fbb991dc4 100644
--- a/sys-libs/libcap/libcap-2.27.ebuild
+++ b/sys-libs/libcap/libcap-2.27.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit multilib multilib-minimal toolchain-funcs pam
+inherit multilib multilib-minimal toolchain-funcs pam usr-ldscript
 
 DESCRIPTION="POSIX 1003.1e capabilities"
 HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
diff --git a/sys-libs/libnih/libnih-1.0.3-r3.ebuild b/sys-libs/libnih/libnih-1.0.3-r3.ebuild
index 0aafd332a1b5..5c68b1610b1f 100644
--- a/sys-libs/libnih/libnih-1.0.3-r3.ebuild
+++ b/sys-libs/libnih/libnih-1.0.3-r3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="4"
 
-inherit versionator eutils autotools toolchain-funcs multilib flag-o-matic
+inherit versionator eutils autotools toolchain-funcs multilib flag-o-matic usr-ldscript
 
 DESCRIPTION="Light-weight 'standard library' of C functions"
 HOMEPAGE="https://launchpad.net/libnih"
diff --git a/sys-libs/ncurses/ncurses-6.1-r2.ebuild b/sys-libs/ncurses/ncurses-6.1-r2.ebuild
index 74b089e75f37..f803b096eb09 100644
--- a/sys-libs/ncurses/ncurses-6.1-r2.ebuild
+++ b/sys-libs/ncurses/ncurses-6.1-r2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs
+inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs usr-ldscript
 
 MY_PV=${PV:0:3}
 PV_SNAP=${PV:4}
diff --git a/sys-libs/ncurses/ncurses-6.1-r3.ebuild b/sys-libs/ncurses/ncurses-6.1-r3.ebuild
index 8e7235a7b66b..0a94d4c80d06 100644
--- a/sys-libs/ncurses/ncurses-6.1-r3.ebuild
+++ b/sys-libs/ncurses/ncurses-6.1-r3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="6"
 
-inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs
+inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs usr-ldscript
 
 MY_PV=${PV:0:3}
 PV_SNAP=${PV:4}
diff --git a/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild b/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild
index ba84afddf044..e5b0a32454e0 100644
--- a/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild
+++ b/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs
+inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs usr-ldscript
 
 MY_PV="${PV:0:3}"
 MY_P="${PN}-${MY_PV}"
diff --git a/sys-libs/pam/pam-1.2.1-r2.ebuild b/sys-libs/pam/pam-1.2.1-r2.ebuild
index fcc60a48eeab..5047cc5f8513 100644
--- a/sys-libs/pam/pam-1.2.1-r2.ebuild
+++ b/sys-libs/pam/pam-1.2.1-r2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit libtool multilib multilib-minimal eutils pam toolchain-funcs flag-o-matic db-use fcaps
+inherit libtool multilib multilib-minimal eutils pam toolchain-funcs flag-o-matic db-use fcaps usr-ldscript
 
 MY_PN="Linux-PAM"
 MY_P="${MY_PN}-${PV}"
diff --git a/sys-libs/pam/pam-1.3.0-r2.ebuild b/sys-libs/pam/pam-1.3.0-r2.ebuild
index 72602f8372c5..729c81d77aac 100644
--- a/sys-libs/pam/pam-1.3.0-r2.ebuild
+++ b/sys-libs/pam/pam-1.3.0-r2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="5"
 
-inherit libtool multilib multilib-minimal eutils pam toolchain-funcs flag-o-matic db-use fcaps
+inherit libtool multilib multilib-minimal eutils pam toolchain-funcs flag-o-matic db-use fcaps usr-ldscript
 
 MY_PN="Linux-PAM"
 MY_P="${MY_PN}-${PV}"
diff --git a/sys-libs/pam/pam-1.3.1-r1.ebuild b/sys-libs/pam/pam-1.3.1-r1.ebuild
index bdaafbd6c873..d81d66ac2ddf 100644
--- a/sys-libs/pam/pam-1.3.1-r1.ebuild
+++ b/sys-libs/pam/pam-1.3.1-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit autotools db-use fcaps multilib-minimal toolchain-funcs
+inherit autotools db-use fcaps multilib-minimal toolchain-funcs usr-ldscript
 
 DESCRIPTION="Linux-PAM (Pluggable Authentication Modules)"
 HOMEPAGE="https://github.com/linux-pam/linux-pam"
diff --git a/sys-libs/pwdb/pwdb-0.62-r1.ebuild b/sys-libs/pwdb/pwdb-0.62-r1.ebuild
index 036cbd1cd4e3..9f2d4f13baf9 100644
--- a/sys-libs/pwdb/pwdb-0.62-r1.ebuild
+++ b/sys-libs/pwdb/pwdb-0.62-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit eutils toolchain-funcs flag-o-matic
+inherit eutils toolchain-funcs flag-o-matic usr-ldscript
 
 DESCRIPTION="Password database"
 HOMEPAGE="https://packages.gentoo.org/package/sys-libs/pwdb"
diff --git a/sys-libs/readline/readline-6.3_p8-r3.ebuild b/sys-libs/readline/readline-6.3_p8-r3.ebuild
index 401483b68981..c1b3a99dc272 100644
--- a/sys-libs/readline/readline-6.3_p8-r3.ebuild
+++ b/sys-libs/readline/readline-6.3_p8-r3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=5
 
-inherit eutils multilib toolchain-funcs flag-o-matic multilib-minimal
+inherit eutils multilib toolchain-funcs flag-o-matic multilib-minimal usr-ldscript
 
 # Official patches
 # See ftp://ftp.cwru.edu/pub/bash/readline-6.3-patches/
diff --git a/sys-libs/readline/readline-7.0_p3-r1.ebuild b/sys-libs/readline/readline-7.0_p3-r1.ebuild
index f36fd671f8bf..97d60560590b 100644
--- a/sys-libs/readline/readline-7.0_p3-r1.ebuild
+++ b/sys-libs/readline/readline-7.0_p3-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic multilib-minimal toolchain-funcs
+inherit flag-o-matic multilib-minimal toolchain-funcs usr-ldscript
 
 # Official patches
 # See ftp://ftp.cwru.edu/pub/bash/readline-7.0-patches/
diff --git a/sys-libs/readline/readline-7.0_p3.ebuild b/sys-libs/readline/readline-7.0_p3.ebuild
index 6c27404a4d11..551fc0f5d3e5 100644
--- a/sys-libs/readline/readline-7.0_p3.ebuild
+++ b/sys-libs/readline/readline-7.0_p3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI="5"
 
-inherit eutils multilib toolchain-funcs flag-o-matic multilib-minimal
+inherit eutils multilib toolchain-funcs flag-o-matic multilib-minimal usr-ldscript
 
 # Official patches
 # See ftp://ftp.cwru.edu/pub/bash/readline-7.0-patches/
diff --git a/sys-libs/readline/readline-7.0_p5.ebuild b/sys-libs/readline/readline-7.0_p5.ebuild
index 89a269d5a6a5..793265ec6aed 100644
--- a/sys-libs/readline/readline-7.0_p5.ebuild
+++ b/sys-libs/readline/readline-7.0_p5.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic multilib-minimal toolchain-funcs
+inherit flag-o-matic multilib-minimal toolchain-funcs usr-ldscript
 
 # Official patches
 # See ftp://ftp.cwru.edu/pub/bash/readline-7.0-patches/
diff --git a/sys-libs/readline/readline-8.0.ebuild b/sys-libs/readline/readline-8.0.ebuild
index 727d31bd0868..4b5b5879c559 100644
--- a/sys-libs/readline/readline-8.0.ebuild
+++ b/sys-libs/readline/readline-8.0.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit flag-o-matic multilib-minimal toolchain-funcs
+inherit flag-o-matic multilib-minimal toolchain-funcs usr-ldscript
 
 # Official patches
 # See ftp://ftp.cwru.edu/pub/bash/readline-7.0-patches/
diff --git a/sys-libs/zlib/zlib-1.2.11-r2.ebuild b/sys-libs/zlib/zlib-1.2.11-r2.ebuild
index 0da451d746fa..022493b56080 100644
--- a/sys-libs/zlib/zlib-1.2.11-r2.ebuild
+++ b/sys-libs/zlib/zlib-1.2.11-r2.ebuild
@@ -4,7 +4,7 @@
 EAPI="5"
 AUTOTOOLS_AUTO_DEPEND="no"
 
-inherit autotools toolchain-funcs multilib multilib-minimal
+inherit autotools toolchain-funcs multilib multilib-minimal usr-ldscript
 
 DESCRIPTION="Standard (de)compression library"
 HOMEPAGE="https://zlib.net/"
diff --git a/sys-process/audit/audit-2.6.4.ebuild b/sys-process/audit/audit-2.6.4.ebuild
index 4749b05209e4..d65d30a4ba46 100644
--- a/sys-process/audit/audit-2.6.4.ebuild
+++ b/sys-process/audit/audit-2.6.4.ebuild
@@ -5,7 +5,7 @@ EAPI="6"
 
 PYTHON_COMPAT=( python{2_7,3_5,3_6} )
 
-inherit autotools ltprune multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd
+inherit autotools ltprune multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd usr-ldscript
 
 DESCRIPTION="Userspace utilities for storing and processing auditing records"
 HOMEPAGE="https://people.redhat.com/sgrubb/audit/"
diff --git a/sys-process/audit/audit-2.7.1.ebuild b/sys-process/audit/audit-2.7.1.ebuild
index 20cdfc27cee6..7959c4aeed17 100644
--- a/sys-process/audit/audit-2.7.1.ebuild
+++ b/sys-process/audit/audit-2.7.1.ebuild
@@ -5,7 +5,7 @@ EAPI=6
 
 PYTHON_COMPAT=( python{2_7,3_5,3_6} )
 
-inherit autotools ltprune multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd
+inherit autotools ltprune multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd usr-ldscript
 
 DESCRIPTION="Userspace utilities for storing and processing auditing records"
 HOMEPAGE="https://people.redhat.com/sgrubb/audit/"
diff --git a/sys-process/audit/audit-2.8.2.ebuild b/sys-process/audit/audit-2.8.2.ebuild
index bb2a458810ef..2980cdececb1 100644
--- a/sys-process/audit/audit-2.8.2.ebuild
+++ b/sys-process/audit/audit-2.8.2.ebuild
@@ -5,7 +5,7 @@ EAPI="6"
 
 PYTHON_COMPAT=( python{2_7,3_5,3_6} )
 
-inherit autotools multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd
+inherit autotools multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd usr-ldscript
 
 DESCRIPTION="Userspace utilities for storing and processing auditing records"
 HOMEPAGE="https://people.redhat.com/sgrubb/audit/"
diff --git a/sys-process/audit/audit-2.8.3.ebuild b/sys-process/audit/audit-2.8.3.ebuild
index ba6b6565022a..18175053305c 100644
--- a/sys-process/audit/audit-2.8.3.ebuild
+++ b/sys-process/audit/audit-2.8.3.ebuild
@@ -5,7 +5,7 @@ EAPI="6"
 
 PYTHON_COMPAT=( python{2_7,3_5,3_6} )
 
-inherit autotools multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd
+inherit autotools multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd usr-ldscript
 
 DESCRIPTION="Userspace utilities for storing and processing auditing records"
 HOMEPAGE="https://people.redhat.com/sgrubb/audit/"
diff --git a/sys-process/audit/audit-2.8.4.ebuild b/sys-process/audit/audit-2.8.4.ebuild
index 9ca84ab35596..13be78df8a0d 100644
--- a/sys-process/audit/audit-2.8.4.ebuild
+++ b/sys-process/audit/audit-2.8.4.ebuild
@@ -5,7 +5,7 @@ EAPI="6"
 
 PYTHON_COMPAT=( python{2_7,3_5,3_6} )
 
-inherit autotools multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd
+inherit autotools multilib multilib-minimal toolchain-funcs preserve-libs python-r1 linux-info systemd usr-ldscript
 
 DESCRIPTION="Userspace utilities for storing and processing auditing records"
 HOMEPAGE="https://people.redhat.com/sgrubb/audit/"
diff --git a/sys-process/procps/procps-3.3.15-r1.ebuild b/sys-process/procps/procps-3.3.15-r1.ebuild
index d4d59fece48c..29af5f7bd47d 100644
--- a/sys-process/procps/procps-3.3.15-r1.ebuild
+++ b/sys-process/procps/procps-3.3.15-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit toolchain-funcs flag-o-matic
+inherit toolchain-funcs flag-o-matic usr-ldscript
 
 DESCRIPTION="standard informational utilities and process-handling tools"
 HOMEPAGE="http://procps-ng.sourceforge.net/ https://gitlab.com/procps-ng/procps"
-- 
2.22.0



^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [gentoo-dev] [PATCH 6/6] toolchain-funcs.eclass: deprecate gen_usr_ldscript
  2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
                   ` (4 preceding siblings ...)
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 5/6] Convert ebuilds to inherit usr-ldscript Mike Gilbert
@ 2019-07-14 23:50 ` Mike Gilbert
  2019-07-15  3:31   ` Michał Górny
  2019-07-15 11:38 ` [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Jaco Kroon
  2019-07-15 15:28 ` [gentoo-dev] " Mike Gilbert
  7 siblings, 1 reply; 34+ messages in thread
From: Mike Gilbert @ 2019-07-14 23:50 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 eclass/toolchain-funcs.eclass | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index 2e027015c684..7bd90bb4e4a0 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -950,18 +950,11 @@ tc-enables-ssp-all() {
 # @FUNCTION: gen_usr_ldscript
 # @USAGE: [-a] <list of libs to create linker scripts for>
 # @DESCRIPTION:
-# This function generate linker scripts in /usr/lib for dynamic
-# libs in /lib.  This is to fix linking problems when you have
-# the .so in /lib, and the .a in /usr/lib.  What happens is that
-# in some cases when linking dynamic, the .a in /usr/lib is used
-# instead of the .so in /lib due to gcc/libtool tweaking ld's
-# library search path.  This causes many builds to fail.
-# See bug #4411 for more info.
-#
-# Note that you should in general use the unversioned name of
-# the library (libfoo.so), as ldconfig should usually update it
-# correctly to point to the latest version of the library present.
+# This function is deprecated. Use the version from
+# usr-ldscript.eclass instead.
 gen_usr_ldscript() {
+	ewarn "${FUNCNAME}: Please migrate to usr-ldscript.eclass"
+
 	local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname)
 	[[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/
 
-- 
2.22.0



^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base Mike Gilbert
@ 2019-07-15  1:49   ` Michael Orlitzky
  2019-07-15  1:56     ` William Hubbs
                       ` (2 more replies)
  0 siblings, 3 replies; 34+ messages in thread
From: Michael Orlitzky @ 2019-07-15  1:49 UTC (permalink / raw
  To: gentoo-dev

On 7/14/19 7:50 PM, Mike Gilbert wrote:
>  
> +# Mike Gilbert <floppym@gentoo.org> (2019-07-14)
> +# Enable split-usr by default to keep systems working.
> +USE="${USE} split-usr"

A mandatory USE="keep-working" raises some philosophical red flags for
me. Wouldn't it be better to name the flag "merge-usr" and leave the
profile alone? (This will be especially bad for the people who start
with USE="-*")


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-15  1:49   ` Michael Orlitzky
@ 2019-07-15  1:56     ` William Hubbs
  2019-07-15 14:33       ` Michael Orlitzky
  2019-07-15  2:02     ` Andreas K. Huettel
  2019-07-15 15:22     ` Mike Gilbert
  2 siblings, 1 reply; 34+ messages in thread
From: William Hubbs @ 2019-07-15  1:56 UTC (permalink / raw
  To: gentoo-dev; +Cc: mjo

[-- Attachment #1: Type: text/plain, Size: 780 bytes --]

On Sun, Jul 14, 2019 at 09:49:00PM -0400, Michael Orlitzky wrote:
> On 7/14/19 7:50 PM, Mike Gilbert wrote:
> >  
> > +# Mike Gilbert <floppym@gentoo.org> (2019-07-14)
> > +# Enable split-usr by default to keep systems working.
> > +USE="${USE} split-usr"
> 
> A mandatory USE="keep-working" raises some philosophical red flags for
> me. Wouldn't it be better to name the flag "merge-usr" and leave the
> profile alone? (This will be especially bad for the people who start
> with USE="-*")

The people who start with USE="-*" are already on their own, we have
many use flags we turn on in make.defaults in the profiles.

The ultimate goal is to turn this flag off in the 19.0 profiles, we are
just preserving the current status in the earlier ones.

William


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-15  1:49   ` Michael Orlitzky
  2019-07-15  1:56     ` William Hubbs
@ 2019-07-15  2:02     ` Andreas K. Huettel
  2019-07-15  5:23       ` Michael Orlitzky
  2019-07-15 15:22     ` Mike Gilbert
  2 siblings, 1 reply; 34+ messages in thread
From: Andreas K. Huettel @ 2019-07-15  2:02 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michael Orlitzky

[-- Attachment #1: Type: text/plain, Size: 325 bytes --]

Am Montag, 15. Juli 2019, 03:49:00 CEST schrieb Michael Orlitzky:
>(This will be especially bad for the people who start
> with USE="-*")

Not recommended, not supported. Garbage in, garbage out.

-- 
Andreas K. Hüttel
dilfridge@gentoo.org
Gentoo Linux developer
(council, toolchain, base-system, perl, libreoffice)

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 981 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr'
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr' Mike Gilbert
@ 2019-07-15  3:29   ` Michał Górny
  2019-07-15 14:21     ` William Hubbs
  2019-07-15 14:29     ` Mike Gilbert
  0 siblings, 2 replies; 34+ messages in thread
From: Michał Górny @ 2019-07-15  3:29 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

[-- Attachment #1: Type: text/plain, Size: 1070 bytes --]

On Sun, 2019-07-14 at 19:50 -0400, Mike Gilbert wrote:
> Signed-off-by: Mike Gilbert <floppym@gentoo.org>
> ---
>  profiles/use.desc | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/profiles/use.desc b/profiles/use.desc
> index fc19bbd0bbaa..ec5d4d6bc594 100644
> --- a/profiles/use.desc
> +++ b/profiles/use.desc
> @@ -299,6 +299,7 @@ source - Zip the sources and install them
>  sox - Add support for Sound eXchange (SoX)
>  speex - Add support for the speex audio codec (used for speech)
>  spell - Add dictionary support
> +split-usr - Splits /bin and /lib from /usr/bin and /usr/lib
>  sqlite - Add support for sqlite - embedded sql database
>  ssl - Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
>  startup-notification - Enable application startup event feedback mechanism

I have no explicit suggestions right now but this description sounds
like it's going to magically take care of splitting or merging
the directories, and AFAIK it doesn't do that.

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 6/6] toolchain-funcs.eclass: deprecate gen_usr_ldscript
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 6/6] toolchain-funcs.eclass: deprecate gen_usr_ldscript Mike Gilbert
@ 2019-07-15  3:31   ` Michał Górny
  2019-07-15  4:18     ` [gentoo-dev] " Jonathan Callen
  0 siblings, 1 reply; 34+ messages in thread
From: Michał Górny @ 2019-07-15  3:31 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain

[-- Attachment #1: Type: text/plain, Size: 1709 bytes --]

On Sun, 2019-07-14 at 19:50 -0400, Mike Gilbert wrote:
> Signed-off-by: Mike Gilbert <floppym@gentoo.org>
> ---
>  eclass/toolchain-funcs.eclass | 15 ++++-----------
>  1 file changed, 4 insertions(+), 11 deletions(-)
> 
> diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
> index 2e027015c684..7bd90bb4e4a0 100644
> --- a/eclass/toolchain-funcs.eclass
> +++ b/eclass/toolchain-funcs.eclass
> @@ -950,18 +950,11 @@ tc-enables-ssp-all() {
>  # @FUNCTION: gen_usr_ldscript
>  # @USAGE: [-a] <list of libs to create linker scripts for>
>  # @DESCRIPTION:
> -# This function generate linker scripts in /usr/lib for dynamic
> -# libs in /lib.  This is to fix linking problems when you have
> -# the .so in /lib, and the .a in /usr/lib.  What happens is that
> -# in some cases when linking dynamic, the .a in /usr/lib is used
> -# instead of the .so in /lib due to gcc/libtool tweaking ld's
> -# library search path.  This causes many builds to fail.
> -# See bug #4411 for more info.
> -#
> -# Note that you should in general use the unversioned name of
> -# the library (libfoo.so), as ldconfig should usually update it
> -# correctly to point to the latest version of the library present.
> +# This function is deprecated. Use the version from
> +# usr-ldscript.eclass instead.
>  gen_usr_ldscript() {
> +	ewarn "${FUNCNAME}: Please migrate to usr-ldscript.eclass"
> +
>  	local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname)
>  	[[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/
>  

Wouldn't this trigger when both toolchain-funcs and usr-ldscript are
inherited, in reverse order?

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [gentoo-dev] Re: [PATCH 6/6] toolchain-funcs.eclass: deprecate gen_usr_ldscript
  2019-07-15  3:31   ` Michał Górny
@ 2019-07-15  4:18     ` Jonathan Callen
  2019-07-15 15:35       ` Mike Gilbert
  0 siblings, 1 reply; 34+ messages in thread
From: Jonathan Callen @ 2019-07-15  4:18 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 2088 bytes --]

On 7/14/19 11:31 PM, Michał Górny wrote:
> On Sun, 2019-07-14 at 19:50 -0400, Mike Gilbert wrote:
>> Signed-off-by: Mike Gilbert <floppym@gentoo.org>
>> ---
>>  eclass/toolchain-funcs.eclass | 15 ++++-----------
>>  1 file changed, 4 insertions(+), 11 deletions(-)
>>
>> diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
>> index 2e027015c684..7bd90bb4e4a0 100644
>> --- a/eclass/toolchain-funcs.eclass
>> +++ b/eclass/toolchain-funcs.eclass
>> @@ -950,18 +950,11 @@ tc-enables-ssp-all() {
>>  # @FUNCTION: gen_usr_ldscript
>>  # @USAGE: [-a] <list of libs to create linker scripts for>
>>  # @DESCRIPTION:
>> -# This function generate linker scripts in /usr/lib for dynamic
>> -# libs in /lib.  This is to fix linking problems when you have
>> -# the .so in /lib, and the .a in /usr/lib.  What happens is that
>> -# in some cases when linking dynamic, the .a in /usr/lib is used
>> -# instead of the .so in /lib due to gcc/libtool tweaking ld's
>> -# library search path.  This causes many builds to fail.
>> -# See bug #4411 for more info.
>> -#
>> -# Note that you should in general use the unversioned name of
>> -# the library (libfoo.so), as ldconfig should usually update it
>> -# correctly to point to the latest version of the library present.
>> +# This function is deprecated. Use the version from
>> +# usr-ldscript.eclass instead.
>>  gen_usr_ldscript() {
>> +	ewarn "${FUNCNAME}: Please migrate to usr-ldscript.eclass"
>> +
>>  	local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname)
>>  	[[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/
>>  
> 
> Wouldn't this trigger when both toolchain-funcs and usr-ldscript are
> inherited, in reverse order?
> 

I thought the same at first, but it looks like it will work because
usr-ldscript inherits toolchain-funcs and both eclasses have include
guards, so the toolchain-funcs version will always be overridden by
usr-ldscript, if the later is inherited at all.  I'm not sure how
fragile this construct is, though.

-- 
Jonathan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 981 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-15  2:02     ` Andreas K. Huettel
@ 2019-07-15  5:23       ` Michael Orlitzky
  0 siblings, 0 replies; 34+ messages in thread
From: Michael Orlitzky @ 2019-07-15  5:23 UTC (permalink / raw
  To: gentoo-dev

On 7/14/19 10:02 PM, Andreas K. Huettel wrote:
> Am Montag, 15. Juli 2019, 03:49:00 CEST schrieb Michael Orlitzky:
>> (This will be especially bad for the people who start
>> with USE="-*")
> 
> Not recommended, not supported. Garbage in, garbage out.
> 

Nothing In, Garbage Out.


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 3/6] usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 3/6] usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass Mike Gilbert
@ 2019-07-15  5:41   ` Ulrich Mueller
  2019-07-15 15:00     ` Mike Gilbert
  0 siblings, 1 reply; 34+ messages in thread
From: Ulrich Mueller @ 2019-07-15  5:41 UTC (permalink / raw
  To: Mike Gilbert; +Cc: gentoo-dev, base-system, toolchain

[-- Attachment #1: Type: text/plain, Size: 298 bytes --]

>>>>> On Mon, 15 Jul 2019, Mike Gilbert wrote:

> +	[[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/

Wouldn't this be a good time to drop such historical baggage, and
instead only support EAPIs where ED is defined? (I see the occasional
EAPI=4 in your list of ebuilds, but nothing older.)

Ulrich

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
                   ` (5 preceding siblings ...)
  2019-07-14 23:50 ` [gentoo-dev] [PATCH 6/6] toolchain-funcs.eclass: deprecate gen_usr_ldscript Mike Gilbert
@ 2019-07-15 11:38 ` Jaco Kroon
  2019-07-15 12:28   ` Marek Szuba
  2019-07-15 15:28 ` [gentoo-dev] " Mike Gilbert
  7 siblings, 1 reply; 34+ messages in thread
From: Jaco Kroon @ 2019-07-15 11:38 UTC (permalink / raw
  To: gentoo-dev, Mike Gilbert; +Cc: base-system, toolchain

[-- Attachment #1: Type: text/plain, Size: 9861 bytes --]

Hi,

Perhaps it's just me not being in the loop, but what exactly is the 
problem we're trying to solve here?


I'm personally using a separate /usr (On numerous systems) and other 
than one problem I've encountered this isn't actually currently an issue 
for me, and the reason this specific case was an issue was due to one 
single tool (which unfortunately I can't remember now) having been 
installed into /usr where I'd personally expect it to go into /.

Kind Regards,
Jaco

On 2019/07/15 01:50, Mike Gilbert wrote:

> This series introduces the global USE flag 'split-usr' to control
> whether binaries and libraries are split into separate / and /usr
> directories, or if they are always installed in /usr. This is a step
> toward making merged /usr workable on Gentoo for the average user.
>
> This USE flag is already being used by some packages, including
> sys-apps/baselayout and sys-apps/systemd.
>
> This series also moves the gen_usr_ldscript function to a new eclass,
> and makes it a noop on most systems when split-usr is enabled. Moving
> it to a new eclass allows us to avoid adding IUSE="split-usr" to every
> ebuild that uses toolchain-funcs.eclass.
>
> Mike Gilbert (6):
>    profiles: add global USE flag 'split-usr'
>    profiles: enable USE="split-usr" in base
>    usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass
>    usr-ldscript.eclass: return early if USE=split-usr is disabled
>    Convert ebuilds to inherit usr-ldscript
>    toolchain-funcs.eclass: deprecate gen_usr_ldscript
>
>   app-accessibility/brltty/brltty-5.2-r1.ebuild |   2 +-
>   app-accessibility/brltty/brltty-6.0-r1.ebuild |   2 +-
>   app-arch/bzip2/bzip2-1.0.6-r11.ebuild         |   2 +-
>   app-arch/bzip2/bzip2-1.0.7.ebuild             |   2 +-
>   app-arch/bzip2/bzip2-1.0.8.ebuild             |   2 +-
>   app-arch/bzip2/bzip2-9999.ebuild              |   2 +-
>   app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild    |   2 +-
>   app-arch/xz-utils/xz-utils-5.2.4-r3.ebuild    |   2 +-
>   app-arch/xz-utils/xz-utils-9999.ebuild        |   2 +-
>   dev-libs/expat/expat-2.2.6.ebuild             |   2 +-
>   dev-libs/expat/expat-2.2.7.ebuild             |   2 +-
>   dev-libs/libaio/libaio-0.3.110.ebuild         |   2 +-
>   dev-libs/libaio/libaio-0.3.111.ebuild         |   2 +-
>   dev-libs/libaio/libaio-0.3.112.ebuild         |   2 +-
>   dev-libs/libaio/libaio-9999.ebuild            |   2 +-
>   dev-libs/libedit/libedit-20130712.3.1.ebuild  |   2 +-
>   dev-libs/libedit/libedit-20170329.3.1.ebuild  |   2 +-
>   dev-libs/libiconv/libiconv-1.14-r1.ebuild     |   2 +-
>   dev-libs/libiconv/libiconv-1.15.ebuild        |   2 +-
>   dev-libs/libintl/libintl-0.19.7.ebuild        |   2 +-
>   dev-libs/libintl/libintl-0.19.8.1.ebuild      |   2 +-
>   dev-libs/libintl/libintl-0.20.1.ebuild        |   2 +-
>   dev-libs/libpcre/libpcre-8.41-r1.ebuild       |   2 +-
>   dev-libs/libpcre/libpcre-8.42.ebuild          |   2 +-
>   dev-libs/libpcre/libpcre-8.43.ebuild          |   2 +-
>   dev-libs/libpcre2/libpcre2-10.32.ebuild       |   2 +-
>   dev-libs/libpcre2/libpcre2-10.33.ebuild       |   2 +-
>   .../libpwquality/libpwquality-1.4.0.ebuild    |   2 +-
>   .../libusb-compat-0.1.5-r2.ebuild             |   2 +-
>   .../libusb-compat-0.1.5-r3.ebuild             |   2 +-
>   dev-libs/libusb/libusb-1.0.19-r1.ebuild       |   2 +-
>   dev-libs/libusb/libusb-1.0.21.ebuild          |   2 +-
>   dev-libs/libusb/libusb-1.0.22.ebuild          |   2 +-
>   dev-libs/lzo/lzo-2.10.ebuild                  |   2 +-
>   eclass/toolchain-funcs.eclass                 |  15 +-
>   eclass/usr-ldscript.eclass                    | 160 ++++++++++++++++++
>   .../iptables/iptables-1.6.1-r3.ebuild         |   2 +-
>   .../iptables/iptables-1.6.2-r2.ebuild         |   2 +-
>   .../iptables/iptables-1.8.2-r2.ebuild         |   2 +-
>   .../iptables/iptables-1.8.3-r1.ebuild         |   2 +-
>   net-libs/libmnl/libmnl-1.0.3-r1.ebuild        |   2 +-
>   net-libs/libmnl/libmnl-1.0.4.ebuild           |   2 +-
>   net-libs/libnftnl/libnftnl-1.0.8-r1.ebuild    |   2 +-
>   net-libs/libnftnl/libnftnl-1.1.1-r1.ebuild    |   2 +-
>   net-libs/libnftnl/libnftnl-1.1.2-r1.ebuild    |   2 +-
>   net-libs/libnftnl/libnftnl-1.1.3.ebuild       |   2 +-
>   net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild    |   2 +-
>   net-libs/libtirpc/libtirpc-1.0.3.ebuild       |   2 +-
>   net-libs/libtirpc/libtirpc-1.1.4.ebuild       |   2 +-
>   profiles/base/make.defaults                   |   4 +
>   profiles/use.desc                             |   1 +
>   sys-apps/acl/acl-2.2.52-r1.ebuild             |   2 +-
>   sys-apps/acl/acl-2.2.53.ebuild                |   2 +-
>   sys-apps/attr/attr-2.4.47-r2.ebuild           |   2 +-
>   sys-apps/attr/attr-2.4.48-r2.ebuild           |   2 +-
>   sys-apps/attr/attr-2.4.48-r3.ebuild           |   2 +-
>   sys-apps/dmapi/dmapi-2.2.12-r1.ebuild         |   2 +-
>   sys-apps/keyutils/keyutils-1.5.11-r1.ebuild   |   2 +-
>   sys-apps/keyutils/keyutils-1.5.9-r4.ebuild    |   2 +-
>   sys-apps/keyutils/keyutils-1.6.ebuild         |   2 +-
>   sys-apps/openrc/openrc-0.34.11.ebuild         |   2 +-
>   sys-apps/openrc/openrc-0.38.3-r1.ebuild       |   2 +-
>   sys-apps/openrc/openrc-0.38.3.ebuild          |   2 +-
>   sys-apps/openrc/openrc-0.41.2.ebuild          |   2 +-
>   sys-apps/openrc/openrc-9999.ebuild            |   2 +-
>   .../tcp-wrappers-7.6.22-r1.ebuild             |   2 +-
>   sys-apps/util-linux/util-linux-2.33-r1.ebuild |   2 +-
>   sys-apps/util-linux/util-linux-2.33.1.ebuild  |   2 +-
>   sys-apps/util-linux/util-linux-2.33.2.ebuild  |   2 +-
>   sys-apps/util-linux/util-linux-2.34-r2.ebuild |   2 +-
>   sys-apps/util-linux/util-linux-9999.ebuild    |   2 +-
>   sys-auth/skey/skey-1.1.5-r11.ebuild           |   2 +-
>   .../freebsd-cddl/freebsd-cddl-11.1.ebuild     |   2 +-
>   .../freebsd-cddl/freebsd-cddl-9.1.ebuild      |   2 +-
>   .../freebsd-lib/freebsd-lib-11.1-r1.ebuild    |   2 +-
>   .../freebsd-lib/freebsd-lib-9.1-r11.ebuild    |   2 +-
>   sys-fs/e2fsprogs/e2fsprogs-1.44.5.ebuild      |   2 +-
>   sys-fs/e2fsprogs/e2fsprogs-1.44.6.ebuild      |   2 +-
>   sys-fs/e2fsprogs/e2fsprogs-1.45.1-r1.ebuild   |   2 +-
>   sys-fs/e2fsprogs/e2fsprogs-1.45.2.ebuild      |   2 +-
>   sys-fs/lvm2/lvm2-2.02.116.ebuild              |   2 +-
>   sys-fs/lvm2/lvm2-2.02.145-r2.ebuild           |   2 +-
>   sys-fs/lvm2/lvm2-2.02.183.ebuild              |   2 +-
>   sys-fs/lvm2/lvm2-2.02.184-r4.ebuild           |   2 +-
>   sys-fs/lvm2/lvm2-2.02.185.ebuild              |   2 +-
>   sys-fs/lvm2/lvm2-2.03.05.ebuild               |   2 +-
>   sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild |   2 +-
>   sys-fs/reiser4progs/reiser4progs-1.2.0.ebuild |   2 +-
>   sys-fs/reiser4progs/reiser4progs-1.2.1.ebuild |   2 +-
>   .../reiserfsprogs/reiserfsprogs-3.6.25.ebuild |   2 +-
>   .../reiserfsprogs/reiserfsprogs-3.6.27.ebuild |   2 +-
>   sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild     |   2 +-
>   sys-fs/xfsprogs/xfsprogs-4.17.0-r1.ebuild     |   2 +-
>   sys-fs/xfsprogs/xfsprogs-4.19.0.ebuild        |   2 +-
>   sys-fs/xfsprogs/xfsprogs-4.20.0.ebuild        |   2 +-
>   sys-fs/xfsprogs/xfsprogs-5.0.0.ebuild         |   2 +-
>   sys-fs/zfs/zfs-0.6.5.11-r2.ebuild             |   2 +-
>   sys-fs/zfs/zfs-0.7.13.ebuild                  |   2 +-
>   sys-fs/zfs/zfs-0.7.9999.ebuild                |   2 +-
>   sys-fs/zfs/zfs-0.8.1.ebuild                   |   2 +-
>   sys-fs/zfs/zfs-9999.ebuild                    |   2 +-
>   sys-libs/cracklib/cracklib-2.9.6-r2.ebuild    |   2 +-
>   sys-libs/cracklib/cracklib-2.9.7.ebuild       |   2 +-
>   .../e2fsprogs-libs-1.44.5.ebuild              |   2 +-
>   .../e2fsprogs-libs-1.44.6.ebuild              |   2 +-
>   .../e2fsprogs-libs-1.45.1.ebuild              |   2 +-
>   .../e2fsprogs-libs-1.45.2.ebuild              |   2 +-
>   sys-libs/glibc/glibc-2.19-r2.ebuild           |   2 +-
>   sys-libs/glibc/glibc-2.26-r7.ebuild           |   2 +-
>   sys-libs/glibc/glibc-2.27-r6.ebuild           |   2 +-
>   sys-libs/glibc/glibc-2.28-r6.ebuild           |   2 +-
>   sys-libs/glibc/glibc-2.29-r2.ebuild           |   2 +-
>   sys-libs/glibc/glibc-9999.ebuild              |   2 +-
>   sys-libs/gpm/gpm-1.20.7-r2.ebuild             |   2 +-
>   sys-libs/libaal/libaal-1.0.6.ebuild           |   2 +-
>   sys-libs/libaal/libaal-1.0.7-r1.ebuild        |   2 +-
>   sys-libs/libaal/libaal-1.0.7.ebuild           |   2 +-
>   sys-libs/libcap/libcap-2.26-r2.ebuild         |   2 +-
>   sys-libs/libcap/libcap-2.27.ebuild            |   2 +-
>   sys-libs/libnih/libnih-1.0.3-r3.ebuild        |   2 +-
>   sys-libs/ncurses/ncurses-6.1-r2.ebuild        |   2 +-
>   sys-libs/ncurses/ncurses-6.1-r3.ebuild        |   2 +-
>   sys-libs/ncurses/ncurses-6.1_p20181020.ebuild |   2 +-
>   sys-libs/pam/pam-1.2.1-r2.ebuild              |   2 +-
>   sys-libs/pam/pam-1.3.0-r2.ebuild              |   2 +-
>   sys-libs/pam/pam-1.3.1-r1.ebuild              |   2 +-
>   sys-libs/pwdb/pwdb-0.62-r1.ebuild             |   2 +-
>   sys-libs/readline/readline-6.3_p8-r3.ebuild   |   2 +-
>   sys-libs/readline/readline-7.0_p3-r1.ebuild   |   2 +-
>   sys-libs/readline/readline-7.0_p3.ebuild      |   2 +-
>   sys-libs/readline/readline-7.0_p5.ebuild      |   2 +-
>   sys-libs/readline/readline-8.0.ebuild         |   2 +-
>   sys-libs/zlib/zlib-1.2.11-r2.ebuild           |   2 +-
>   sys-process/audit/audit-2.6.4.ebuild          |   2 +-
>   sys-process/audit/audit-2.7.1.ebuild          |   2 +-
>   sys-process/audit/audit-2.8.2.ebuild          |   2 +-
>   sys-process/audit/audit-2.8.3.ebuild          |   2 +-
>   sys-process/audit/audit-2.8.4.ebuild          |   2 +-
>   sys-process/procps/procps-3.3.15-r1.ebuild    |   2 +-
>   139 files changed, 304 insertions(+), 146 deletions(-)
>   create mode 100644 eclass/usr-ldscript.eclass
>

[-- Attachment #2: Type: text/html, Size: 10286 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-15 11:38 ` [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Jaco Kroon
@ 2019-07-15 12:28   ` Marek Szuba
  2019-07-15 13:59     ` Jaco Kroon
  0 siblings, 1 reply; 34+ messages in thread
From: Marek Szuba @ 2019-07-15 12:28 UTC (permalink / raw
  To: Jaco Kroon, gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 808 bytes --]

On 2019-07-15 12:38, Jaco Kroon wrote:

> I'm personally using a separate /usr (On numerous systems) and other
> than one problem I've encountered this isn't actually currently an issue
> for me, and the reason this specific case was an issue was due to one
> single tool (which unfortunately I can't remember now) having been
> installed into /usr where I'd personally expect it to go into /.

The issue is not with *split* /usr, it's with the scenario currently
being adopted by many Linux distros (e.g. Fedora or Debian) in which
/bin, /sbin, /lib and /lib64 are symlinks to respective subdirectories
of /usr. The purpose of the changes at hand is, as described by floppym
in his initial post, to pave the way towards making merged /usr workable
on Gentoo for the average user.

-- 
MS


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-15 12:28   ` Marek Szuba
@ 2019-07-15 13:59     ` Jaco Kroon
  2019-07-15 14:22       ` Marek Szuba
  0 siblings, 1 reply; 34+ messages in thread
From: Jaco Kroon @ 2019-07-15 13:59 UTC (permalink / raw
  To: gentoo-dev, Marek Szuba

[-- Attachment #1: Type: text/plain, Size: 1227 bytes --]

Hi Marek,

Perhaps I need to re-ask the question this way:

What's the motivation for "merging" / and /usr?

I've seen arguments that it's a historic split, and to an extent this is 
true, however, having critical system recovery (and basic boot) stuff in 
/, on as small as possible a partition, with the bulk of the system on 
/usr makes a lot of sense for me.

Kind Regards,
Jaco


On 2019/07/15 14:28, Marek Szuba wrote:
> On 2019-07-15 12:38, Jaco Kroon wrote:
>
>> I'm personally using a separate /usr (On numerous systems) and other
>> than one problem I've encountered this isn't actually currently an issue
>> for me, and the reason this specific case was an issue was due to one
>> single tool (which unfortunately I can't remember now) having been
>> installed into /usr where I'd personally expect it to go into /.
> The issue is not with *split* /usr, it's with the scenario currently
> being adopted by many Linux distros (e.g. Fedora or Debian) in which
> /bin, /sbin, /lib and /lib64 are symlinks to respective subdirectories
> of /usr. The purpose of the changes at hand is, as described by floppym
> in his initial post, to pave the way towards making merged /usr workable
> on Gentoo for the average user.
>

[-- Attachment #2: Type: text/html, Size: 2125 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr'
  2019-07-15  3:29   ` Michał Górny
@ 2019-07-15 14:21     ` William Hubbs
  2019-07-15 14:29     ` Mike Gilbert
  1 sibling, 0 replies; 34+ messages in thread
From: William Hubbs @ 2019-07-15 14:21 UTC (permalink / raw
  To: gentoo-dev; +Cc: base-system, toolchain, floppym, mgorny

[-- Attachment #1: Type: text/plain, Size: 2073 bytes --]

On Mon, Jul 15, 2019 at 05:29:28AM +0200, Michał Górny wrote:
> On Sun, 2019-07-14 at 19:50 -0400, Mike Gilbert wrote:
> > Signed-off-by: Mike Gilbert <floppym@gentoo.org>
> > ---
> >  profiles/use.desc | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/profiles/use.desc b/profiles/use.desc
> > index fc19bbd0bbaa..ec5d4d6bc594 100644
> > --- a/profiles/use.desc
> > +++ b/profiles/use.desc
> > @@ -299,6 +299,7 @@ source - Zip the sources and install them
> >  sox - Add support for Sound eXchange (SoX)
> >  speex - Add support for the speex audio codec (used for speech)
> >  spell - Add dictionary support
> > +split-usr - Splits /bin and /lib from /usr/bin and /usr/lib
> >  sqlite - Add support for sqlite - embedded sql database
> >  ssl - Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
> >  startup-notification - Enable application startup event feedback mechanism
> 
> I have no explicit suggestions right now but this description sounds
> like it's going to magically take care of splitting or merging
> the directories, and AFAIK it doesn't do that.

Mgorny,

you are correct, so the more I think about this, the more I am wondering
about its value as a use flag.

On baselayout you need it, because when the stages are built it sets up
the directories, but after that it does nothing on baselayout. Once we
have 19.0 profiles in the tree and support for older profiles goes away,
you won't need the use flag because this is how all linux builds will be
done.

This should not be taken as a quick way to migrate live systems, we do
not have that yet. I have a script that I am working on for that purpose.

The gen_usr_ldscript function should do nothing on a system which has
the usr merge. Mike told me that you shouldn't check the live filesystem
inside gen_usr_ldscript, so do you know of a better way to check
temporarily than a use flag?

If there is a better way, I would argue that we don't need the use flag
on packages besides baselayout.

William


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-15 13:59     ` Jaco Kroon
@ 2019-07-15 14:22       ` Marek Szuba
  2019-07-15 14:45         ` Jaco Kroon
  0 siblings, 1 reply; 34+ messages in thread
From: Marek Szuba @ 2019-07-15 14:22 UTC (permalink / raw
  To: Jaco Kroon, gentoo-dev

On 2019-07-15 14:59, Jaco Kroon wrote:

> I've seen arguments that it's a historic split, and to an extent this is
> true, however, having critical system recovery (and basic boot) stuff in
> /, on as small as possible a partition, with the bulk of the system on
> /usr makes a lot of sense for me.

That's one of the reasons, yes. For a more in-depth discussion, see

https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/

as well as the Fedora feature the above mentions.

-- 
MS


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr'
  2019-07-15  3:29   ` Michał Górny
  2019-07-15 14:21     ` William Hubbs
@ 2019-07-15 14:29     ` Mike Gilbert
  1 sibling, 0 replies; 34+ messages in thread
From: Mike Gilbert @ 2019-07-15 14:29 UTC (permalink / raw
  To: Gentoo Dev; +Cc: base-system, toolchain

On Sun, Jul 14, 2019 at 11:29 PM Michał Górny <mgorny@gentoo.org> wrote:
>
> On Sun, 2019-07-14 at 19:50 -0400, Mike Gilbert wrote:
> > Signed-off-by: Mike Gilbert <floppym@gentoo.org>
> > ---
> >  profiles/use.desc | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/profiles/use.desc b/profiles/use.desc
> > index fc19bbd0bbaa..ec5d4d6bc594 100644
> > --- a/profiles/use.desc
> > +++ b/profiles/use.desc
> > @@ -299,6 +299,7 @@ source - Zip the sources and install them
> >  sox - Add support for Sound eXchange (SoX)
> >  speex - Add support for the speex audio codec (used for speech)
> >  spell - Add dictionary support
> > +split-usr - Splits /bin and /lib from /usr/bin and /usr/lib
> >  sqlite - Add support for sqlite - embedded sql database
> >  ssl - Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
> >  startup-notification - Enable application startup event feedback mechanism
>
> I have no explicit suggestions right now but this description sounds
> like it's going to magically take care of splitting or merging
> the directories, and AFAIK it doesn't do that.

Yeah, the wording sucks, and I am open to suggestions. How about
something like this:

Enable behavior to support maintaining /bin and /lib separately from
/usr/bin and /usr/lib.


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-15  1:56     ` William Hubbs
@ 2019-07-15 14:33       ` Michael Orlitzky
  2019-07-15 15:06         ` Mike Gilbert
  0 siblings, 1 reply; 34+ messages in thread
From: Michael Orlitzky @ 2019-07-15 14:33 UTC (permalink / raw
  To: gentoo-dev

On 7/14/19 9:56 PM, William Hubbs wrote:
> 
> The ultimate goal is to turn this flag off in the 19.0 profiles, we are
> just preserving the current status in the earlier ones.
> 

So, to be clear: the plan is to force a /usr merge after all?


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-15 14:22       ` Marek Szuba
@ 2019-07-15 14:45         ` Jaco Kroon
  2019-07-15 14:51           ` Michael Orlitzky
  0 siblings, 1 reply; 34+ messages in thread
From: Jaco Kroon @ 2019-07-15 14:45 UTC (permalink / raw
  To: Marek Szuba, gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2820 bytes --]

I have no idea who wrote this:

"The historical justification for a /bin, /sbin and /lib separate from 
/usr no longer applies today." but I strongly disagree.

Again, if /usr goes belly up (which with recent ext4/io bug(s) we've had 
probably about 10 systems already that needed repairing, and at least 5 
more that's pending), this fault would require me to head out to site to 
go and repair where currently due to fsck et al living on / and not on 
/usr I could recover without issues.

We've been unable to track an exact issue, but all of the affected 
systems was running 4.14.X kernels, we've not seen the same corruption 
from 5.0.2 onwards.  So we never filed a bug and simply upgraded kernels.

Further, none of the arguments for merging / and /usr makes any sense 
other than "others have already done this and if we don't follow suite 
we'll get cut off".  Not even the statement about network share of /usr 
makes any sense.  We run completely diskless systems with even / over 
nfs ... so seriously.

Even most of the myths and facts arguments are plainly uneducated.

Essentially what happens now is that an initrd needs to be built to 
contain ALL recovery tools that could possibly be required. Where 
previously, with / being mostly read-only this was still a risk worth 
taking.

Anyway, from the looks of this, this is just another comply or die 
situation, so I'm not seeing that there is much choice or say in this 
matter.  We'll just have to bloat our initrd's even further.  
Fortunately they do get freed post post ... just hoping they'll fit into 
the existing /boot partitions we have on our systems.


Kind Regards,
Jaco Kroon
C.E.O.

*T:* +27 (0)12 021 0000 | *F:* +27 86 648 8561 | *E:* jaco@iewc.co.za
*W:* iewc.co.za <http://www.iewc.co.za/> | *A:* Unit 201, Building 2B, 
Sunwood Park, Queen's Crescent Lynnwood, Pretoria


	

Facebook <https://www.facebook.com/Interexcel/> Twitter 
<https://twitter.com/Interexcel/> Google+ 
<https://plus.google.com/+InterexcelCoZaPTA/posts> LinkedIn 
<http://www.linkedin.com/com/images/ico-linkedin.jpg>

<http://www.iewc.co.za/> <http://www.uls.co.za/>

This email and all contents are subject to the following disclaimer: 
View Disclaimer <http://www.iewc.co.za/email-disclaimer/>

On 2019/07/15 16:22, Marek Szuba wrote:
> On 2019-07-15 14:59, Jaco Kroon wrote:
>
>> I've seen arguments that it's a historic split, and to an extent this is
>> true, however, having critical system recovery (and basic boot) stuff in
>> /, on as small as possible a partition, with the bulk of the system on
>> /usr makes a lot of sense for me.
> That's one of the reasons, yes. For a more in-depth discussion, see
>
> https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/
>
> as well as the Fedora feature the above mentions.
>
> ))/io

[-- Attachment #2.1: Type: text/html, Size: 6612 bytes --]

[-- Attachment #2.2: ico-facebook.jpg --]
[-- Type: image/jpeg, Size: 1302 bytes --]

[-- Attachment #2.3: ico-twitter.jpg --]
[-- Type: image/jpeg, Size: 1423 bytes --]

[-- Attachment #2.4: ico-linkedin.jpg --]
[-- Type: image/jpeg, Size: 1444 bytes --]

[-- Attachment #2.5: ie.jpg --]
[-- Type: image/jpeg, Size: 3906 bytes --]

[-- Attachment #2.6: ulsgroup.jpg --]
[-- Type: image/jpeg, Size: 10458 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-15 14:45         ` Jaco Kroon
@ 2019-07-15 14:51           ` Michael Orlitzky
  2019-07-15 15:37             ` William Hubbs
  0 siblings, 1 reply; 34+ messages in thread
From: Michael Orlitzky @ 2019-07-15 14:51 UTC (permalink / raw
  To: gentoo-dev

On 7/15/19 10:45 AM, Jaco Kroon wrote:
> I have no idea who wrote this:
> 
> "The historical justification for a /bin, /sbin and /lib separate from
> /usr no longer applies today." but I strongly disagree.

All of that stuff is written from the perspective of "I feel like doing
it this way in systemd, so I need to post-hoc justify making everyone
else go along with it."


> Again, if /usr goes belly up (which with recent ext4/io bug(s) we've had
> probably about 10 systems already that needed repairing, and at least 5
> more that's pending), this fault would require me to head out to site to
> go and repair where currently due to fsck et al living on / and not on
> /usr I could recover without issues.
> 
> We've been unable to track an exact issue, but all of the affected
> systems was running 4.14.X kernels, we've not seen the same corruption
> from 5.0.2 onwards.  So we never filed a bug and simply upgraded kernels.

Likely https://bugzilla.kernel.org/show_bug.cgi?id=201685


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 3/6] usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass
  2019-07-15  5:41   ` Ulrich Mueller
@ 2019-07-15 15:00     ` Mike Gilbert
  0 siblings, 0 replies; 34+ messages in thread
From: Mike Gilbert @ 2019-07-15 15:00 UTC (permalink / raw
  To: Ulrich Mueller; +Cc: Gentoo Dev, base-system, toolchain

On Mon, Jul 15, 2019 at 1:41 AM Ulrich Mueller <ulm@gentoo.org> wrote:
>
> >>>>> On Mon, 15 Jul 2019, Mike Gilbert wrote:
>
> > +     [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/
>
> Wouldn't this be a good time to drop such historical baggage, and
> instead only support EAPIs where ED is defined? (I see the occasional
> EAPI=4 in your list of ebuilds, but nothing older.)

Yes, I suppose that makes sense. I'll send a patch when I have time.


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-15 14:33       ` Michael Orlitzky
@ 2019-07-15 15:06         ` Mike Gilbert
  2019-07-20  1:53           ` Alexander Tsoy
  0 siblings, 1 reply; 34+ messages in thread
From: Mike Gilbert @ 2019-07-15 15:06 UTC (permalink / raw
  To: Gentoo Dev

On Mon, Jul 15, 2019 at 10:33 AM Michael Orlitzky <mjo@gentoo.org> wrote:
>
> On 7/14/19 9:56 PM, William Hubbs wrote:
> >
> > The ultimate goal is to turn this flag off in the 19.0 profiles, we are
> > just preserving the current status in the earlier ones.
> >
>
> So, to be clear: the plan is to force a /usr merge after all?
>

I don't anticipate that happening within 2019, so I doubt it would be
turned off in a "19.0" profile.

I think Gentoo developers are rather split on the /usr merge, and I
suspect a council ruling will be necessary if the pro-usr-merge camp
wants to push it through.


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-15  1:49   ` Michael Orlitzky
  2019-07-15  1:56     ` William Hubbs
  2019-07-15  2:02     ` Andreas K. Huettel
@ 2019-07-15 15:22     ` Mike Gilbert
  2019-07-15 15:43       ` Michael Orlitzky
  2 siblings, 1 reply; 34+ messages in thread
From: Mike Gilbert @ 2019-07-15 15:22 UTC (permalink / raw
  To: Gentoo Dev

On Sun, Jul 14, 2019 at 9:49 PM Michael Orlitzky <mjo@gentoo.org> wrote:
>
> On 7/14/19 7:50 PM, Mike Gilbert wrote:
> >
> > +# Mike Gilbert <floppym@gentoo.org> (2019-07-14)
> > +# Enable split-usr by default to keep systems working.
> > +USE="${USE} split-usr"
>
> A mandatory USE="keep-working" raises some philosophical red flags for
> me.

Yeah, that wording is bad. Maybe something like:

# Maintain split /usr for existing installs.

> Wouldn't it be better to name the flag "merge-usr" and leave the
> profile alone?

The "split-usr" flag is already being used by a few packages, so I
would like to keep it.

Another way to think about it: in the merged /usr case, ebuilds
generally do not need to do anything special: they can just copy their
files to $prefix (/usr). In the split /usr case, ebuilds need to do
special stuff like passing extra configure flags (--bindir, --libdir),
or calling gen_usr_ldscript to move libraries around.

The "split-usr" USE flag enables this special stuff. Having a
"merged-usr" USE flag would invert the meaning: disable the special
stuff if the flag is enabled. We generally try to avoid inverted flags
like this (a notable exception being the "vanilla" USE flag).

>  (This will be especially bad for the people who start with USE="-*")

As has been previously mentioned, we don't generally recommend this
for people who don't know what they are doing. In any case, I think
they would have already run into problems given that baselayout has
had IUSE="+split-usr" for at least several months.

A possible solution would be to add split-usr to use.force in the base
profile, and un-force it in some new profile we create at a later
date. Do people think this is warranted?


^ permalink raw reply	[flat|nested] 34+ messages in thread

* [gentoo-dev] Re: [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
                   ` (6 preceding siblings ...)
  2019-07-15 11:38 ` [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Jaco Kroon
@ 2019-07-15 15:28 ` Mike Gilbert
  7 siblings, 0 replies; 34+ messages in thread
From: Mike Gilbert @ 2019-07-15 15:28 UTC (permalink / raw
  To: Gentoo Dev; +Cc: base-system, toolchain

On Sun, Jul 14, 2019 at 7:50 PM Mike Gilbert <floppym@gentoo.org> wrote:
>
> This series introduces the global USE flag 'split-usr' to control
> whether binaries and libraries are split into separate / and /usr
> directories, or if they are always installed in /usr. This is a step
> toward making merged /usr workable on Gentoo for the average user.
>
> This USE flag is already being used by some packages, including
> sys-apps/baselayout and sys-apps/systemd.
>
> This series also moves the gen_usr_ldscript function to a new eclass,
> and makes it a noop on most systems when split-usr is enabled. Moving
> it to a new eclass allows us to avoid adding IUSE="split-usr" to every
> ebuild that uses toolchain-funcs.eclass.

Correction: gen_usr_ldscript becomes a noop when split-usr is
*disabled*. Hopefully that didn't confuse too many people. :)


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] Re: [PATCH 6/6] toolchain-funcs.eclass: deprecate gen_usr_ldscript
  2019-07-15  4:18     ` [gentoo-dev] " Jonathan Callen
@ 2019-07-15 15:35       ` Mike Gilbert
  0 siblings, 0 replies; 34+ messages in thread
From: Mike Gilbert @ 2019-07-15 15:35 UTC (permalink / raw
  To: Gentoo Dev

On Mon, Jul 15, 2019 at 12:18 AM Jonathan Callen <jcallen@gentoo.org> wrote:
>
> On 7/14/19 11:31 PM, Michał Górny wrote:
> > On Sun, 2019-07-14 at 19:50 -0400, Mike Gilbert wrote:
> >> Signed-off-by: Mike Gilbert <floppym@gentoo.org>
> >> ---
> >>  eclass/toolchain-funcs.eclass | 15 ++++-----------
> >>  1 file changed, 4 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
> >> index 2e027015c684..7bd90bb4e4a0 100644
> >> --- a/eclass/toolchain-funcs.eclass
> >> +++ b/eclass/toolchain-funcs.eclass
> >> @@ -950,18 +950,11 @@ tc-enables-ssp-all() {
> >>  # @FUNCTION: gen_usr_ldscript
> >>  # @USAGE: [-a] <list of libs to create linker scripts for>
> >>  # @DESCRIPTION:
> >> -# This function generate linker scripts in /usr/lib for dynamic
> >> -# libs in /lib.  This is to fix linking problems when you have
> >> -# the .so in /lib, and the .a in /usr/lib.  What happens is that
> >> -# in some cases when linking dynamic, the .a in /usr/lib is used
> >> -# instead of the .so in /lib due to gcc/libtool tweaking ld's
> >> -# library search path.  This causes many builds to fail.
> >> -# See bug #4411 for more info.
> >> -#
> >> -# Note that you should in general use the unversioned name of
> >> -# the library (libfoo.so), as ldconfig should usually update it
> >> -# correctly to point to the latest version of the library present.
> >> +# This function is deprecated. Use the version from
> >> +# usr-ldscript.eclass instead.
> >>  gen_usr_ldscript() {
> >> +    ewarn "${FUNCNAME}: Please migrate to usr-ldscript.eclass"
> >> +
> >>      local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname)
> >>      [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/
> >>
> >
> > Wouldn't this trigger when both toolchain-funcs and usr-ldscript are
> > inherited, in reverse order?
> >
>
> I thought the same at first, but it looks like it will work because
> usr-ldscript inherits toolchain-funcs and both eclasses have include
> guards, so the toolchain-funcs version will always be overridden by
> usr-ldscript, if the later is inherited at all.

Exactly this. I put some thought into this before writing the patch,
and this is the conclusion I came to.

>  I'm not sure how fragile this construct is, though.

I think a PMS-level change would be necessary for this to break.


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-15 14:51           ` Michael Orlitzky
@ 2019-07-15 15:37             ` William Hubbs
  2019-07-15 15:56               ` Michael Orlitzky
  2019-07-16  8:43               ` Jaco Kroon
  0 siblings, 2 replies; 34+ messages in thread
From: William Hubbs @ 2019-07-15 15:37 UTC (permalink / raw
  To: gentoo-dev; +Cc: mjo

[-- Attachment #1: Type: text/plain, Size: 730 bytes --]

On Mon, Jul 15, 2019 at 10:51:46AM -0400, Michael Orlitzky wrote:
> On 7/15/19 10:45 AM, Jaco Kroon wrote:
> > I have no idea who wrote this:
> > 
> > "The historical justification for a /bin, /sbin and /lib separate from
> > /usr no longer applies today." but I strongly disagree.
> 
> All of that stuff is written from the perspective of "I feel like doing
> it this way in systemd, so I need to post-hoc justify making everyone
> else go along with it."

Also add this:

https://www.osnews.com/story/25556/understanding-the-bin-sbin-usrbin-usrsbin-split/

In particular, note Rob Landley's response linked in that story.

So, this has nothing to do with systemd at all, please stop conflating
it.

William

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-15 15:22     ` Mike Gilbert
@ 2019-07-15 15:43       ` Michael Orlitzky
  0 siblings, 0 replies; 34+ messages in thread
From: Michael Orlitzky @ 2019-07-15 15:43 UTC (permalink / raw
  To: gentoo-dev

On 7/15/19 11:22 AM, Mike Gilbert wrote:
> 
> The "split-usr" flag is already being used by a few packages, so I
> would like to keep it.

The merits of the usr-merge notwithstanding, this does make more sense
if the plan is to eventually drop the flag entirely.


>>  (This will be especially bad for the people who start with USE="-*")
> 
> As has been previously mentioned, we don't generally recommend this
> for people who don't know what they are doing. In any case, I think
> they would have already run into problems given that baselayout has
> had IUSE="+split-usr" for at least several months.
> 
> A possible solution would be to add split-usr to use.force in the base
> profile, and un-force it in some new profile we create at a later
> date. Do people think this is warranted?
> 

I understand saying "you're on your own" to people who set USE="-*", but
in practice it's the best-supported way to turn off the
constantly-changing set of maintainers' pet IUSE defaults. I suppose we
can at least agree that some people do it. If there's a way to proceed
that doesn't break their systems by surprise one morning, it'd be the
polite thing to do.


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-15 15:37             ` William Hubbs
@ 2019-07-15 15:56               ` Michael Orlitzky
  2019-07-16  8:43               ` Jaco Kroon
  1 sibling, 0 replies; 34+ messages in thread
From: Michael Orlitzky @ 2019-07-15 15:56 UTC (permalink / raw
  To: gentoo-dev

On 7/15/19 11:37 AM, William Hubbs wrote:
> 
> https://www.osnews.com/story/25556/understanding-the-bin-sbin-usrbin-usrsbin-split/
> 
> In particular, note Rob Landley's response linked in that story.
> 
> So, this has nothing to do with systemd at all, please stop conflating
> it.
> 

That wiki page was copied verbatim from the systemd section, written by
the author of systemd, after he decided to leverage systemd to force the
merge on people.

I'm not even saying it's a bad idea. I'm saying that one dude made the
decision, and then came up with a bunch of obviously-bullshit reasons
why we've been doing it wrong all along and should do it his way
instead. Maybe he's right, but come on: we should be merging /usr for
compatibility with Oracle Solaris 11? Give me a break. Nonsense like
that weakens the overall argument.

I'm just letting Jaco know that his BS detector isn't broken. The
"predictable network interface names" article and others like it follow
the same pattern.


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript
  2019-07-15 15:37             ` William Hubbs
  2019-07-15 15:56               ` Michael Orlitzky
@ 2019-07-16  8:43               ` Jaco Kroon
  1 sibling, 0 replies; 34+ messages in thread
From: Jaco Kroon @ 2019-07-16  8:43 UTC (permalink / raw
  To: gentoo-dev, mjo

Hi,

Ok, so to me that still makes sense.  So you just still motivated to me 
why a separate /usr is still a good idea, not why it should be merged.

There are some arbitrary rules there that doesn't make sense.

The real question then really is, why are we merging into /usr and not 
back into /?

Kind Regards,
Jaco

On 2019/07/15 17:37, William Hubbs wrote:
> On Mon, Jul 15, 2019 at 10:51:46AM -0400, Michael Orlitzky wrote:
>> On 7/15/19 10:45 AM, Jaco Kroon wrote:
>>> I have no idea who wrote this:
>>>
>>> "The historical justification for a /bin, /sbin and /lib separate from
>>> /usr no longer applies today." but I strongly disagree.
>> All of that stuff is written from the perspective of "I feel like doing
>> it this way in systemd, so I need to post-hoc justify making everyone
>> else go along with it."
> Also add this:
>
> https://www.osnews.com/story/25556/understanding-the-bin-sbin-usrbin-usrsbin-split/
>
> In particular, note Rob Landley's response linked in that story.
>
> So, this has nothing to do with systemd at all, please stop conflating
> it.
>
> William


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base
  2019-07-15 15:06         ` Mike Gilbert
@ 2019-07-20  1:53           ` Alexander Tsoy
  0 siblings, 0 replies; 34+ messages in thread
From: Alexander Tsoy @ 2019-07-20  1:53 UTC (permalink / raw
  To: gentoo-dev

В Пн, 15/07/2019 в 11:06 -0400, Mike Gilbert пишет:
> On Mon, Jul 15, 2019 at 10:33 AM Michael Orlitzky <mjo@gentoo.org>
> wrote:
> > On 7/14/19 9:56 PM, William Hubbs wrote:
> > > The ultimate goal is to turn this flag off in the 19.0 profiles,
> > > we are
> > > just preserving the current status in the earlier ones.
> > > 
> > 
> > So, to be clear: the plan is to force a /usr merge after all?
> > 
> 
> I don't anticipate that happening within 2019, so I doubt it would be
> turned off in a "19.0" profile.
> 
> I think Gentoo developers are rather split on the /usr merge, and I
> suspect a council ruling will be necessary if the pro-usr-merge camp
> wants to push it through.
> 

A little offtop: is there a tracker bug for /usr merge related issues?
I can't find one.



^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2019-07-20  1:53 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-14 23:50 [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Mike Gilbert
2019-07-14 23:50 ` [gentoo-dev] [PATCH 1/6] profiles: add global USE flag 'split-usr' Mike Gilbert
2019-07-15  3:29   ` Michał Górny
2019-07-15 14:21     ` William Hubbs
2019-07-15 14:29     ` Mike Gilbert
2019-07-14 23:50 ` [gentoo-dev] [PATCH 2/6] profiles: enable USE="split-usr" in base Mike Gilbert
2019-07-15  1:49   ` Michael Orlitzky
2019-07-15  1:56     ` William Hubbs
2019-07-15 14:33       ` Michael Orlitzky
2019-07-15 15:06         ` Mike Gilbert
2019-07-20  1:53           ` Alexander Tsoy
2019-07-15  2:02     ` Andreas K. Huettel
2019-07-15  5:23       ` Michael Orlitzky
2019-07-15 15:22     ` Mike Gilbert
2019-07-15 15:43       ` Michael Orlitzky
2019-07-14 23:50 ` [gentoo-dev] [PATCH 3/6] usr-ldscript.eclass: copy gen_usr_ldscript from toolchain-funcs.eclass Mike Gilbert
2019-07-15  5:41   ` Ulrich Mueller
2019-07-15 15:00     ` Mike Gilbert
2019-07-14 23:50 ` [gentoo-dev] [PATCH 4/6] usr-ldscript.eclass: return early if USE=split-usr is disabled Mike Gilbert
2019-07-14 23:50 ` [gentoo-dev] [PATCH 5/6] Convert ebuilds to inherit usr-ldscript Mike Gilbert
2019-07-14 23:50 ` [gentoo-dev] [PATCH 6/6] toolchain-funcs.eclass: deprecate gen_usr_ldscript Mike Gilbert
2019-07-15  3:31   ` Michał Górny
2019-07-15  4:18     ` [gentoo-dev] " Jonathan Callen
2019-07-15 15:35       ` Mike Gilbert
2019-07-15 11:38 ` [gentoo-dev] [PATCH 0/6] Make 'split-usr' USE flag global and use it in gen_usr_ldscript Jaco Kroon
2019-07-15 12:28   ` Marek Szuba
2019-07-15 13:59     ` Jaco Kroon
2019-07-15 14:22       ` Marek Szuba
2019-07-15 14:45         ` Jaco Kroon
2019-07-15 14:51           ` Michael Orlitzky
2019-07-15 15:37             ` William Hubbs
2019-07-15 15:56               ` Michael Orlitzky
2019-07-16  8:43               ` Jaco Kroon
2019-07-15 15:28 ` [gentoo-dev] " Mike Gilbert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox