diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2020-10-25 09:48:40 +0000 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2020-10-25 09:48:58 +0000 |
commit | 463cad343694a7f87f8b003ee6a1b683406e9d1b (patch) | |
tree | 0e62fa3e7918400b377ce75171760c9b20d27b52 /sys-libs/efivar | |
parent | dev-util/cargo-audit: disable network tests (diff) | |
download | gentoo-463cad343694a7f87f8b003ee6a1b683406e9d1b.tar.gz gentoo-463cad343694a7f87f8b003ee6a1b683406e9d1b.tar.bz2 gentoo-463cad343694a7f87f8b003ee6a1b683406e9d1b.zip |
sys-libs/efivar: drop -Werror equivalent for linker
ia64's ld does not implement '-z relro'. This means
'z relro --fatal-warnings' always fails on ia64.
The change drops '--fatal-warnings'.
Reported-by: Émeric Maschino
Closes: https://bugs.gentoo.org/749963
Package-Manager: Portage-3.0.8, Repoman-3.0.2
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'sys-libs/efivar')
-rw-r--r-- | sys-libs/efivar/efivar-37.ebuild | 4 | ||||
-rw-r--r-- | sys-libs/efivar/files/efivar-37-ia64-relro.patch | 37 |
2 files changed, 41 insertions, 0 deletions
diff --git a/sys-libs/efivar/efivar-37.ebuild b/sys-libs/efivar/efivar-37.ebuild index d85015b8778f..40c8e6430d90 100644 --- a/sys-libs/efivar/efivar-37.ebuild +++ b/sys-libs/efivar/efivar-37.ebuild @@ -19,6 +19,10 @@ DEPEND="${RDEPEND} virtual/pkgconfig " +PATCHES=( + "${FILESDIR}"/${PN}-37-ia64-relro.patch +) + src_prepare() { default sed -i -e 's/-Werror //' gcc.specs || die diff --git a/sys-libs/efivar/files/efivar-37-ia64-relro.patch b/sys-libs/efivar/files/efivar-37-ia64-relro.patch new file mode 100644 index 000000000000..92a79aec88e4 --- /dev/null +++ b/sys-libs/efivar/files/efivar-37-ia64-relro.patch @@ -0,0 +1,37 @@ +https://github.com/rhboot/efivar/pull/164 +https://bugs.gentoo.org/749963 + +From: Sergei Trofimovich <slyfox@gentoo.org> +Date: Mon, 19 Oct 2020 19:05:01 +0100 +Subject: [PATCH] gcc.specs: drop --fatal-warnings from linker options (ia64 + compatibility) + +``` +$ LANG=C make HOSTCC=x86_64-pc-linux-gnu-gcc CC=ia64-unknown-linux-gnu-gcc HOST_ARCH=ia64 +ia64-unknown-linux-gnu-gcc ... \ + -o libefivar.so ... +/usr/libexec/gcc/ia64-unknown-linux-gnu/ld: warning: -z relro ignored +collect2: error: ld returned 1 exit status +make[1]: *** [/home/slyfox/dev/git/efivar/src/include/rules.mk:32: libefivar.so] Error 1 +``` + +ia64 (and a few others) binutils target does not support '-z relro' and always +issues a warning. --fatal-warnings spec option turns the build into always failing one. + +The change drops `--fatal-warnings` options from gcc.spec entirely. + +Reported-by: Émeric Maschino +Bug: https://bugs.gentoo.org/749963 +Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> +--- a/gcc.specs ++++ b/gcc.specs +@@ -11,7 +11,7 @@ + + %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}} + + *self_spec: +-+ %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now} +++ %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-static -static -Wl,-z,relro,-z,now} + + *link: +-+ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie} +++ --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie} |