From Fedora Project Wiki
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
== 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: | Key points: | ||
# ld will no longer automatically search in the dependencies of linked objects. | # ld will no longer automatically search in the dependencies of linked objects. | ||
Line 28: | Line 22: | ||
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. | ||
=== _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. | |||
Revision as of 13:21, 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:
- ld will no longer automatically search in the dependencies of linked objects.
- If your project used both libraries A and B, it will not compile unless A and B are both explicitly linked.
- 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.
_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.