From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14829 invoked by alias); 18 Jun 2018 19:26:39 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 14805 invoked by uid 89); 18 Jun 2018 19:26:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 spammy=forth X-HELO: mailbackend.panix.com X-Gm-Message-State: APt69E34HefNRbfG8CpjTkgikhL/SLZVIa1VuCgwCdFI3MtAYlrL236S xH1O6JF3hUh2vUb+IOJT6hXC17CnG8ViO5qStMI= X-Google-Smtp-Source: ADUXVKJyUY1CpBgJ5JLBjAr7lwG3Avj9KTCKNIt6aBLjBY8DjB49kUQcBYDfvo4Ul3r612zlxopweCEHhTJHu1e/ckM= X-Received: by 2002:aca:c314:: with SMTP id t20-v6mr7029654oif.341.1529349995067; Mon, 18 Jun 2018 12:26:35 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <87tvpzud44.fsf@mid.deneb.enyo.de> References: <87h8m41oa0.fsf@mid.deneb.enyo.de> <3a215566-1748-a095-8bfa-c5c1d5017156@redhat.com> <874li0uig3.fsf@mid.deneb.enyo.de> <87tvpzud44.fsf@mid.deneb.enyo.de> From: Zack Weinberg Date: Mon, 18 Jun 2018 19:26:00 -0000 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Future of libio vtable compatibility To: Florian Weimer Cc: "Carlos O'Donell" , GNU C Library Content-Type: text/plain; charset="UTF-8" X-SW-Source: 2018-06/txt/msg00518.txt.bz2 On Mon, Jun 18, 2018 at 3:08 PM, Florian Weimer wrote: > * Zack Weinberg: >> >> This is not quite the same thing as vtable compatibility, but based on >> having had to read a bunch of the relevant code for the bits/types/ >> work, I suspect that programs that require the "old" FILE struct have >> been broken for some time. > > Do you mean source-level brokenness, or something that affects > compiled binaries? Something that affects compiled binaries. Basically, there were so many casts back and forth among the _IO_FILE_* variations that I could not persuade myself that the code was strict-aliasing safe nor that it actually guaranteed "old" FILEs would never get passed to functions that expected "new" FILEs. And because we have no tests for any of those code paths, we only know that that stuff still compiles, not that it still works. zw