This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/61395] New: Linker cannot find symbols in object files compiled with recent GCC
- From: "mimamer at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 02 Jun 2014 21:15:54 +0000
- Subject: [Bug c/61395] New: Linker cannot find symbols in object files compiled with recent GCC
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61395
Bug ID: 61395
Summary: Linker cannot find symbols in object files compiled
with recent GCC
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: mimamer at gmail dot com
Apologies in advance for any mistakes in posting this bug report. If what I am
describing is not a bug in GCC please direct me to a place where I can ask for
help on this issue -- thanks!
I recently upgraded from GCC 4.3.4 to 4.9.0, which I set up as a cross compiler
from i686-pc-cygwin to i686-pc-elf together with static and shared libgcc
support. I created a shared libgcc.so version from libgcc.a using 'ld' and
specifying --whole-archive (as well as the other usual flags). Now, when I try
to link even a very simple test program that emits a symbol defined in a shared
library such as libgcc.so the link step fails with GCC/ld complaining that the
symbol (e.g., __divdi3) cannot be found. I can verify that the symbol is
available in libgcc.so's .symtab (as FUNC LOCAL DEFAULT 12) and specified in
main.o's .symtab (as NOTYPE GLOBAL DEFAULT UND), yet when I try to link main.o
with -lgcc (or libgcc.so) I get "Undefined reference to `__divdi3'". Upgrading
the linker did not have any effect. I can also verify that the linker finds all
input files in the right places, so I am completely at lost what is going wrong
here, and though I suspect a compiler bug (since this did work for me with GCC
4.3.4) I may easily be wrong. Apologies again!