Size: a a a

2020 March 20

AT

Anatoly Tomilov in pro.cxx
в каком случае будет нормальным, что inline static data member получит разные адреса в разных TU?
источник

AT

Anatoly Tomilov in pro.cxx
к примеру в хедере есть структура с inline static членами. Она используется в exe-шнике и в dll-ке
источник

AT

Anatoly Tomilov in pro.cxx
это закономерный исход, что произошёл выстрел в ногу?
источник

АК

Александр Караев in pro.cxx
Anatoly Tomilov
это закономерный исход, что произошёл выстрел в ногу?
конечно, т.к. у тебя длл и ехе вместе не линкуются
источник

AT

Anatoly Tomilov in pro.cxx
вообще фича C++17, но про выстрелы в ногу гуглится 2006 года сообщения
источник

AT

Anatoly Tomilov in pro.cxx
Александр Караев
конечно, т.к. у тебя длл и ехе вместе не линкуются
почти очевидно, но может быть её ввели так, что происходит "weak экспорт" какой-нибудь?
источник

АК

Александр Караев in pro.cxx
Anatoly Tomilov
почти очевидно, но может быть её ввели так, что происходит "weak экспорт" какой-нибудь?
тут экспорт из дллки, а не из TU - совсем другое
источник

AT

Anatoly Tomilov in pro.cxx
ну да. Есть ведь возможность данные экспортировать
источник

DF

Dollar Føølish in pro.cxx
С weak export не будет нарушения odr?
источник

AT

Anatoly Tomilov in pro.cxx
Dollar Føølish
С weak export не будет нарушения odr?
хз) я сам придумал, не знаю есть ли такой
источник

DF

Dollar Føølish in pro.cxx
У эльфов есть weak, когда можно слинковать бинарник даже в отсутствие символа, за длл не хнаю
источник

AT

Anatoly Tomilov in pro.cxx
я под dll понимаю и elf-овские so
источник

AT

Anatoly Tomilov in pro.cxx
под weak мыслится такое, что если есть в импортируемом модуле символ с таким именем, то используется его адрес, иначе какой-то дефолтный
источник

AT

Anatoly Tomilov in pro.cxx
в случае с функциями это реализуемо проставлением просто разных адресов для jmp, а с данными... ну разве что-то с виртуальной памятью мутить
источник

DF

Dollar Føølish in pro.cxx
PLT секция патчится линкером в рантайме
источник

DF

Dollar Føølish in pro.cxx
Там не просто подстановка адресов в jmp
источник

DF

Dollar Føølish in pro.cxx
С данными реализуемо опять же через патчинг линкаж-секции
источник

AT

Anatoly Tomilov in pro.cxx
ну вот. Значит все средства есть
источник

AT

Anatoly Tomilov in pro.cxx
так что почему бы inline static не переживать нормально границы exe/dll
источник

DF

Dollar Føølish in pro.cxx
Да,но мне кажется все равно нарушение одр будет
источник