Граждане, кто-нибудь умеет обращаться с такой зверушкой, как OpenBSD?
А то я собрался впилить в их форк openssl, который libressl, выпиленный ГОСТ. То, что выписанное из CVS их поделие не собирается, это нормально, допустим, но боюсь, что я вообще не понимаю, как собрать их вариант libcrypto. Или надо выписать нафиг исходники операционки вообще все, а только libressl не хватит?
А то я собрался впилить в их форк openssl, который libressl, выпиленный ГОСТ. То, что выписанное из CVS их поделие не собирается, это нормально, допустим, но боюсь, что я вообще не понимаю, как собрать их вариант libcrypto. Или надо выписать нафиг исходники операционки вообще все, а только libressl не хватит?
no subject
Date: 2014-06-03 05:42 pm (UTC)no subject
Date: 2014-06-03 05:46 pm (UTC)Вот они понатыкали в свой код свою функцию reallocarray. По man-у (http://www.openbsd.org/cgi-bin/man.cgi?query=reallocarray&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html) оно определено в stdlib.h. Но нифига его там не присутствует. Что нужно поставить, чтобы было мне счастье?
no subject
Date: 2014-06-03 05:51 pm (UTC)no subject
Date: 2014-06-04 03:53 pm (UTC)no subject
Date: 2014-06-04 06:30 pm (UTC)no subject
Date: 2014-06-04 06:30 pm (UTC)http://www.openbsd.org/cgi-bin/cvsweb/src/include/stdlib.h?rev=1.58
делаем поиск по reallocarray, и сразу видим, что она обрамлена в #ifdef __BSD_VISIBLE. добавляем флаг -D__BSD_VISIBLE компилеру и получаем PROFIT :)
собственно, большая часть таких вещей, которые не собираются сходу, в основном на эти флаги #ifdef и завязана, и самих флагов довольно много. алгоритм решения типовой.
no subject
Date: 2014-06-04 06:46 pm (UTC)no subject
Date: 2014-06-04 06:47 pm (UTC)Во-первых, скорее всего он определяется через третьи руки в виде какого-нибудь более глобального флага _BSD_SOURCE. Это наверное в sys/defs.h или где-то ещё. Там этих флагов воз и маленькая тележка и между ними очень сложные взаимоотношения.
Во-вторых, если говорить за сборку системы целиком, то у них там сборка toolchain под это дело с очень нетривиальным лицензионно-ректальным сексом всю жизнь была. Из-за гнутой лицензии GCC они не могут положить сорцы компилера в дистрибутив, а берут откуда-то из совершенно третьего места, а собирается он так, что там вообще чёрт ногу сломит. И в этом toolchain под ядро ещё при сборке зашивается хренова тьма флагов, стоящих по умолчанию.
Вроде все давно на clang перешли, но фиг его не знает - я давно эту тему не копал. Базово там было реально два toolchain'а - один "для всех" типа пользовательский, которым собирались те же порты и который лежал в /usr/bin, и второй отдельный для сборки ядра и собственно системы.
no subject
Date: 2014-06-04 07:38 pm (UTC)no subject
Date: 2014-06-04 07:51 pm (UTC)Единственное, у меня с графиком последнее время совсем беда, поэтому могу иногда отвечать с очень странными лагами.
no subject
Date: 2014-06-04 07:58 pm (UTC)Спасибо!
no subject
Date: 2014-06-03 05:58 pm (UTC)no subject
Date: 2014-06-04 06:32 pm (UTC)no subject
Date: 2014-06-04 07:08 pm (UTC)А это идея - поставить Net и посмотреть, как amd работает там. Потому что во фряхе он ведет себя правильно.