Product SiteDocumentation Site

6.3. The GCC Compiler Collection

gcc has been upgraded from 4.4.2 to 4.4.3. This includes gcc, gcc-c++, gcc-fortran, gcc-gnat, and gcc-objc.

6.3.1. GCC now uses Implicit DSO linking

Key points:
  1. ld will no longer automatically search in the dependencies of linked objects.
  2. If your project used both libraries A and B, it will not compile unless A and B are both explicitly linked.
  3. There are more explanations on the GCC features page on the Fedora wiki: http://fedoraproject.org/w/index.php?title=UnderstandingDSOLinkChange.
Under the new changes, if your package fails its build with a message like:
/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
Then the line that builds the specified .o needs to explicitly link libm.

6.3.2. _builtin_stdarg_start has been completely removed from gcc 4.4.3.

_builtin_stdarg_start will return a undefined reference to _builtin_stdarg_start because of the depreciation of <stdarg.h> in gcc 4.x The replacement is _builtin_va_start.