openjdk: Как избежать полной перекомпиляции jdk после того, как я изменил код jdk? - PullRequest
0 голосов
/ 10 мая 2018

В исходном коде openjdk8, если я изменю некоторые места исходного кода горячей точки, а затем использую make hotspot-only, будет выполнена инкрементная компиляция. Но после того, как я изменяю исходный код jdk, когда я использую make jdk-only, я получаю сообщение Compiling 9495 files for BUILD_JDK! Я получу только полную компиляцию, когда добавлю только один строковый код, как System.out.println(). Как этого избежать?

1 Ответ

0 голосов
/ 10 мая 2018

Это происходит чаще при использовании целей .PHONY Make.

Если ваша цель - цель .PHONY или ссылается на цель .PHONY, попробуйте найти набор правил, которые выдают тот же результат без использования цели .PHONY.

.PHONY цели в правилах создания триггера безоговорочно, что полезно, когда вы действительно не хотите писать много Makefile, чтобы просто вызвать необходимые части сборки.Хотя они используются (особенно в шаблоне make clean), они часто выполняют больше работы, чем необходимо, и это проблема, которую вы определили.

Если вы обнаружите правило .PHONY в обработке make, и вы не можете избежать этого, вам может понадобиться реструктурировать / переписать Makefile, чтобы исправить это.

Из вашего описания это звучит так, как будто hotspot-only является реальной целью, а jdk-only является либо * 1019.* target или ссылается на .PHONY target, которая включает «все» в перестроение.Это может быть случайно или случайно, но, по крайней мере, теперь вы знаете, почему происходит восстановление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...