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

Anton Farygin rider на basealt.ru
Ср Дек 23 22:38:07 MSK 2020


On 23.12.2020 22:12, Dmitry V. Levin wrote:
> 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

Не очень хотелось так делать.

А пока я так не сделал - вариант с проверкой наличия _is_ilp32 возможен ?

Ну, т.е. что-то вроде

%_verify_elf_method %{?_is_ilp32:textrel=relaxed} %{!?_is_ilp32:default}



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