Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 16 Sep 24 17:28:15, всего сообщений: 10763
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 2627 из 10763 ===================================== RU.UNIX.BSD =
От   : Serguei E. Leontiev              2:5020/400         10 Mar 15 01:10:40
Кому : Alex Korchmar                                       10 Mar 15 01:10:40
Тема : Re: LTO, clang и FreeBSD
FGHI : area://RU.UNIX.BSD?msgid=<1187500067@ddt.demos.su>+a55c6467
На   : area://RU.UNIX.BSD?msgid=<1187500043@ddt.demos.su>+52d0c43b
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.UNIX.BSD?msgid=<1187500105@ddt.demos.su>+0dfa8fd2
==============================================================================
From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Привет Алексей,

От 8 марта 2015 г., 11:07:12 в fido7.ru.unix.bsd ты писал:
SEL>> Есть ли связанное описания способа включения LTO plug-in?
SEL>> Быть может,
AK> ну дык - -v как оно предлагает, и увидишь, как правильно, и как

Как я понял и, соответственно предварительно выполнил.

1. Пересобрал и переустановил /usr/ports/devel/binutils;
2. В конфигурации /usr/ports/devel/llvm36 включил пункт "LTOPLUGIN
Build LTO plugin (requires gold)", пересобрал и переустановил;
3. Пересобрал и переустановил /usr/ports/lang/clang36;

Явного результата это не принесло, команда `clang36 -flto HelloWorld.c'
продолжила ругаться "/usr/bin/ld: unrecognized option '-plugin'".

AK> неправильно вызывать ld.
AK> И дальше - LD=ld, и никаких линковок кривыми скриптам.

С переменной окружения LD не очень получается.

$ LD=/usr/local/bin/ld.gold clang36 -flto HelloWorld.c
/usr/bin/ld: unrecognized option '-plugin'
/usr/bin/ld: use the --help option for usage information
clang: error: linker command failed with exit code 1 (use -v to see
invocation)

Однако, если грязным образом подменить системный ld, то что-то начинает
работать:
# mv /usr/bin/ld{,.orig}
# ln -s /usr/local/bin/ld.gold  /usr/bin/ld
$ clang36 -flto HelloWorld.c
$ ./a.out
Hello world [C]

Однако счастье неполно:
  1. Замена /usr/bin/ld на /usr/local/bin/ld.gold может где-то аукнуться;
  2. cmake при проверке ключа `-flto' находит какую-то лажу:
Run Build Command:"/usr/local/bin/gmake" "cmTryCompileExec143489584/fast"
/usr/local/bin/gmake -f
CMakeFiles/cmTryCompileExec143489584.dir/build.make
CMakeFiles/cmTryCompileExec143489584.dir/build
gmake[1]: Entering directory
'/Users/leo/YandexDisk/tmp/boost/150304/perf-mutexes/build-bsd-x64/CMakeFiles/CMakeTmp'
/usr/local/bin/cmake -E cmake_progress_report
/home/leo/YandexDisk/tmp/boost/150304/perf-mutexes/build-bsd-x64/CMakeFiles/CMakeTmp/CMakeFiles
1
Building CXX object CMakeFiles/cmTryCompileExec143489584.dir/src.cxx.o
/usr/local/bin/clang++36    -DCOMPILER_SUPPORTS_LTO   -flto -o
CMakeFiles/cmTryCompileExec143489584.dir/src.cxx.o -c
/home/leo/YandexDisk/tmp/boost/150304/perf-mutexes/build-bsd-x64/CMakeFiles/CMakeTmp/src.cxx
Linking CXX executable cmTryCompileExec143489584
/usr/local/bin/cmake -E cmake_link_script
CMakeFiles/cmTryCompileExec143489584.dir/link.txt --verbose=1
/usr/local/bin/clang++36    -DCOMPILER_SUPPORTS_LTO
CMakeFiles/cmTryCompileExec143489584.dir/src.cxx.o  -o
cmTryCompileExec143489584
/usr/bin/ld: error:
CMakeFiles/cmTryCompileExec143489584.dir/src.cxx.o:1:3: invalid character
/usr/bin/ld: error:
CMakeFiles/cmTryCompileExec143489584.dir/src.cxx.o:1:3: syntax error,
unexpected $end
/usr/bin/ld: error: CMakeFiles/cmTryCompileExec143489584.dir/src.cxx.o:
not an object or archive
/usr/lib/crt1.o:/usr/src/lib/csu/amd64/crt1.c:function _start: error:
undefined reference to 'main'
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
CMakeFiles/cmTryCompileExec143489584.dir/build.make:88: recipe for
target 'cmTryCompileExec143489584' failed
gmake[1]: Leaving directory
'/Users/leo/YandexDisk/tmp/boost/150304/perf-mutexes/build-bsd-x64/CMakeFiles/CMakeTmp'
gmake[1]: *** [cmTryCompileExec143489584] Error 1
Makefile:118: recipe for target 'cmTryCompileExec143489584/fast' failed
gmake: *** [cmTryCompileExec143489584/fast] Error 2

Source file was:
int main() { return 0; }


--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru

 
--- ifmail v.2.15dev5.4
* Origin: ГАИШ МГУ (2:5020/400)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.085979 секунды