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