Bug 44548

Summary: stl_algo.h:5879:60: error: macro "static_assert" passed 5 arguments, but takes just 2
Product: Sisyphus Reporter: Sergey V Turchin <zerg>
Component: libICEAssignee: Valery Inozemtsev <shrek>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P5 CC: aen, glebfm, ldv, mcpain, rider, shrek
Version: unstable   
Hardware: x86_64   
OS: Linux   
URL: https://gitlab.freedesktop.org/xorg/lib/libice/-/commit/e176b676cff17948d68299c00dddefe41638c752

Description Sergey V Turchin 2022-12-05 15:45:39 MSK
https://git.altlinux.org/tasks/311212/build/100/x86_64/log
При этом локально собирается успешно с gcc12-c++-12.1.1-alt2.x86_64
Comment 1 Sergey V Turchin 2022-12-05 15:47:56 MSK
Подсказали, что libICE обновился.
Comment 2 Олег Соловьев 2022-12-05 16:00:40 MSK
https://git.altlinux.org/tasks/archive/done/_303/311188/gears/100/git?p=git;a=blob;f=include/X11/ICE/ICEmsg.h;h=b6bad138e095e02c44a8731be5fa8d691b300d05;hb=HEAD#l38

есть подохрение, что сборка как минимум всего Qt/KDE сломается
Comment 3 Valery Inozemtsev 2022-12-05 16:34:31 MSK
/usr/include/X11/ICE/ICEmsg.h
...
#include <assert.h>
#ifndef static_assert
#define static_assert(cond, msg) /* skip for non-C11 compilers */
#endif
...

хочешь сказать что в твоих кютях static_assert вообще не был объявлен?
Comment 4 Sergey V Turchin 2022-12-05 16:49:42 MSK
Хочу сказать, что раньше этого костыля в ICEmsg.h не было и всё собиралось.
Comment 6 Sergey V Turchin 2022-12-05 17:08:18 MSK
(Ответ для Valery Inozemtsev на комментарий #5)
> https://cgit.freedesktop.org/xorg/lib/libICE/commit/
> ?id=0269c687e954db7aca2a4344e32cb203315a00b6
Ну, используй другой assert, чтоб без этого костыля.
Comment 7 Sergey V Turchin 2022-12-05 17:56:00 MSK
(Ответ для Valery Inozemtsev на комментарий #5)
> https://cgit.freedesktop.org/xorg/lib/libICE/commit/
> ?id=0269c687e954db7aca2a4344e32cb203315a00b6
Откати, пожалуйста этот коммит, пока разбираться будешь.
Comment 8 Valery Inozemtsev 2022-12-05 18:02:16 MSK
что то не в qt/kde с макросами
#define __cplusplus 201703L есть, но при этом нет __USE_ISOC11
Comment 9 Valery Inozemtsev 2022-12-05 18:27:02 MSK
и не спрашивайте потом почему плазма падает
Comment 10 Repository Robot 2022-12-05 18:31:25 MSK
libICE-1.1.0-alt2 -> sisyphus:

 Mon Dec 05 2022 Valery Inozemtsev <shrek@altlinux.ru> 1.1.0-alt2
 - added check __cplusplus for static_assert macros (closes: #44548)
Comment 11 Dmitry V. Levin 2022-12-05 21:45:44 MSK
Пока вы тут ругались, более сознательные люди отрепортили проблему upstream и благодаря ним, а не вам, её исправили для всех, а не только для вас: https://gitlab.freedesktop.org/xorg/lib/libice/-/commit/e176b676cff17948d68299c00dddefe41638c752
Comment 12 Sergey V Turchin 2022-12-05 22:01:15 MSK
Согласен. Уважаемый Валерий! Вы могли бы не ругаться, как часто происходит, а отрепортить в апстрим.
Спасибо за исправление!
Comment 13 Sergey V Turchin 2022-12-06 11:02:00 MSK
(Ответ для Valery Inozemtsev на комментарий #8)
> что то не в qt/kde с макросами
> #define __cplusplus 201703L есть, но при этом нет __USE_ISOC11
Там и остальных C нет.
При этом в /usr/share/ECM/kde-modules/KDECompilerSettings.cmake есть.

(Ответ для Valery Inozemtsev на комментарий #9)
> и не спрашивайте потом почему плазма падает
А мы уже и так знаем. ;-)