Size: a a a

Конференция C++ Russia

2021 July 18

FS

Flower Surgeon in Конференция C++ Russia
Ну, кстати, да, мб Антон имел в виду "loader", а не "linker".
источник

AB

Anton Bikineev in Конференция C++ Russia
Нет, он влияет только на кодогенерацию/оптимизацию
источник

FS

Flower Surgeon in Конференция C++ Russia
По контексту похоже.
источник

AB

Anton Bikineev in Конференция C++ Russia
разве? кажется странно
источник

AB

Anton Bikineev in Конференция C++ Russia
ну, в английской литературе/manах это, как правило, называется динамический линкер
источник

FS

Flower Surgeon in Конференция C++ Russia
Ээээ... и правда ведь:

ld.so, ld-linux.so - dynamic linker/loader

Но я бы в докладах/вопросах предпочёл юзать термин "loader" дабы избежать путаницы.
источник

АР

Андрей Руссков... in Конференция C++ Russia
в годболте проверяется легко
источник

AB

Anton Bikineev in Конференция C++ Russia
Не могли бы, пожалуйста, скинуть ссылку?
источник

AB

Anton Bikineev in Конференция C++ Russia
кажется, на манглирование никак не влияет: https://godbolt.org/z/K8Gnx5cf8
источник

АР

Андрей Руссков... in Конференция C++ Russia
источник

АР

Андрей Руссков... in Конференция C++ Russia
если так то заметно
источник

*

*cyberzx in Конференция C++ Russia
Ну это FMV. https://gcc.gnu.org/wiki/FunctionMultiVersioning
Рантайм линкёр ничего не делает, просто gcc генерирует код диспетчеризации функций, который выполняется на старте
источник

*

*cyberzx in Конференция C++ Russia
Думаю, можно и сами сделать такую диспетчеризацию на IFUNC даже без ассемблерной магии
источник

АР

Андрей Руссков... in Конференция C++ Russia
да, но линкер по идее мог бы линковать не на функцию диспетчеризации, а сразу на подходящую
источник

АР

Андрей Руссков... in Конференция C++ Russia
в этом и состоял мой изначальный вопрос - он это делает или нет
источник

AB

Anton Bikineev in Конференция C++ Russia
а, интересно, не знал об этом звере, спасибо
источник

AB

Anton Bikineev in Конференция C++ Russia
по идее, это же может делать даже не сам дин. линкер, а какой то глобальный конструктор
источник

АР

Андрей Руссков... in Конференция C++ Russia
attribute constructor тоже в gcc есть )
источник

АР

Андрей Руссков... in Конференция C++ Russia
запускается сразу после загрузки библиотеки
источник

АР

Андрей Руссков... in Конференция C++ Russia
а так можно было бы, да. Вообще attribute target еще подставляет автоматически нужную версию в другие методы помеченные attribute target
источник