-
Notifications
You must be signed in to change notification settings - Fork 0
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
Implementation of JEP 391: macOS/AArch64 Port #29
base: macos-aarch64
Are you sure you want to change the base?
Conversation
О, круто. Я долго смотрел первый PR из серии -- если там бессмысленные запросы -- посмотрю этот, он может быть делает мои вопросы бесмысленными |
Здесь по прежнему не хватает коммита JDK-8253819: copy linux_aarch64 -> bsd_aarch64. Просто тяжело понять, что добавляется в новых файлах. Плюс, именно из-за этого приходится делать новые коммиты
-- то, что были добавлены новые функции в sve или были удалены функции, стало бы очевидно. Хочется проверить, что ничего не забыто. Т.е. хочется, чтобы до JDK-8253819: Implement os/cpu for macOS/AArch64 коммита были вставлены два коммита: c3fc678 и предыдущий. К ним есть вопрос: в bsd был добавлен файл, которого не было в linux
|
Плюс, не хватает openjdk/jdk@0d0e9ba Этот бекпорт же по-прежнему основан на Разделение на ... JDK-8253817: Support macOS Aarch64 ABI in Interpreter ... JDK-8254941: Implement Serviceability Agent for macOS/AArch64 для ревью не важно -- если не помогает, можно не делать. Но и не мешает. |
Но реально круто, что это почти полноценный порт! (чуть-чуть причесать историю коммитов и поревьюить ещё надо). Мне нравится один патч, который можно тестить. Пойду попробую. |
Он же не нужен нам, такого файла в jdk15 нет. В jdk15 я добавил изменение в os_bsd.cpp
Да |
А, изменение есть, точно Ок, здесь всё норм :) |
Backport ec9bee68660acd6abf0b4dd4023ae69514542256
Backport 36998b006d6a9ee8145004778534d1f35a55e068
Backport 2c8f4e202bd7e5b78edb32580b8a836660493d9c
@@ -139,7 +169,8 @@ void InterpreterRuntime::SignatureHandlerGenerator::pass_object() { | |||
__ cbnz(temp(), L); | |||
__ mov(r0, zr); | |||
__ bind(L); | |||
__ str(r0, Address(to(), next_stack_offset())); | |||
static_assert(sizeof(jobject) == wordSize, ""); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ой, вот тут нужно изменить на STATIC_ASSERT
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Почему-то отсутствует
openjdk/jdk@d178376 -- тест успешно проходит?
src/hotspot/share/c1/c1_Runtime1.cpp
Outdated
// Enable WXWrite: the function is called by c1 stub as a runtime function | ||
// (see another implementation above). | ||
MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXWrite, thread)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Этот hunk не нужен -- JRT_ENTRY уже содержит нужное переключение (в отличие от jdk17+)
src/hotspot/os/bsd/os_bsd.cpp
Outdated
kern_return_t kr; | ||
kr = task_set_exception_ports(mach_task_self(), | ||
EXC_MASK_BAD_ACCESS | EXC_MASK_ARITHMETIC, | ||
EXC_MASK_BAD_ACCESS | EXC_MASK_ARITHMETIC | ||
AARCH64_ONLY(| EXC_MASK_BAD_INSTRUCTION), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выравнивание
Этого теста нет в jdk15, его добавили позже openjdk/jdk@a6ab9e4#diff-b9d4d7f230fe35edab9920b7e6ce180e9dd5c26b567721414e6be7fa3a2329b6 |
Тест действительно проходит, удивительно :) Выглядит замечательно! Мне хочется интегрировать именно этот PR, он примерно соответствует единоразовой интеграции реализации JEP. Но ещё хочется немного поребейзить коммиты. Мне кажется, было ошибкой интегрировать #22, т.к. он есть составная часть этого PR. Проблема в том, что коммиты Глеба должны пойти именно до этого PR. Поэтому нужен ребейз и похоже force-update, чтобы правильно обработать #22. Например так, переработанная ветка macos-aarch64 с патчами из этого PR https://github.com/AntonKozlov/jdk15u-dev/tree/macos-aarch64-rebase |
А небольшие исправления лучше добавить ребейзом в исходные коммиты или можно оставить отдельным коммитом? |
Пока отдельным отлично. Большинство из этих коммитов, относящихся к Implementation JEP захочется слить попозже в один большой. |
Это всё вместе. Можно билдить и запускать тесты)