C, C++, грабли
Jul. 11th, 2019 07:28 pmНаступил на грабли. gcc и g++ дают разный размер довольно развесистой структуры, используемой в сишной и плюсовой библиотеках.
Можно ли малой кровью их привести к единому знаменателю? С-шная библиотека не наша, плюсовая наша.
Вроде бы везде стоят флаги
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
Опцию -fpack-struct пробовал, не преуспел.
Update: разные опции сборки базовой и производной библиотек.
Можно ли малой кровью их привести к единому знаменателю? С-шная библиотека не наша, плюсовая наша.
Вроде бы везде стоят флаги
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
Опцию -fpack-struct пробовал, не преуспел.
Update: разные опции сборки базовой и производной библиотек.
no subject
Date: 2019-07-11 04:47 pm (UTC)Впрочем я бы сначала попробовал вывести куда-нибудь в отладочный вывод offsetof всех полей и посмотреть где именно начинается расхождение.
no subject
Date: 2019-07-11 05:42 pm (UTC)То есть скорее всего я плюсовую библиотеку сконвертирую в C-шную, и надеюсь, что этого мне хватит.
no subject
Date: 2019-07-11 06:00 pm (UTC)Кажется, такая порнография еще не запрещена и результат нужный выдаст...
no subject
Date: 2019-07-11 06:14 pm (UTC)no subject
Date: 2019-07-12 05:01 am (UTC)no subject
Date: 2019-07-12 11:27 am (UTC)Возможно, в более новой версии это уже починено, но пока у меня нет достаточно не-знаю-чего для вычленения криптокомовских патчей и переноса их на новую версию.