Product SiteDocumentation Site

6.3. Набор компиляторов GCC

gcc обновлен с 4.4.2 до 4.4.3. Это касается gcc, gcc-c++, gcc-fortran, gcc-gnat и gcc-objc.

6.3.1. GCC теперь использует безусловную привязку динамических объектов

Ключевые моменты:
  1. ld больше не будет автоматически искать среди зависимостей скомпонованных объектов.
  2. Если в проекте используются библиотеки A и B, он не будет компилироваться, пока A и B не будут явно связаны.
  3. Еще больше объяснений имеется на странице, посвященной особенностям GCC, в вики Fedora: http://fedoraproject.org/w/index.php?title=UnderstandingDSOLinkChange.
В связи с недавними изменениями, если сборка пакета даст сбой с сообщением вида:
/usr/bin/ld: gpx-parser.o: undefined reference to symbol 'acos@@GLIBC_2.0'
/usr/bin/ld: note: 'acos@@GLIBC_2.0' is defined in DSO /lib/libm.so.6 so try adding it to the linker command line
Тогда в строке, в которой собирается заданный .o, необходима явная привязка к libm.

6.3.2. _builtin_stdarg_start полностью удален из gcc 4.4.3.

_builtin_stdarg_start вернет неопределенную ссылку на _builtin_stdarg_start, так как <stdarg.h> считается устаревшей в gcc 4.x Вместо этого следует использовать _builtin_va_start.