LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

только непонятно, когда в аргументах gcc есть -shared, у тебя ...

Тут небольшая сложность в том, что CFLAGS и LDFLAGS принимает одна программа, поэтому приходится совмещать их, но это никакого лишнего эффекта не должно давать, в момент создания объектных файлов -pie работать не будет, поэтому библиотеки будут создаваться.

но чатгпт мне сказал, что бинарники нужно с -fPIE -pie, а библиотеки — с -fPIC.

Тут так же смешанно все, -fPIE работает при создании объектных файлов, а -pie на финальной стадии. -fPIE действительно нет, его заменяет -fPIC, он подходит для создания объектных файлов как для будущих динамических библиотек, так и для объектный файлов будущих исполняемых файлов. А в момент линковки он просто игнорируется.

у тебя -Wl,-z,relro,-z,now только для бинарников. для библиотек оно не нужно?

Очень сложно везде написано, а подробно я не читал, но вроде нет.

Исправление MOPKOBKA, :

только непонятно, когда в аргументах gcc есть -shared, у тебя ...

Тут небольшая сложность в том, что CFLAGS и LDFLAGS принимает одна программа, поэтому приходится совмещать их, но это никакого лишнего эффекта не должно давать, в момент создания объектных файлов -pie работать не будет, поэтому библиотеки будут создаваться.

но чатгпт мне сказал, что бинарники нужно с -fPIE -pie, а библиотеки — с -fPIC.

Тут так же смешанно все, -fPIE работает при создании объектных файлов, а -pie на финальной стадии. -fPIE действительно нет, его заменяет -fPIC, он подходит для создания объектных файлов как для будущих динамических библиотек, так и для объектный файлов будущих исполняемых файлов.

у тебя -Wl,-z,relro,-z,now только для бинарников. для библиотек оно не нужно?

Очень сложно везде написано, а подробно я не читал, но вроде нет.

Исходная версия MOPKOBKA, :

только непонятно, когда в аргументах gcc есть -shared, у тебя ...

Тут небольшая сложность в том, что CFLAGS и LDFLAGS принимает одна программа, поэтому приходится совмещать их, но это никакого лишнего эффекта не должно давать, в момент создания объектных файлов -pie работать не будет, поэтому библиотеки будут создаваться.

но чатгпт мне сказал, что бинарники нужно с -fPIE -pie, а библиотеки — с -fPIC.

Тут так же смешанно все, -fPIE работает при создании объектных файлов, а -pie на финальной стадии. -fPIE действительно нет, его заменяет -fPIC, он подходит для создания объектных файлов как для будущих динамических библиотек, так и для объектный файлов будущих исполняемых файлов.