From Fedora Project Wiki

No edit summary
No edit summary
Line 1: Line 1:


== gcc ==
== gcc ==
Line 22: Line 21:
Then the line that builds the specified .o needs to explicitly link libm.
Then the line that builds the specified .o needs to explicitly link libm.


 
For additional details refer to the feature page on the wiki [[Features/ChangeInImplicitDSOLinking]]


=== _builtin_stdarg_start has been completely removed from GCC 4.4.3 ===
=== _builtin_stdarg_start has been completely removed from GCC 4.4.3 ===

Revision as of 13:22, 18 March 2010

gcc

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


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 Features page. here

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.

For additional details refer to the feature page on the wiki Features/ChangeInImplicitDSOLinking

_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.0 The replacement is _builtin_va_start.