Bug#37295: fno-inline causes strcpy(foo, "") to break
On Fri, May 07, 1999 at 04:00:58PM +0000, Lars Wirzenius wrote:
> As far as I can determine, it is strictly conforming standard C. If I compile
> it without -fno-inline, the following happens:
>
> $ gcc -O foo.c
> $ ./a.out
> s=.
>
> Ergo, it works as it should. If I use -fno-inline, however, it fails to work:
>
> $ gcc -O -fno-inline foo.c
> /tmp/cc49Syvn.o: In function `main':
> /tmp/cc49Syvn.o(.text+0x91): undefined reference to `__strcpy_small'
> collect2: ld returned 1 exit status
>
> As far as I understand, I should be able to use -fno-inline. The problem,
> I think, is due to how /usr/include/string.h and/or /usr/include/bits/string2.h
> decide on whether to use a macro of strcpy that expands to a call to
> __strcpy_small in some circumstances.
As a temporary fix, add -D__NO_STRING_INLINES to the command line.
Does gcc define a macro for the presence/absence of inline functions?
Or is this where the 'extern inline' trick came in?
Dan
/--------------------------------\ /--------------------------------\
| Daniel Jacobowitz |__| CMU, CS class of 2002 |
| Debian GNU/Linux Developer __ Part-Time Systems Programmer |
| dan@debian.org | | drow@cs.cmu.edu |
\--------------------------------/ \--------------------------------/
Reply to: