This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH] Don't install libio.h or _G_config.h
On Mon, Feb 5, 2018 at 9:18 AM, Joseph Myers <firstname.lastname@example.org> wrote:
> On Mon, 5 Feb 2018, Zack Weinberg wrote:
>> On Mon, Feb 5, 2018 at 9:10 AM, Joseph Myers <email@example.com> wrote:
>> > On Mon, 5 Feb 2018, Zack Weinberg wrote:
>> >> Also, when not optimizing (specifically, if bits/stdio.h is not
>> >> included) FILE will be an incomplete type.
>> > Before C11, FILE is required to be a complete type (because it's required
>> > to be an object type, which did not include incomplete types before C11).
>> Good catch, I will fix that locally. Do you think you will have time
>> for a complete review in the near future?
> Is this a patch that you would expect not to result in any changes to
> installed stripped shared libraries
No, however there are only two fundamental changes. Line numbers
change in vfprintf.c assertions, which is easy enough to ignore when
reading disassembly diffs. More troublesome, ancillary programs and
libraries that call getc or putc will now reference getc@GLIBC_2.0 /
putc@GLIBC_2.0 instead of _IO_getc@GLIBC_2.0 / _IO_putc@GLIBC_2.0.
This causes a bunch of sections, including .text, to shift their
starting address slightly (I think because .dynsym is shorter), which
makes `objdump -d` output not easily diffable, but I *think* code
generation is not affected. See
https://sourceware.org/ml/libc-alpha/2018-01/msg00286.html for more
detail and a diffoscope report (for the previous iteration of the
> (or if not, is there a simple way to
> separate small changes that affect installed stripped shared libraries in
> insubstantial ways from large changes that don't affect them at all)?
Do you know of a tool that can factor out a difference in section
starting address when comparing disassembly dumps?
I suppose, for comparison purposes, I could temporarily restore the
getc/putc macros (with prototypes for _IO_getc and _IO_putc in
stdio.h) and leave blank lines in vfprintf.c; that ought to make
everything come out exactly the same.