LINUX.ORG.RU

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

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

Но почему такое поведение не принято по умолчанию?

Собственно, ведь и GCC по умолчанию не выполняет никаких оптимизаций (как -O0).

Оптимизации иногда портят программы, бывает, из-за багов в компиляторе, бывает, из-за проблем в самой программе. А уж оптимизации на уровне линкера в binutils появились, ЕМНИП, недавно. Я даже не знал, что ld их поддерживает, думал, они только в gold (который и сам из бета-теста вроде как ещё не вышел).

Тем более, что линкером можно линковать даже код на ассемблере, который может быть завязан на вполне опеделённую структуру программы и не ожидать, что линкер его перелопатит.

Поэтому в программе, которая а)Имеет чётко известную задачу со времён UNIX б)Предназначена для разработчиков, которые должны знать, как их инструмент работает не стоит по умолчанию применять методы, которые а)Приводят к результатам, которые не так просто объяснить б)Могут приводить к ошибкам.

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

Но почему такое поведение не принято по умолчанию?

Собственно, ведь и GCC по умолчанию не выполняет никаких оптимизаций (как -O0).

Оптимизации иногда портят программы, бывает, из-за багов в компиляторе, бывает, из-за проблем в самой программе. А уж оптимизации на уровне линкера в binutils появились, ЕМНИП, недавно. Я даже не знал, что ld их поддерживает, думал, они только в gold (который и сам из бета-теста вроде как ещё не вышел).

Тем более, что линкером можно линковать даже код на ассемблере, который может быть завязан на вполне опеделённую структуру программы и не ожидать, что линкер его перелопатит.

Поэтому в программе, которая а)Имеет чётко известную задачу со времён UNIX б)Предназначена для разработчиков, которые должны знать, как их инструмент работает не стоит по умолчанию применять методы, которые а)Приводят к результатам, которые не так просто объяснить б)Могут приводить к ошибкуам.