binutils и gcc с LTO

У меня binutils-2.25.1 установлен в /usr/local/binutils-2.25.1, настроен с

../configure --prefix=/usr/local/binutils-2.25.1 --enable-plugins --enable-gold --disable-werror

И я хочу собрать пакет RPM — GCC с поддержкой LTO который использует линкер л.д. из /usr/local/binutils-2.25.1.

Я попробую:

Summary: The GNU Compiler Collection
Name: gcc-custom
Version: 4.9.3
%define full_name gcc-%{version}
%define binutils_path /usr/local/binutils-2.25.1
Release: 0
...
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig

%description

%prep
%setup -q -a0 -n %{full_name}

%build
AR=%{binutils_path}/bin/ar NM=%{binutils_path}/bin/nm RANLIB=@%{binutils_path}/bin/ranlib ./configure \
--prefix=/usr/local/%{full_name} \
--disable-multilib \
--enable-languages=c,c++ \
--enable-lto \
--enable-linker-build-id \
--enable-plugin \
--with-ld=%{binutils_path}/bin/ld \
--with-plugin-ld=%{binutils_path}/bin/ld \
--with-as=%{binutils_path}/bin/as
make

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
/usr/local/%{full_name}

%changelog

После установки этого пакета я пытаюсь:

/usr/local/gcc-4.9.3/bin/g++ -flto -fno-fat-lto-objects -fuse-linker-plugin test.cpp -o test

И получить:

cc1plus: error: -fno-fat-lto-objects are supported only with linker plugin

Но, л.д. из /usr/local/binutils-2.25.1 есть поддержка плагинов

/usr/local/binutils-2.25.1/bin/ld --help | grep plugin
-plugin PLUGIN              Load named plugin
-plugin-opt ARG             Send arg to last-loaded plugin

Также, gcc- {ar, nm, ranlib} из /usr/local/gcc-4.9.3 имеют поддержку —plugin

/usr/local/gcc-4.9.3/bin/gcc-ar --help | grep plugin
--plugin <p> - load the specified plugin

Нужна ваша помощь, ребята

UPD мне удалось решить проблему. Только что заменил

./configure ...

с

mkdir build && cd build && ../configure ...

а также добавил

cd build

в % установить начать

GCC-4.9.3 / LTO-плагин / congifure скрипт не написан правильно !!!

5

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector