From 75b13a503145c9c3893405c32fb0e69b7d8ccb67 Mon Sep 17 00:00:00 2001 From: Nikolay Bozhenov Date: Wed, 8 Apr 2015 13:02:40 +0300 Subject: [PATCH] Hardcode host-specific name for LTO plugin Otherwise, binutils can try to use plugin for different architecture. Change-Id: I3070e774ec7f8494241fe52b7aee6d3ba3acef06 --- bfd/plugin.c | 8 ++++++++ packaging/binutils.spec | 1 + packaging/cross-aarch64-binutils.spec | 1 + packaging/cross-arm-binutils.spec | 1 + packaging/cross-i386-binutils.spec | 1 + 5 files changed, 12 insertions(+) diff --git a/bfd/plugin.c b/bfd/plugin.c index a068861..f30eade 100644 --- a/bfd/plugin.c +++ b/bfd/plugin.c @@ -295,6 +295,14 @@ load_plugin (bfd *abfd) char *full_name; struct stat s; +#ifdef BFD_PLUGIN_LTO_NAME +#define STRINGIFY(x) STRINGIFY_(x) +#define STRINGIFY_(x) #x + if (strcmp(ent->d_name, STRINGIFY(BFD_PLUGIN_LTO_NAME))) { + continue; + } +#endif + full_name = concat (p, "/", ent->d_name, NULL); if (stat(full_name, &s) == 0 && S_ISREG (s.st_mode)) found = try_load_plugin (full_name, abfd); diff --git a/packaging/binutils.spec b/packaging/binutils.spec index ea297c6..93759a7 100644 --- a/packaging/binutils.spec +++ b/packaging/binutils.spec @@ -105,6 +105,7 @@ ulimit -s unlimited sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h %build +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DBFD_PLUGIN_LTO_NAME=liblto_plugin_%{_arch}.so" RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error" RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS |sed -e 's/atom/i686/g'` %if 0%{!?cross:1} diff --git a/packaging/cross-aarch64-binutils.spec b/packaging/cross-aarch64-binutils.spec index b37beec..b3d1226 100644 --- a/packaging/cross-aarch64-binutils.spec +++ b/packaging/cross-aarch64-binutils.spec @@ -106,6 +106,7 @@ ulimit -s unlimited sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h %build +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DBFD_PLUGIN_LTO_NAME=liblto_plugin_%{_arch}.so" RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error" RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS |sed -e 's/atom/i686/g'` %if 0%{!?cross:1} diff --git a/packaging/cross-arm-binutils.spec b/packaging/cross-arm-binutils.spec index 461b208..0b00125 100644 --- a/packaging/cross-arm-binutils.spec +++ b/packaging/cross-arm-binutils.spec @@ -106,6 +106,7 @@ ulimit -s unlimited sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h %build +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DBFD_PLUGIN_LTO_NAME=liblto_plugin_%{_arch}.so" RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error" RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS |sed -e 's/atom/i686/g'` %if 0%{!?cross:1} diff --git a/packaging/cross-i386-binutils.spec b/packaging/cross-i386-binutils.spec index 05fd06c..12e8019 100644 --- a/packaging/cross-i386-binutils.spec +++ b/packaging/cross-i386-binutils.spec @@ -106,6 +106,7 @@ ulimit -s unlimited sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h %build +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DBFD_PLUGIN_LTO_NAME=liblto_plugin_%{_arch}.so" RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error" RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS |sed -e 's/atom/i686/g'` %if 0%{!?cross:1} -- 2.7.4