Нужна помощь по поводу "__stack_chk_guard" ⇐ C++
-
Гость
Нужна помощь по поводу "__stack_chk_guard"
В текущем процессе разработки я столкнулся со сложной проблемой. Мне нужно скомпилировать динамическую библиотеку, но я не хочу использовать символы с '@GLIBC' в динамической библиотеке, поскольку ее необходимо использовать в разных средах выполнения glibc. Поэтому в процессе компиляции и компоновки я использовал параметр компиляции -Wl,--wrap, чтобы изменить используемые символы glibc на __wrap_xxx. Однако этот метод работает только для функций, а не для OBJECT. Поскольку мне приходится использовать fstack-protector-strong, скомпилированная динамическая библиотека добавит символ __stack_chk_guard, который является OBJECT и не может быть заменен.
[*]Есть ли способ заменить __stack_chk_guard или удалить '@GLIBC_2.4' из __stack_chk_guard@GLIBC_2.4? [*]Если нет возможности заменить его, доступен ли __stack_chk_guard только в версии GLIBC2.4 в течение видимого времени?
В текущем процессе разработки я столкнулся со сложной проблемой. Мне нужно скомпилировать динамическую библиотеку, но я не хочу использовать символы с '@GLIBC' в динамической библиотеке, поскольку ее необходимо использовать в разных средах выполнения glibc. Поэтому в процессе компиляции и компоновки я использовал параметр компиляции -Wl,--wrap, чтобы изменить используемые символы glibc на __wrap_xxx. Однако этот метод работает только для функций, а не для OBJECT. Поскольку мне приходится использовать fstack-protector-strong, скомпилированная динамическая библиотека добавит символ __stack_chk_guard, который является OBJECT и не может быть заменен.
[*]Есть ли способ заменить __stack_chk_guard или удалить '@GLIBC_2.4' из __stack_chk_guard@GLIBC_2.4? [*]Если нет возможности заменить его, доступен ли __stack_chk_guard только в версии GLIBC2.4 в течение видимого времени?
Мобильная версия