Представлен набор патчей для GCC, позволяющий генерировать исполняемые файлы в формате APE (Actually Portable Executable), которые при связывании приложений со стандартной Си-библиотекой Cosmopolitan дают возможность создавать универсальные сборки приложений, запускаемые в разных операционных системах. Исполняемый файл в формате APE не привязан к отдельным платформам и может быть запущен в Linux, FreeBSD, macOS, OpenBSD, NetBSD и Windows. Переносимость обеспечивается при помощи библиотеки Cosmopolitan, которая предоставляет универсальную обвязку над системными вызовами различных операционных систем. Формат APE основан на совмещении специфичных для разных операционных систем сегментов и заголовков (PE, ELF, MACHO, OPENBSD) в одном файле. В качестве примеров программ, которые могут быть собраны с библиотекой Cosmopolitan для одновременного выполнения в разных ОС, отмечены bash, curl, git, ninja, lua, cpython и gcc. Патчи добавляют в GCC 11.2 новый флаг "-fportcosmo", упрощающий
Для GCC подготовлены патчи для сборки универсальных исполняемых файлов
17 июля 202317 июл 2023
25
1 мин