On Sat, Sep 23, 2023 at 04:44:38PM +0700, Ilya Kurdyukov wrote: > On 9/23/23 16:36, Dmitry V. Levin wrote: > > > > --ldflags=-Wl,--build-id=sha1 > > Этой истории уже много лет, поэтому удивительно, что где-то до сих пор > > по умолчанию создаётся 64-битный build id. С точки зрения репозитория > > важно не столько, чтобы конкретный пакет был исправлен, сколько чтобы > > этого не происходило по умолчанию. > > > ghc (смотрел спеку 8.6.4) для armh/aarch64 собирается через LLVM: > > * Thu Aug 17 2023 Anton Zhukharev 8.6.4-alt9 > - Fixed FTBFS. > - Built with llvm12.0 on armh and aarch64. > - Stored LLVM version in %%ghc_llvm_version macro. > > Это опции LLD, линковщика из LLVM: > > --build-id=value >     Generate a build ID note. value may be one of fast, md5, sha1, tree, > uuid, 0xhex-string, and none. tree is an alias for sha1. Build-IDs of type > fast, md5, sha1, and tree are calculated from the object contents. fast is > not intended to be cryptographically secure. > --build-id >     Synonym for --build-id=fast. > > Если девятый ghc собирается так же - значит проблема в конфигурации LLVM, > наверное там указано --build-id, что превращается в --build-id=fast. Мы (т. е. я и не только) тут off-list голову ломали, почему ошибка, о которой речь в этом треде, происходит только на aarch64 и почему мы подобных жалоб не видим по всему репозиторию среди пакетов, линкуемых этим lld. А дело в том, что на данной архитектуре в данном пакете lld вызывается командой gcc, что редкость (не удивлюсь, если в сизифе так делает только сборочная система ghc). gcc, вестимо, передаёт линкеру просто --build-id. Так что большое спасибо Илье за оперативное замечание в яблочко. И тогда, действительно, проще всего навязать в пакете ghcX `--ldflags=-Wl,--build-id=sha1'. Хуже того, clang (и актуальный тоже) вообще не передаёт --build-id=*, т. е. у нас все бинарники из-под clang+lld попадают в репозиторий вообще без GNU_BUILD_ID elf note.