The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Для GCC подготовлены патчи для сборки универсальных исполняемых файлов

15.07.2023 21:49

Представлен набор патчей для 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", упрощающий перевод программ, написанных на языке Си, на использование библиотеки Cosmopolitan. В частности, патчи автоматизируют решение проблем с выражениями switch и инициализацией структур, которые при сборке с Cosmopolitan в обычном GCC приводят к выводу ошибок и раньше требовали ручного изменения кода, так как макросы, подобные EINVAL, не являются константами в Cosmopolitan, а использование не констант в static struct, const struct и switch...case недопустимо. Код предложенных изменений опубликован под лицензией ISC (упрощённый вариант MIT/BSD).

 
  1. Главная ссылка к новости (https://ahgamut.github.io/2023...)
  2. OpenNews: Выпуск стандартной Си-библиотеки Cosmopolitan 2.0, развиваемой для переносимых исполняемых файлов
  3. OpenNews: Проект по портированию механизма изоляции pledge для Linux
  4. OpenNews: Redbean 2.0 - платформа для web-приложений, упакованных в универсальный исполняемый ZIP-архив
  5. OpenNews: Cosmopolitan - стандартная Си-библиотека и формат кроссплатформенных исполняемых файлов
  6. OpenNews: FatELF - формат для упаковки в исполняемый файл поддержки разных платформ
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59446-cosmopolitan
Ключевые слова: cosmopolitan, gcc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (217) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, НяшМяш (ok), 22:22, 15/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –6 +/
    > GCC 11.2

    Ну то есть в апстриме можно не ждать.

     
     
  • 2.19, pavlinux (ok), 01:36, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    Баян, версия 2023 года.

    2009 https://www.opennet.me/opennews/art.shtml?num=23948
    Ну и в общем, попыток много было https://en.wikipedia.org/wiki/Fat_binary

    Все они дохнут из-за того, что никто не хочет переписывать функционал
    уже существующих библиотек, типа Boost,  Qt, WxWidget,  GMP, OpenMPI,  ...  

    И ваще, уже 100500 лет есть Java ... java -jar ля-ля-ля.jar  и всё щастливы!

     
     
  • 3.31, Аноним (31), 07:00, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –3 +/
    java давно протухла
     
     
  • 4.36, Аноним (36), 08:17, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +9 +/
    Мужики-то и не знают.
     
     
  • 5.66, Дмитрий (??), 12:25, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Кстати java в основном используется на серверах.  под десктоп мало где используется. У обычных пользователей установленная java - редкость
     
     
  • 6.78, Аноним (78), 14:08, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Миллионы игроков в Minecraft & Runescape для тебя это шутка?
     
     
  • 7.79, Neandertalets (ok), 14:18, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    > Миллионы игроков в Minecraft & Runescape для тебя это шутка?

    Хех... Даже пришлось гуглить....

     
  • 7.86, Аноним (86), 15:15, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +3 +/
    Эти миллионы игроков используют не старый оригинальный майнкрафт на джаве, а Minecraft Bedrock, который не имеет к джаве отношения вообще. А то и современный Minecraft RTX.

    Вы что, думаете что майнкрафт для Wii U, Switch, PS4/PS5, Xbox всех вариантов, iOS и тп на джаве? Миллионы игроков - это на всех платформах вместе, а не только винде. Безо всякой джавы. Да и под виндой основная масса на Bedrock для нормального освещения и прочего...

     
     
  • 8.138, Аноним (138), 12:21, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Ты серьёзно так считаешь Ожидаемый контраргумент, но Java-версия попросту незам... текст свёрнут, показать
     
  • 6.80, Neandertalets (ok), 14:20, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    > Кстати java в основном используется на серверах.  под десктоп мало где
    > используется. У обычных пользователей установленная java - редкость

    Есть не мало софта и на десктопе. На винде - немного, но тоже есть.

     
  • 6.112, Аноним (112), 03:36, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > У обычных пользователей установленная java - редкость

    LibreOffice


     
  • 6.134, pavlinux (ok), 11:54, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Кстати java в основном используется на серверах.  под десктоп мало где
    > используется. У обычных пользователей установленная java - редкость

    Из тех, что у меня есть: Netbeans, Eclipse, Android Studio,  Kubios+MatLab,  Maple,  OWASP, Azureus, BikeXperience    

    Не смотря на "жирность" самой жавы, тормознутость и требование к ресурсам,...  
    только Sun Microsystems  и Java добились реальной аппаратной независимости,
    портабельности и многоплатформенности.  

     
  • 6.151, _kp (ok), 17:19, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    При известных недостатках Явы на десктопе вообще то это один из немногих способов сделать portable  придожение, да под несколько ОС одновременно, и с вменяемой производительностью, и вменяемыми аппетитами к ресурсам, по сравнению с альтернативными решениями.
    В общем, будет еще и жить,и развиваться.
     
     
  • 7.210, Jh (?), 05:34, 19/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Конечно будет. Она в кровавом энтрерпайзе еще тысячу лет будет работать. Тысячи сеньоров-помидоров не откажутся от спринга
     
  • 3.48, Neandertalets (ok), 10:16, 16/07/2023 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +2 +/
    Настолько "щасливы"... Про "запускать только под Java под Windows" ни разу не слышали? Не часто, но сталкивался. Или "не так" под разными ОС работает приложение (Винда, Линь (в самих линях не сталкивался между дистрибутивами)).
    Так что эта многоОСность - весьма условна.
     
     
  • 4.70, Аноним (70), 12:43, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    К слову, конкретно эта проблема писателей, которые нарочно привязывались либо к конкретному рантайму, либо через jni к конкретной библиотеке под конкретную версию ОСи, либо используют запрещённые колдунства с sun.misc.unsafe (которые не являются частью стандартного api, просто так недоступны снаружи, меняются от рантайма к рантайму, зато там возможна работа с указателями)
     
     
  • 5.71, Neandertalets (ok), 12:49, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +3 +/
    > К слову, конкретно эта проблема писателей, которые нарочно привязывались либо к конкретному
    > рантайму, либо через jni к конкретной библиотеке под конкретную версию ОСи, либо используют
    > запрещённые колдунства с sun.misc.unsafe (которые не являются частью стандартного api, просто
    > так недоступны снаружи, меняются от рантайма к рантайму, зато там возможна работа с указателями)

       Можно это высказать разрабам из Cisco... Но толку?

     
  • 5.105, _ (??), 22:27, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >К слову, конкретно эта проблема писателей

    К слову тогда любой Ёзык - кросс-платформенный. Всё зло от писак!(С)

    ... хех! И кстати это почти 146% правда :)

     
  • 3.67, Аноним (67), 12:27, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    > Все они дохнут из-за того, что никто не хочет переписывать функционал

    уже существующих библиотек, типа Boost,  Qt, WxWidget,  GMP, OpenMPI

    главное gcc и утилиты gnu - как минимум можно избавиться от cygwin, остальное не интересно.

     
     
  • 4.233, фф (?), 10:38, 20/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    у гцц и гну утилит проблема не в компиляции под винду, а в отсутствии стандартных позикс библиотек. цигвин собственно их и добавляет
     
     
  • 5.237, Аноним (237), 22:58, 20/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    В цигвине утилиты гну (make, rm, cp и тд) которые нужны для сборки проектов на венде, сейчас их можно собрать без танцев с бубноцигвином
     
     
  • 6.238, фф (?), 08:02, 27/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > В цигвине утилиты гну (make, rm, cp и тд) которые нужны для
    > сборки проектов на венде, сейчас их можно собрать без танцев с
    > бубноцигвином

    а что вам мешает просто взять виндовый компилятор и собрать эти гну утилиты под винду без цигвина?

     

  • 1.2, Аноним (2), 22:35, 15/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    Какие дыры у данной библиотеки? Файлы весом в целую ОСь?
     
  • 1.3, Анониссимус (?), 22:43, 15/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +4 +/
    Бесспорно крутая штука. Теоретически можно канпелировать, например, универсальный бинарник своей программулины и раздавать его на оф. сайте. Но практически это упирается в разные графические стеки разных ОС. Теоретически, эту проблему можно решить, но опять же, практически -- эта задача выглядит слишком большой.
     

     ....большая нить свёрнута, показать (49)

  • 1.8, pashev.ru (?), 23:13, 15/07/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.15, Да (?), 00:13, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +8 +/
    Космополитан это все сплошной грязный хак. Автору просто повезло, что есть путь по которому ОС могут прожевать "универсальный" бинарник. Если в каком-нибудь из апдейтов венды прилетит поправленный парсер PE формата, который будет реджектит всякий мусор в файле а не skip'ать, то космополитан превратится в тыкву.
     
     
  • 2.24, Аноним (23), 02:28, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    Кто на это решиться в microsoft? Там полно легаси.
     
     
  • 3.34, n00by (ok), 07:46, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Там практически всего один линкер, и выпускает его Микрософт.
     
     
  • 4.56, Аноним (56), 10:47, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Было бы очень неплохо, если бы винда перешла на ELF или linux - на PE. ELF вроде простой и понятный. Но архаичный слишком, на JSON слишком похож. PE вроде посовременней - machine-readable структуры, которые можно по памяти разложить, а не по именам секций ориентироваться, перечисляя их.
     
     
  • 5.75, n00by (ok), 13:32, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    В Linux уже есть загрузчик Portable Executable -- в составе Wine. Имеет смысл, поскольку заодно предоставляет WinAPI. Иначе зачем он нужен? Универсальность от лукавого. Например, в Linux mremap() предоставляет возможности, коих нет у конкурентов, и они могут заметно упростить код и дать выигрыш по скорости.
     
     
  • 6.101, Аноним (101), 19:59, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    для упразднения этого безобразного зоопарка. Чтобы на всех системах использовался один и тот же формат бинарей, и мне чтобы не надо было поддерживать 3 бэкенда: по одному на каждый из основных форматов. И ещё чтобы была утилитка, которая все бинарники сконвертирует, в которую можно пользователей носом тыкать, когда им нужно работать с неподдерживаемым в моей утилите форматом.
     
  • 6.117, Neon (??), 05:32, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Только конкурентов все 99%
     
     
  • 7.126, n00by (ok), 09:21, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Так потому что не используют конкурентное преимущество. Получается порочный круг.
     
  • 5.83, Аноним (83), 14:56, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Исторически, ELF появился позже PE. Во времена рождения Win95, в Linux ещё использовался a.out.
     
     
  • 6.236, phil (??), 22:04, 20/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    При чем тут линукс? ELF появился в SVR4 (1988).
     
  • 2.46, Аноним (46), 10:05, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    >>> Космополитан это все сплошной грязный хак. <<<

    Сам по себе язык Си это тоже тот ещё хак:) взять хотя бы, тот же do {...} while(0)

     
     
  • 3.57, Аноним (56), 10:49, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Just use C++.
     
     
  • 4.77, Аноним (46), 14:04, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    Предпочитаю Python и С, но да, когда не хватает возможностей С, - хорошо что есть С++!
     
  • 3.166, _kp (ok), 18:58, 17/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    >>>> Космополитан это все сплошной грязный хак. <<<
    > Сам по себе язык Си это тоже тот ещё хак:) взять хотя
    > бы, тот же do {...} while(0)

    Это не фича Си, а фича препроцессора.
    Без которой можно и обойтись.

    А в случаях когда препроцессор неоходим, то  в языках без него, вызывается внешний не стандартный, кто как сможет, генератор кода.
    Альтернатива - сотворение нередактируемого исходника ручками, или медленная динамическая обработка в реалтайме.

     

  • 1.17, cheburnator9000 (ok), 01:27, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    Если ваш исполняемый файл использует платформо-зависимую библиотеку скажем GTK/Qt то ничего не выйдет.
     
     
  • 2.143, Анониссимус (?), 14:01, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Если ваш исполняемый файл использует платформо-зависимую библиотеку скажем GTK/Qt то ничего
    > не выйдет.

    А если в зависимости от платформы связываться с разными библиотеками? Да, это очень сложно, но ведь возможно?

     

  • 1.27, Ivan7 (ok), 04:50, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +3 +/
    Интересно, но не вполне ясно, зачем оно. Да и в реальности будет много разных НО, включая внешние библиотеки, их разные версии для для каждой ОС и т.п. Да и нет проблем загрузить нужную версию приложения для определённой ОС.
     

  • 1.32, n00by (ok), 07:31, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    > макросы, подобные EINVAL, не являются константами в Cosmopolitan

    Очень интересный момент.
    Действительно, определены вот так:

    /**
    * Result too large.
    */
    extern const errno_t ERANGE;

    https://github.com/jart/cosmopolitan/blob/18536950b3db37da45641bc5805d82ea6056


    А вот как должно быть в языке Си:

    C17 ballot ISO/IEC 9899:2017

    7.5 Errors <errno.h>

    1 The header <errno.h> defines several macros, all relating to the reporting of error conditions.

    2 The macros are

    EDOM
    EILSEQ
    ERANGE

    which expand to integer constant expressions with type int, distinct positive values, and which are suitable for use in #if preprocessing directives;


    То есть формулировка "Си-библиотека Cosmopolitan" не является корректной.
    Правильнее говорить "похожая на Си"

     
     
  • 2.33, n00by (ok), 07:35, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Определено как extern const, что бы гарантировать наличие объекта в памяти.
    Наверняка при инициализации библиотеки подставляются подходящие для среды исполнения значение.
    То есть в угоду "универсальности" пожертвованы эффективность и соответствие стандарту.
     
     
  • 3.39, Пушок (?), 08:25, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Как всегда чётко и по делу. 👍
     
  • 3.55, Аноним (55), 10:43, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Спасибо, кэп.
     

  • 1.37, Аноним (36), 08:19, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –2 +/
    Вот бы кто сначала придумал для линуксов универсальный бинарник. А то для разных версий убунты разные deb'ы качать надо.
     

     ....большая нить свёрнута, показать (94)

  • 1.42, Аноним (44), 09:30, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –2 +/
    Ну всё этот ваш Линукс можно собрать переносимо и нативно запускать на шинде.
     
     
  • 2.68, maximnik0 (?), 12:29, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    >и нативно запускать на шинде.

    Давно ,очень давно можно было.Ещё во времена вин98.Был
    такой загрузчик- loadlin с бантиком,запускал Линукс из под винды.
    Да, нужен был хак (ums-dos ??? Или как он там назывался)для файловой системы фат,подменял название файлов и атрибуты,должен был быть включен в ядро,у популярной на тот момент  сласквари уже был готовый 130мгб ЗИП образ,просто распоковывался и работал.
    Чуть позже для 2000 и xp тоже выпустили драйвер  чтобы линь под этими операционками работал ,требовался правда падченное Лин ядро.Правда уже вмваре появился,проще в нем было запускать...

     
     
  • 3.201, _kp (ok), 13:07, 18/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Небольшое уточнение. Чистая система, это свежеустановленная система, настроеенная, с ПО для работы. ("Стороннее" в подсчете упускал)
    Это то состояние, в котором есть смысл сделать первый бекап/снапшот.

    А бекап голой системы с настройками и компонентами по умолчанию, это редкость, и то, разве что для быстрого развертывания, например на Распберри.

    >>loadlin

    Когда функционал grub и lilo был слабый, так ради loadlin, делал раздел с DOS примерно до 2010г. ;)
    А это позволяло разводить _шуточные_ споры, что Линух тоже всего лишь надстройка над DOS. ;)

     
  • 2.209, Аноним (209), 19:21, 18/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Открыл для себя WSL2?
     

  • 1.45, Аноним (45), 09:47, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Не понятно зачем это всё. Кроме форматов файлов есть еще системные вызовы и на этом всё заканчивается
     
     
  • 2.50, Dzen Python (ok), 10:20, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Ждем, когда библиотека переродится полноценную VM, чтобы решить проблему разных окружений.
    Хотя...стоп. Джава, ты ли это?
     
     
  • 3.63, arisu (ok), 12:06, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Ждем, когда библиотека переродится полноценную VM, чтобы решить проблему разных окружений.

    я немножко не понял, зачем ждать то, что уже сделали: https://github.com/jart/blink

     
  • 3.175, _kp (ok), 22:14, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > когда библиотека переродится полноценную VM, чтобы решить проблему разных окружений.

    Тогда будут с теплотой ностальгировать о шустром и компактном Электроне. :)


     
  • 2.84, Don (??), 15:04, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Вроде минимальный набор системных вызов тоже поддерживаются: файлы, сокеты и тп
     
  • 2.103, Аноним (103), 21:15, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Переносимость обеспечивается при помощи библиотеки Cosmopolitan, которая предоставляет универсальную обвязку над системными вызовами различных операционных систем.

    Почему бы просто новость не прочитать дальше заголовка?

     
     
  • 3.125, Аноним (45), 09:19, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    почему бы не балаболить а действительно посмотреть что оно поддерживает?
     

  • 1.47, Аноним (47), 10:07, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +3 +/
    Я очень надеюсь, что это cargo cult bloatware отклонят. Практической пользы от этой космополитан-diversity 0.
     
  • 1.49, Аноним (47), 10:17, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Вчера читал исследование про уязвимости в парсерах ELF-файлов В общем, все парс... большой текст свёрнут, показать
     
     
  • 2.82, Аноним (83), 14:53, 16/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Вероятно это потому, что для x86_64 другого endianness не бывает. А вот для POWER, MIPS наверняка это поле проверяется.
     
     
  • 3.89, uis (??), 15:35, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    ARM тоже. Обе разрядности.
     
  • 2.90, uis (??), 16:12, 16/07/2023 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    > Это приводит к тому, что endianness надо знать наперёд при парсинге формата.

    https://man7.org/linux/man-pages/man5/elf.5.html
    Ложь, поклёп и провокация! Читаешь шестой байт - вот тебе endianess

     
     
  • 3.100, Аноним (100), 19:48, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Только ядро Linux и ld.so его не читают и безропотно грузят файлы, в которых указана несовместимая endianness. А инструменты реверсинга - читают и используют. Поэтому кульхацкеры ставят неправильное значение. Программа всё равно работает, а вот декомпиляторы и дизассемблеры сосут.
     
     
  • 4.104, uis (??), 22:12, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > $ gcc -nostdlib main.c -mbig-endian -o test
    > $ ./test
    > bash: ./a.out: cannot execute binary file: Exec format error

    ЧЯДНТ?

     
     
  • 5.119, Аноним (119), 08:19, 17/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    За что купил - за то и продаю https://tmpout.sh/2/3.html
     
  • 2.176, _kp (ok), 22:22, 17/07/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    > игнорируется endianness.

    Ну, забыли объявить deprecated, живых массовых систем, ради которых это надо было уже нет.

     

  • 1.62, Аноним (62), 11:42, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –2 +/
    Садо-мазо. Проще уж просто взять и принять PE за стандарт. Под виндой он и так работает. Под DOS есть HX. Под линухом есть Wine. Андройд это жаба под линухом, так что не в счет. Остальные поделки лесом, ибо кто прогибается под агрессивный маркетинг, тот должен страдать.
     
  • 1.87, uis (??), 15:28, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    Но работает только на одной архитектуре и в одном порядке байт. Зачем?
     
     
  • 2.88, uis (??), 15:30, 16/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Так ещё и препроцессор использовать нельзя.
    #ifdef WIN32 всё поломает.
    Ну либо использовать только библиотечные вызовы, что грустно.
     
     
  • 3.202, Аноним (209), 13:09, 18/07/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >Ну либо использовать только библиотечные вызовы, что грустно.

    Ну а что вы хотели? Кроссплатформенность - она такая. Тут либо крестик снять, либо трусы надеть.

     

  • 1.97, YetAnotherOnanym (ok), 17:40, 16/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –1 +/
    Я _очень_ надеюсь, что авторы этих патчей, вместе с самими патчами,  разрабами ГЦЦ будут отправлены лесом.
     
  • 1.145, xsignal (ok), 14:23, 17/07/2023 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Нафиг не надо, более бредовой идеи сложно придумать.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру