В чем разница между do_compile [noexec] и пустой функцией в рецепте bitbake?

Если я хочу отключить конкретный шаг сборки, я могу использовать любое из них:

do_configure[noexec] = "1"

OR

do_configure() {
}

В чем разница между этими альтернативами? Я слышал, что при использовании noexec могут возникать повышенные условия.


person ATOzTOA    schedule 31.05.2015    source источник


Ответы (1)


Что ж, обычно есть 3 способа удалить задачу:

  1. deltask Это полностью удаляет задачу, а также ее зависимости. Таким образом, задачи, которые могут зависеть от удаленной задачи, не будут автоматически зависеть от зависимостей удаленных задач. (A-> B-> C, и удаление B не создает A-> C). Таким образом, это следует использовать только в том случае, если вы знаете, что делаете.
  2. Ставим задачу на пустой do_task() { : }. Это старый способ отключения задачи. Задача все равно будет выполнена, но делать в ней нечего. Таким образом, накладные расходы на выполнение останутся.
  3. do_task[noexec], новый способ отключения задачи. В значительной степени похож на 2., но не будет удерживать накладные расходы на выполнение (поскольку задача никогда не будет выполняться вообще).
person Anders    schedule 02.06.2015
comment
Что происходит с зависимыми задачами при использовании noexec? A- ›B, что происходит с A, когда B установлен на noexec? - person ATOzTOA; 02.06.2015
comment
Когда речь идет о зависимых задачах, различий между 2 и 3 быть не должно. Таким образом, они все же будут выполняться, и вся цепочка зависимостей должна быть сохранена. - person Anders; 02.06.2015