[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Included Interfaces without documentation update



Richard Kettlewell wrote:
> 
> Dan Kegel <dank@kegel.com> writes:
> 
> > As far as I can tell, the prefixed names are internal to glibc.
> > User programs don't import them.
> > Here's a test case.   I compiled the following code with gcc 2.96 (the
> > "Red Hat 7 suprise" release):
> >   #include <stdio.h>
> >   main() { fputs("howdy", stdout); }
> > Running 'nm a.out | grep puts' shows
> >            U fputs@@GLIBC_2.0
> > so indeed, user programs don't see to reference the internal symbols.
> 
>   $ grep _IO_putc /usr/include/stdio.h
>   #define putc(_ch, _fp) _IO_putc (_ch, _fp)
>   $ nm --dynamic /bin/ls|grep putc
>            U _IO_putc
>   $
> 
> (Debian 2.2 and Red hat 7.0)

Guess I have egg all over my face.  The _IO_ thing appears
to be very public.  What would be the best forum for asking
why glibc uses this convention?  Seems kind of strange that
C programs compiled against glibc use _IO_putc instead of
putc; doesn't that violate existing ABI's 
(e.g. SysV http://www.sco.com/developer/devspecs/gabi41.pdf )?
- Dan



Reply to: