[devel] Q: /usr/lib64/ocaml/libasmrun.a -> textrel in ocaml on armh and x86

Dmitry V. Levin ldv на altlinux.org
Ср Дек 23 22:12:04 MSK 2020


On Wed, Dec 23, 2020 at 09:57:46PM +0300, Dmitry V. Levin wrote:
> On Wed, Dec 23, 2020 at 09:40:47PM +0300, Anton Farygin wrote:
> > On 23.12.2020 19:49, Dmitry V. Levin wrote:
> > > On Wed, Dec 23, 2020 at 06:37:29PM +0300, Anton Farygin wrote:
> > >> On 23.12.2020 16:42, Yuri Sedunov wrote:
> > >>> В Ср, 23/12/2020 в 16:31 +0300, Anton Farygin пишет:
> > >>>> On 23.12.2020 16:08, Alexey Gladkov wrote:
> > >>>>> On Wed, Dec 23, 2020 at 03:16:26PM +0300, Anton Farygin wrote:
> > >>>>>>>> ok. Тогда я постараюсь ускориться с заданием с ocaml-4.11.
> > >>>>>>> Как там с ускорением? -- ocaml мешает удалить заброшенные gtk2-
> > >>>>>>> пакеты.
> > >>>>>>> http://git.altlinux.org/tasks/263804/logs/events.1.1.log
> > >>>>>>>
> > >>>>>>>
> > >>>>>> С ocaml возникла проблема, которую я пока-что не придумал как
> > >>>>>> решить.
> > >>>>>>
> > >>>>>> А именно - на 32-битных архитектурах включенный в компиляторе pie
> > >>>>>> приводит к
> > >>>>>> появлению TEXTREL во всех собранных приложениях и модулях.
> > >>>>>>
> > >>>>>> Отключение pie при сборке ocaml у меня пока что ни к чему
> > >>>>>> хорошему не
> > >>>>>> привело и я склоняюсь к ослаблению проверки TEXTREL для 32-битных
> > >>>>>> архитектур
> > >>>>>> в 163 пакетах.
> > >>>>> Может пора уже постепенно выключать пакеты из i586 ?
> > >>>>>
> > >>>> есть ещё armh, который у нас пока поддерживается.
> > >>>>
> > >>> Может добавить в /usr/lib/rpm/macros.d/ocaml.env
> > >>> %ifarch %ix86 armh
> > >>> export VERIFY_ELF_TEXTREL=relaxed
> > >>> %endif
> > >>>
> > >>> И собрать хотя бы тестовое задание?
> > >> нет, задать это переменной окружения не получится - её переопределяют.
> > > Там другая переменная, называется RPM_VERIFY_ELF_METHOD,
> > > соответственно, там надо было бы написать
> > >
> > > %ifarch %ix86 %arm
> > > export RPM_VERIFY_ELF_METHOD=textrel=relaxed
> > > %endif
> > >
> > > Но таким образом механизм %set_verify_elf_method полностью обходится.
> > >
> > А разве эта переменная тоже не переопределяется в макросах ?
> > 
> > %{?_verify_elf_method:export RPM_VERIFY_ELF_METHOD=\"%_verify_elf_method\"}\
> 
> Да, именно так она и определяется, но /usr/lib/rpm/macros.d/*.env
> раскрываются после этого и могут сделать, например,
> 
> export RPM_VERIFY_ELF_METHOD="%{?_verify_elf_method:%_verify_elf_method }textrel=relaxed"
> 
> Но %ifarch/%endif там тоже не работает.

Первый объезд, который приходит в голову - это сделать rpm-build-ocaml
arch-пакетом и запаковать на нужных архитектурах файл, например,
/usr/lib/rpm/macros.d/ocaml-arch или даже /usr/lib/rpm/macros.d/ocaml-%_arch
следующего содержания:
%_verify_elf_method textrel=relaxed


-- 
ldv


Подробная информация о списке рассылки Devel