Subject: Re: Global variable name which equals to func name causes coredump(gcc).
To: None <tech-userlevel@netbsd.org>
From: Valeriy E. Ushakov <uwe@bigmac.stderr.spb.ru>
List: tech-userlevel
Date: 09/27/2007 17:57:45
Pelle Johansson <morth@morth.org> wrote:

> 27 sep 2007 kl. 13.49 skrev Greg Troxel:
> 
>>   Obviously fread called the wrong func address of read.
>>
>> To answer if this is a bug, I think you'll need to read the C standard
>> very carefully.  read(2) is not part of C; man 2 read says it's in  
>> POSIX.1.
>> But fread is part of C89.
> 
> Which indicates that it is indeed a bug, and probably one not that  
> difficult to fix, by having fread call some alias of read instead. Of  
> course, it gets more complicated when the same has to be done for all  
> possible conflicts.

Hmm, strange.  The example works on my sh3 system where __sread calls
_read (weak alias to _sys_read - the actual syscall), but fails as you
described on my macppc where __sread calls read directly.


SY, Uwe
-- 
uwe@stderr.spb.ru                       |       Zu Grunde kommen
http://snark.ptc.spbu.ru/~uwe/          |       Ist zu Grunde gehen