This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2] libio: use PTR_MANGLE/PTR_DEMANGLE for FILE vtables


On Thu, 1 Oct 2015, Florian Weimer wrote:

> >> At one point, someone needs to do the thankless job and unearth where
> >> the cut-over point to modern libstdc++ was, and which architectures
> >> actually need the vtable compatibility.  (If there was no GCC version
> >> that could compile the relevant libstdc++ versions, then compatibility
> >> is obviously unnecessary.)
> > 
> > Is there a hint about how to detect this? I don't know what I'd be looking for.
> 
> libio.h is apparently an installed header, so it is still part of the
> public API.  This means that this API is technically supported on all
> current architectures, even those which never saw the old libstdc++
> version.  (libstdc++ switched in 2003â)

I don't think it's part of the public API; it should only ever be included 
via <stdio.h>, and only the non-reserved-namespace <stdio.h> interfaces 
are part of the public API.  (Note that various _IO_* names may be used in 
<stdio.h> macros / inlines so may be part of the public ABI that way.)  By 
modern glibc standards, this header, and _G_config.h, should be entirely 
in bits/.

(It looks like, while it was GCC 3.4 that removed all traces of libio use, 
GCC 3.0 through 3.3 didn't actually default to using it in libstdc++-v3.  
I don't know if libstdc++ versions using libio actually did so in a way 
that embedded dependencies on vtable contents in the libstdc++ binaries or 
in executables using it.)

-- 
Joseph S. Myers
joseph@codesourcery.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]