Пользовательский набор инструментов Bazel 0.5.2, неправильно вызывающий программу архива (gcc ar) при построении тензорного потока?

При попытке использовать настраиваемую цепочку инструментов для создания цели, зависящей от тензорного потока, мои файлы CROSSTOOL и Toolchain BUILD кажутся прекрасными. Однако при построении цели (которая зависит от тензорного потока) bazel ошибки в следующем:

>>>>>> #@org_tensorflow//tensorflow/core:version_lib [action 'Linking external/org_tensorflow/tensorflow/core/libversion_lib.a']
cd blah/blach && \ exec env - \ PWD=/proc/self/cwd \ 
path/to/linux-gnu-gcc-ar @bazel-out/local_linux-opt/bin/external/external/org_tensorflow/tensorflow/core/libversion_lib.a-2.params

Ошибка заключается в вызове самого "ar", он должен вызываться с содержимым файла, а не с самим файлом.

ERROR: path/to/tensorflow/core/BUILD:1033:1:1 Linking of rule 
'@org_tensorflow//tensorflow/core:version_lib' failed: x86_64-unknown-linux-
gnu-gcc-ar failed: error executing command 
(cd blah/blach && \ exec env - \ PWD=/proc/self/cwd \ 
path/to/linux-gnu-gcc-ar @bazel-out/local_linux-
opt/bin/external/external/org_tensorflow/tensorflow/core/libversion_lib.a-
2.params) : com.google.devtools.build.lib.shell.BadExitStatusException: 
Process exited with status 1.
path/to/ar: invalid option --'@'
Usage: ar [emulation options] [-]{dmpqrstx}[abcDfilMNoPsSTuvV] [--plugin 
<name>] [member-name] [count] archive-file file... etc.

Теперь кошачий

bazel-out/local_linux/opt/bin/external/external/org_tensorflow/tensorflow/core/libversion_lib.a-2.params

Я получаю именно то, что должно быть аргументом для 'ar', то есть я получаю:

 rcsD bazel-out/local_linux-opt/bin/external/org_tensorflow/tensorflow/core/libversion_lib.a bazel-out/local_linux-opt/bin/external/org_tensorflow/tensorflow/core/_objs/version_lib/external/org_tensorflow/tensorflow/core/util/version_info.o

Команда, которую следует запустить, выглядит примерно так:

path/to/custom/toolchain/ar $(cat bazel-out/local_linux/opt/bin/external/external/org_tensorflow/tensorflow/core/libversion_lib.a-2.params)

Что мне не хватает? Я использую последнюю версию bazel 0.5.2


person ark    schedule 19.07.2017    source источник


Ответы (1)


Моя ошибка, при дальнейшем чтении разные версии ar поддерживают файловый аргумент. Исправление устанавливает аргумент supports_param_files в 0 в правиле cc_toolchain. Спасибо Марселю Хлопко из группы google bazel за ответ.

person ark    schedule 19.07.2017