From 6e6641f9b784b371fc8a39d389753895209bd82a Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 12 Jul 2024 13:09:46 +0800 Subject: [PATCH] binutils: Add --enable-new-dtags This option makes ld use DT_RUNPATH instead of DT_RPATH. DT_RPATH is generally considered bad because it takes precedence over LD_LIBRARY_PATH. For example, eog is linked with -rpath /usr/lib/eog, and with DT_RPATH if an old eog is already installed we are basically impossible to debug a new eog build w/o overwriting the system installation first or explicitly using "ld.so --inhibit-rpath" to invoke it. This "new" actually means "new in 2000," it's 24 years ago and all other distros has enabled it. Thus I guess some unexplainable "test suite uses installed library instead of the just built one" issues in BLFS are actually caused by this difference: the package author just assumes everyone is using DT_RUNPATH thus they just set LD_LIBRARY_PATH and consider it enough to test with the just built libraries, but DT_RPATH breaks this expectation. Let's eliminate the difference as it seems not doing anything good and doing so just takes one switch. --- chapter05/binutils-pass1.xml | 12 ++++++++++++ chapter06/binutils-pass2.xml | 1 + chapter08/binutils.xml | 1 + 3 files changed, 14 insertions(+) diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index ef9f3948c..39365477d 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -76,6 +76,7 @@ cd build --disable-nls \ --enable-gprofng=no \ --disable-werror \ + --enable-new-dtags \ --enable-default-hash-style=gnu @@ -133,6 +134,17 @@ cd build + + --enable-new-dtags + + This makes the linker use the runpath tag for + embedding library search paths into executables and shared libraries, + instead of the traditional rpath tag. It makes + debugging dynamically linked executables easier and works around + potential issues in the test suite of some packages. + + + --enable-default-hash-style=gnu diff --git a/chapter06/binutils-pass2.xml b/chapter06/binutils-pass2.xml index 9832e154d..fb54becb0 100644 --- a/chapter06/binutils-pass2.xml +++ b/chapter06/binutils-pass2.xml @@ -73,6 +73,7 @@ cd build --enable-gprofng=no \ --disable-werror \ --enable-64-bit-bfd \ + --enable-new-dtags \ --enable-default-hash-style=gnu diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml index 0d770a6c8..629c698c3 100644 --- a/chapter08/binutils.xml +++ b/chapter08/binutils.xml @@ -57,6 +57,7 @@ cd build --enable-shared \ --disable-werror \ --enable-64-bit-bfd \ + --enable-new-dtags \ --with-system-zlib \ --enable-default-hash-style=gnu