28.03.2021 16:55, Vladimir D. Seleznev пишет: > On Sun, Mar 28, 2021 at 02:19:52AM +0300, Денис Назаров wrote: >> 28.03.2021 02:15, Vladimir D. Seleznev пишет: >>> On Sun, Mar 28, 2021 at 02:07:40AM +0300, Arseny Maslennikov wrote: >>>> On Sun, Mar 28, 2021 at 01:55:43AM +0300, Денис Назаров wrote: >>>>> 28.03.2021 01:30, Vladimir D. Seleznev пишет: >>>> [skip] >>>>> Казалось, что сборка через cmake более современная. >>>> Современность — не преступление, и собирать при помощи CMake — само по >>>> себе тоже не преступление. Но при этом не нужно убирать из пакета ту >>>> функциональность, которая в нём была. Если сборка при помощи cmake не >>>> поддерживает правильную комбинацию кнобов или вообще кнобы, а та, что >>>> была — поддерживает, то вторая лучше. Надо, как обычно, вникнуть и >>>> разобраться. >>> Вроде CMake и поддерживает, но тут два момента: вопрос с чем неудобнее >>> работать, и тот момент, что сборка с CMake'ом по-умолчанию собрала >>> библиотеку, которые все необходимые ей библиотеки открывает через >>> dlopen(3). >> А что в dlopen нехорошего-то? >>> >> > > Для библиотек-зависимостей мы используем динамическое связывание. Во > время сборки пакетов rpm-build прописывает в зависимости пакету все > требуемые SONAME'ы для каждого упакованного в пакет ELF'а, более того > генерирует set-versions на основе используемых символов. В результате у > пакета появляются необходимые для работы зависимости, а у нас и > пользователей контроль зависимостей на уровне репозитория и целевой > системы. > > В общем случае стоит использовать динамическое связывание. > > Я не обратил внимание, но похоже, что предыдущие сборки тоже > использовали dlopen, как и эта. Более того, Debian и Fedora собирают с > явно включённым dlopen. Сходу непонятно какой смысл так делать, возможно > это стоит исследовать, но мне кажется правильнее в нашем случае > использовать динамическую линковку. > Нельзя просто так взять и выключить sdl-dlopen ) Добавление --disable-sdl-dlopen в параметры configure приводит к ошибке сборки с поддержкой Vulkan (а отключать я так понимаю совсем не целесообразно): /usr/src/RPM/BUILD/SDL2-2.0.14/src/video/x11/SDL_x11vulkan.c: In function 'X11_Vulkan_LoadLibrary': /usr/src/RPM/BUILD/SDL2-2.0.14/src/video/x11/SDL_x11vulkan.c:47:5: error: unknown type name 'VkExtensionProperties' 47 | VkExtensionProperties *extensions = NULL; | ^~~~~~~~~~~~~~~~~~~~~ /usr/src/RPM/BUILD/SDL2-2.0.14/src/video/x11/SDL_x11vulkan.c:73:13: error: 'VK_NULL_HANDLE' undeclared (first use in this function); did you mean 'VK_DEFINE_HANDLE'? 73 | VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); | ^~~~~~~~~~~~~~ | VK_DEFINE_HANDLE Попробую разобраться