This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
-finline creates undefined reference errors on arm-linux
- To: egcs-bugs at egcs dot cygnus dot com
- Subject: -finline creates undefined reference errors on arm-linux
- From: Chris Butler <chrisb at sandy dot force9 dot co dot uk>
- Date: Sat, 6 Mar 1999 18:00:58 +0000 (GMT)
- Cc: linux-arm at vger dot rutgers dot edu
- Reply-To: chrisb at sandy dot force9 dot co dot uk
Hi,
When compiling an ARMLinux kernel with egcs, many files threw up
errors along the lines of "undefined reference to `.Lxxx'". AIUI,
these are internal labels created by the compiler.
After a bit of investigation (I chose `drivers/char/vt.c' for my
tests) I found that the `-finline' flag provoked these errors. It
would appear that egcs creates a reference to a label at the same time
that it removes the label from another part of the code.
The following files may be of use:
http://www.sandy.force9.co.uk/vt.tar.gz
http://www.sandy.force9.co.uk/vt-no-inline.tar.gz
Both contain `vt.i', `vt.s' and `vt-compile.out'. The first file is
simply with -O2, the second with -O2 -fno-inline.
In the first set of files, the labels .L829 and .L846 are
undefined. They are however, present in the second set.
My system is an `i686-pc-linux-gnu', using a cross compiler configured
for an `arm-linux' target. Using egcs-2.93.09 and binutils 2.9.1.0.21
Please e-mail me if you require further details. I rarely have time to
read the lists at the moment.
--
Chris Butler