Skip to content

Conversation

@KaperD
Copy link

@KaperD KaperD commented Nov 27, 2021

Патч содержит изменения для build системы, а также добавляет знание о macos/aarch64 через define-

Я сделал cherry-pick большого патча и выбрал нужные изменения, закоммитил их и после этого сделал исправление конфликтов

Изменения:
config.guess: привился чисто
Смысл изменения: Добавляем знание о arm-apple-darwin

make/autoconf/flags.m4: здесь в патче была выше версия (10.12.0), я заменил её на 10.9.0, которая сейчас есть в jdk15
Смысл изменения: Если у нас macos-aarch64, то минимальную macos ставим 11

jvm-features.m4: привился чисто
Смысл изменения: в macos-aarch64 недоступен CDS, поэтому нужно поставить false, если видим macos-aarch64, также добавили вывод os в дополнение к процессору

NativeCompilation.gmk: привился чисто
Смысл изменения: добавлили флаг '-f' option will replace an existing signature if one exists

GensrcAdlc.gmk: в патче здесь уже был windows, поэтому автоматически не привился, я убрал часть с windows
Смысл изменения: если у нас macos-aarch64, то нам нужен R18_RESERVED

Awt2dLibraries.gmk: привился чисто
Смысл изменения: В патче здесь добавляли 2 опции deprecated-declarations и c++11-narrowing, то есть ворнинги, которые нужно игнорировать

Lib.gmk: привился чисто
Смысл изменения: убрали проставление amd64, если у нас macos. Проставление amd64 или aarch64 теперь происходит в коде через define

globalDefinitions_aarch64.hpp: привился чисто
Смысл изменения: если у нас macos-aarch64, то нам нужен R18_RESERVED

vm_version_aarch64.hpp: привился чисто
Смысл изменения: добавили код ('a') процессоров Apple

os_bsd.cpp: привился чисто
Смысл изменения: добавили знание о aarch64 в bsd и сделали функцию uint os::processor_id() только для x86

java_md_macosx.m: привился чисто
Смысл изменения: добавили знание о aarch64

gssapi.h: привился чисто
Смысл изменения: делаем pragma pack(push,2) и pragma pack(pop) только если у нас macos не на arm

MacosxDebuggerLocal.m: привился чисто, кроме лицензии
Смысл изменения: добавили код для aarch64 рядом с amd64, код похож на код для amd64, только имена регистров и их количество другие

libproc_impl.h: привился чисто, кроме лицензии
Смысл изменения: делаем объявление amd64 или aarch64, которое убрали из Lib.gmk и также добавляем структуру с регистрами для aarch64

ps_core.c: привился чисто, кроме лицензии
Смысл изменения: добавили код для aarch64 рядом с amd64, опять же, код похож, в нем просто заменили имена регистров и типов

Makefile: привился чисто
Смысл изменения: добавили знание о aarch64

@AntonKozlov
Copy link
Member

Я смог просмотреть только разрешения конфликтов, меня смущает что в HARFBUZZ (Awt2dLibraries.gmk) теперь не добавляются игнор двух warning'ов

HARFBUZZ_DISABLED_WARNINGS_clang := ... \
        deprecated-declarations c++11-narrowing

Но если компилируется, то наверно и ок.

А у комита нет баг-id? Этот бекпорт похоже сделан на основе openjdk/jdk@82895a8. Fixup! по имени коммита конечно потом правильно отработает. Но если сохранился список коммитов, которые ты cherry-pick'ал, то было бы круто его записать.

В остальном ок, мёржим?

@AntonKozlov
Copy link
Member

Оу, в jdk15u недавно появилась соответствующая инфраструктура для HARFBUZZ_DISABLED_WARNINGS_clang

openjdk@3adb4ce

Мы можем смёржить jdk15u-dev/master чтобы применить оставшийся кусок для Awt2dLibraries.gmk.

@KaperD
Copy link
Author

KaperD commented Nov 30, 2021

Да, давай смержим, я переделаю этот файл

@KaperD
Copy link
Author

KaperD commented Nov 30, 2021

Я смог просмотреть только разрешения конфликтов, меня смущает что в HARFBUZZ (Awt2dLibraries.gmk) теперь не добавляются игнор двух warning'ов

HARFBUZZ_DISABLED_WARNINGS_clang := ... \
        deprecated-declarations c++11-narrowing

Но если компилируется, то наверно и ок.

А у комита нет баг-id? Этот бекпорт похоже сделан на основе openjdk/jdk@82895a8. Fixup! по имени коммита конечно потом правильно отработает. Но если сохранился список коммитов, которые ты cherry-pick'ал, то было бы круто его записать.

В остальном ок, мёржим?

Нет, здесь я только итоговый коммит патча cherry-pick-нул, но могу crerry-pick-нуть один из коммитов, на которые я поделил этот большой патч (когда пытался сделать rebase патча)

@AntonKozlov
Copy link
Member

Нет, здесь я только итоговый коммит патча cherry-pick-нул, но могу crerry-pick-нуть один из коммитов, на которые я поделил этот большой патч (когда пытался сделать rebase патча)

Думаю, это не стоит усилий.

Я сейчас смёржил jdk15u-dev/master в azul-research/jdk15u-dev/macos-aarch64; в этом PR как и ожидалось появились конфликты

@KaperD
Copy link
Author

KaperD commented Nov 30, 2021

Переделал, оставил пока что c++11-narrowing

@AntonKozlov
Copy link
Member

Хмм, теперь HARFBUZZ выглядит идеально (deprecated-declarations c++11-narrowing -- как в оригинальном патче, мне кажется так лучше -- это third-party код), но пропали изменения в двух других местах

https://github.com/azul-research/jdk15u-dev/pull/22/files#diff-c75e2d581b3730cf900075cedb66ac72eaba40fbbd92eaac5710161830b572b4

@KaperD
Copy link
Author

KaperD commented Nov 30, 2021

Да, вроде бы deprecated-declarations не нужны всё-таки в другом месте, это я их сам в предыдущей версии добавил, в оригинале их не было. Флаг был нужен для функции, которая определяет версию macos, но эту функцию удалили в одном из предыдущих бекпортов, поэтому флаг больше не нужен

@KaperD
Copy link
Author

KaperD commented Nov 30, 2021

И там не 2 места пропали, а только одно, потому что другое как раз в HARFBUZZ добавляло флаг

@AntonKozlov
Copy link
Member

А, точно -- их действительно не было в итоге https://github.com/openjdk/jdk/pull/2200/files#diff-c75e2d581b3730cf900075cedb66ac72eaba40fbbd92eaac5710161830b572b4
Но когда-то были openjdk/jdk@82895a8#diff-c75e2d581b3730cf900075cedb66ac72eaba40fbbd92eaac5710161830b572b4 -- я смотрел на этот, а наверно стоило на коммит выше.

Выглядит отлично! Ещё бы в description этого PR обновить секцию про Awt2dLibraries.gmk :) А я пока мёржу. Спасибо!

@AntonKozlov AntonKozlov merged commit 89f7b6f into azul-research:macos-aarch64 Nov 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants