Bug 48676 - ocaml: fix build on loongarch64 and riscv64
Summary: ocaml: fix build on loongarch64 and riscv64
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ocaml (show other bugs)
Version: unstable
Hardware: loongarch64 Linux
: P5 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-04 14:32 MSK by Ivan A. Melnikov
Modified: 2024-09-17 09:26 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan A. Melnikov 2023-12-04 14:32:10 MSK
Для сборки ocaml 4.14 на loongarch64 потребовалось небольшое дополнение:

https://git.altlinux.org/people/iv/packages/ocaml.git?a=commitdiff;h=ce65e2ab56af1f087705eb48f7f1544a191a074f

Прошу забрать в основной пакет.
Comment 1 Ivan A. Melnikov 2023-12-04 14:33:40 MSK
Также хочу отметить, что при бутстрапе ocaml на новую архитектуру удобнее собирать dune без сборочной зависимости на opam, он там, похоже, не нужен:

https://git.altlinux.org/people/iv/packages/?p=dune.git;a=commitdiff;h=288db2a67ac344319721c1a0875dd97b69d34e94
Comment 2 Anton Farygin 2023-12-04 14:45:47 MSK
Спасибо. opam там вообще скорее всего не нужен, я это перепроверю.
Comment 3 Ivan A. Melnikov 2023-12-06 12:20:57 MSK
Для сборки под riscv64 понадобилось ещё одно небольшое изменение: апстрим опять забыл в runtime/riscv.S немного артефактов рефакторинга:

https://git.altlinux.org/people/iv/packages/?p=ocaml.git;a=blob;f=.gear/ocaml-4.14.1-alt-riscv-drop-unused-symbol.patch;h=cdfddce26c9900f27d482dd77860229e167af86d

Из-за этого, как нетрудно догадаться, падал elf symbol check.

Баги в багзилле решил не плодить, но если надо, то могу.
Comment 4 Anton Farygin 2023-12-06 12:26:11 MSK
не надо. Надо проверить это же в 5.1.0 и если там тоже самое - отдать в апстрим.

У меня пока руки не дошли до сборки тестового задания 5.1.0, но я планирую это сделать в ближайшее время, как освобожусь.
Comment 5 Ivan A. Melnikov 2023-12-06 21:54:32 MSK
(In reply to Anton Farygin from comment #4)
> не надо. Надо проверить это же в 5.1.0 и если там тоже самое - отдать в
> апстрим.

В trunk'е это исправлено ещё до ответвления 5.1, во время очередного существенного переписывания

https://github.com/ocaml/ocaml/commit/9d5c55c00dc01a472a442db1c892c736b2cf877d

Так что для 5.1.x этот патч на riscv.S не актуален.
Comment 6 Anton Farygin 2024-09-03 17:54:36 MSK
предлагаю проверить сборку пакетов из этого задания:
https://packages.altlinux.org/ru/tasks/356727/
Comment 7 Ivan A. Melnikov 2024-09-04 05:36:52 MSK
(In reply to Anton Farygin from comment #6)
> предлагаю проверить сборку пакетов из этого задания:
> https://packages.altlinux.org/ru/tasks/356727/

Спасибо.

Создал в sisyphus_riscv64 и sisyphus_loongarch64 test-only задачи следующего содержания:

#100 build rpm-build-ocaml-1.6.3-alt1.src.rpm
#200 build ocaml-5.2.0-alt1.src.rpm
#300 build ocaml-sexplib0-0.17.0-alt1.src.rpm
#400 build dune-3.16.0-alt1.src.rpm
#500 build ocaml-result-1.5-alt2.src.rpm
#600 build ocaml-pp-1.2.0-alt1.src.rpm

Все пакеты собрались.
Comment 8 Anton Farygin 2024-09-04 07:12:00 MSK
Отлично. Тогда просто ждём окончания работы над всем заданием.
Comment 9 Anton Farygin 2024-09-16 16:03:02 MSK
done. https://packages.altlinux.org/ru/tasks/356727/
Comment 10 Ivan A. Melnikov 2024-09-17 09:26:31 MSK
(In reply to Anton Farygin from comment #9)
> done. https://packages.altlinux.org/ru/tasks/356727/

Аналогичные задачи успешно собрались в sisyphus_riscv64 и sisyphus_loongarch64.

Спасибо!