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: