Какая, однако, хрупкая кака С++

Aug 16, 2024 22:46


У Витуса тут всплыла загадочная проблема со сборкой. https://vitus-wagner.dreamwidth.org/2445237.html . Проблема в том, что динамический линкер не находит vtable, если проект скомилирован gcc-13.2.0 . Из любопытства поковырял. Оказывается, в gcc-13.2.0есть баг Read more... )

Leave a comment

Comments 3

vitus_wagner August 17 2024, 06:42:28 UTC

Спасибо за ссылку, утащил ее к себе в нору джиру.

Но вообще политика собирать продакшн код с отладочной информацией есть не только в Ubuntu. Она есть во всех более-менее крупных дистрибутивах. Потом пакетировочные инструменты (rpmbuild, dpg-buildpackage) ее аккуратно отрезают с помощью objcopy и заворачивают в отдельный пакет с суффиксом debuginfo (в rpm-based) или dbgsym (debian based). Ubuntu еще таким пакетам расширение делает ddeb, а не deb. И эти пакеты кладутся в отдельный репозиторий с тем, чтобы тот кто про эту фичу знает, мог их при необходимости поставить и поотлаживать установленную из пакета программу символическим отладчиком.

С месяц назад пришлось этим заниматься - отлаживать libcrypto из openssl, где сломали работу с аппаратными токенами. (причем сломали в апстриме, а не в debian. Кончилось тем что взял и собрал в пакет более новую апстримовскую версию, где починили).

Надо вообще будет как-нибудь написать краткую справку где такие пакеты берут для каких дистрибутивов. Нашим инженерам точно пригодится. Но и просто ( ... )

Reply

permea_kra August 19 2024, 09:10:33 UTC

>И эти пакеты кладутся в отдельный репозиторий с тем, чтобы тот кто про эту фичу знает, мог их при необходимости поставить и поотлаживать установленную из пакета программу символическим отладчиком.

Логика ясна. Но вот бывают всякие чудеса.

Вы, если это не покрывается соглашением о неразглашении и не слишком трудно, расскажите потом, до чего докопались. Любопытно же =).

Reply

vitus_wagner August 19 2024, 09:31:42 UTC

Ну вроде ни с Убунту, ни с авторами plv8 ни с командой gcc у нас никаких соглашений о неразглашении нет.

Пока докопались, что если в ubuntu 24.04 собирать неумолчательным 14-м gcc, то все в порядке, видимо действительно тот самый баг, и он присутствовал не только в 13.2, но и в 12. А в 14- исправили.

Reply


Leave a comment

Up