From Fedora Project Wiki
m (added some information on DSO linking and corrected some typos) |
No edit summary |
||
Line 5: | Line 5: | ||
'''Note: gcc has upgraded from 4.4.2 to 4.4.3''' | '''Note: gcc has upgraded from 4.4.2 to 4.4.3''' | ||
This includes gcc, gcc-c++, gcc-fortran, gcc-gnat, and gcc-objc. | This includes gcc, gcc-c++, gcc-fortran, gcc-gnat, and gcc-objc. | ||
GCC now | GCC now uses DSO linking (Dynamic Shared Object linking) | ||
Revision as of 21:34, 12 March 2010
GCC upgraded in alpha
Note: 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 DSO linking (Dynamic Shared Object linking)
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.