-
Notifications
You must be signed in to change notification settings - Fork 0
Change build system for macOS/AArch64 #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change build system for macOS/AArch64 #22
Conversation
|
Я смог просмотреть только разрешения конфликтов, меня смущает что в HARFBUZZ (Awt2dLibraries.gmk) теперь не добавляются игнор двух warning'ов Но если компилируется, то наверно и ок. А у комита нет баг-id? Этот бекпорт похоже сделан на основе openjdk/jdk@82895a8. Fixup! по имени коммита конечно потом правильно отработает. Но если сохранился список коммитов, которые ты cherry-pick'ал, то было бы круто его записать. В остальном ок, мёржим? |
|
Оу, в jdk15u недавно появилась соответствующая инфраструктура для HARFBUZZ_DISABLED_WARNINGS_clang Мы можем смёржить jdk15u-dev/master чтобы применить оставшийся кусок для Awt2dLibraries.gmk. |
|
Да, давай смержим, я переделаю этот файл |
Нет, здесь я только итоговый коммит патча cherry-pick-нул, но могу crerry-pick-нуть один из коммитов, на которые я поделил этот большой патч (когда пытался сделать rebase патча) |
Думаю, это не стоит усилий. Я сейчас смёржил jdk15u-dev/master в azul-research/jdk15u-dev/macos-aarch64; в этом PR как и ожидалось появились конфликты |
b89f2bb to
1b11e91
Compare
|
Переделал, оставил пока что c++11-narrowing |
|
Хмм, теперь HARFBUZZ выглядит идеально (deprecated-declarations c++11-narrowing -- как в оригинальном патче, мне кажется так лучше -- это third-party код), но пропали изменения в двух других местах |
|
Да, вроде бы deprecated-declarations не нужны всё-таки в другом месте, это я их сам в предыдущей версии добавил, в оригинале их не было. Флаг был нужен для функции, которая определяет версию macos, но эту функцию удалили в одном из предыдущих бекпортов, поэтому флаг больше не нужен |
|
И там не 2 места пропали, а только одно, потому что другое как раз в HARFBUZZ добавляло флаг |
|
А, точно -- их действительно не было в итоге https://github.com/openjdk/jdk/pull/2200/files#diff-c75e2d581b3730cf900075cedb66ac72eaba40fbbd92eaac5710161830b572b4 Выглядит отлично! Ещё бы в description этого PR обновить секцию про Awt2dLibraries.gmk :) А я пока мёржу. Спасибо! |
Патч содержит изменения для 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