[devel] Не могу понять, почему при сборке в p10 не собирается palemoon

Ilya Kurdyukov ilyakurdyukov на basealt.ru
Пт Окт 28 06:08:33 MSK 2022


Во первых это не ассемблерная вставка, это код jit.

Функция spew где-то определена со специальным атрибутом-подсказкой для 
компилятора, что аргументы похожи на формат аргументов printf().

Эта версия компилятора считает что передача NULL для %s это безусловная 
ошибка. Хотя даже printf печатает NULL как (null), то есть обрабатывает 
корректно. Так и тут это может быть намеренным (но нужно разбираться).

Разница с p10 может быть версия компилятора.

Попробуйте отключить эту -Werror, и проверить работоспособность после 
сборки.


On 10/28/22 09:28, P X wrote:
> Всем привет ;-)
>
> Подскажите в какую сторону копать и как можно поправить.
>
> При сборке в Сизиф palemoon не имеет проблем, но при попытке сборки в 
> p10, сборка вываливается с руганью на то, что в ассемблерной вставке 
> не определён один из операндов.
>
> Чем это может быть вызвано, и в какую сторону надо патчить код (или 
> менять сборочную среду). Я уже и yasm менял на sasm, и код 
> разглядывал, не пойму как лечить.
>
> Пример неудачной сборки
> https://git.altlinux.org/tasks/308526/build/500/x86_64/log
>
> В конце логов можно найти подобное :
>
> "
> /usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/obj-x86_64/dist/include/mozilla/PodOperations.h: 
> In instantiation of 'void mozilla::PodZero(T*) [with T = 
> js::jit::BaseIndex]':
> /usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/platform/js/src/jit/shared/Assembler-shared.h:304:40: 
>   required from here
> /usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/obj-x86_64/dist/include/mozilla/PodOperations.h:31:9: 
> warning: 'void* memset(void*, int, size_t)' clearing an object of 
> non-trivial type 'struct js::jit::BaseIndex'; use assignment or value-in
> itialization instead [-Wclass-memaccess]
>    31 |   memset(aT, 0, sizeof(T));
>       |   ~~~~~~^~~~~~~~~~~~~~~~~~
> ....
> usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/platform/js/src/jit/shared/Assembler-shared.h:293:8: 
> note: 'struct js::jit::BaseIndex' declared here
>   293 | struct BaseIndex
> ....
>
>
> /usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/obj-x86_64/dist/include/js/Value.h:303:32: 
> note: 'class JS::Value' declared here
>   303 | class MOZ_NON_PARAM alignas(8) Value
>       |                                ^~~~~
> ....
> /usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/platform/js/src/jit/x86-shared/AssemblerBuffer-x86-shared.h: 
> In member function 'void js::jit::Assembler::movq.constprop(const 
> js::jit::Operand&, js::jit::Register)':
> /usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/platform/js/src/jit/x86-shared/AssemblerBuffer-x86-shared.h:45:32: 
> note: format string is defined here
>    45 | #define MEM_obs   MEM_o   "(%s,%s,%d)"
>       |                                ^~
> cc1plus: some warnings being treated as errors
> make[5]: *** 
> [/usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/platform/config/rules.mk:884: 
> Unified_cpp_js_src8.o] Error 1
> make[5]: Leaving directory 
> '/usr/src/RPM/BUILD/palemoon-31.3.1/palemoon/obj-x86_64/js/src'
> make[5]: *** Waiting for unfinished jobs....
> "
>
>
> При сборке в Сизиф такого нет
>
> PS вот написал письмо, и заинтересовался предупреждениями о memset ;-)
>
> ---
> С уважением, Хихин Руслан
>
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel


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