Em build / core / main.mk, o java_version_str contém a saída de "java -version":
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.15.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
O java_version deve extrair "1.7.0_79" usando grep. O cursor no início da expressão regular do grep "^ java" indica que o autor pretendia encontrar uma linha começando com "java". Infelizmente, as variáveis do GNU Make não armazenam os finais de linha. Então o grep só vê uma linha gigante começando com "Picked".
O grep funciona acidentalmente quando a "versão java" está na primeira linha. É provavelmente por isso que "unset _JAVA_OPTIONS" foi adicionado em java_version_str, porque estava causando problemas semelhantes.
A solução mais simples é seguir a solução de band-aid atual adicionando "unset JAVA_TOOL_OPTIONS" ao java_version_str:
java_version_str := $(shell unset _JAVA_OPTIONS && unset JAVA_TOOL_OPTIONS && java -version 2>&1)
javac_version_str := $(shell unset _JAVA_OPTIONS && unset JAVA_TOOL_OPTIONS && javac -version 2>&1)
A solução real seria não usar uma variável intermediária java_version_str e executar o grep diretamente:
java_version := $(shell java -version 2>&1 | grep '^java .*[ "]1\.7[\. "$$]')
javac_version := $(shell java -version 2>&1 | grep '[ "]1\.7[\. "$$]')