Re: Cleaning up FILE in stdio..



On Tuesday 26 February 2008 11:58:55 pm Daniel Eischen wrote:
On Tue, 26 Feb 2008, Garrett Wollman wrote:

In article <200802261524.30384.jhb@xxxxxxxxxxx> you write:

This is assuming that the contents and layout of FILE are not a
public ABI (i.e. we malloc the things internally and consumers should
just treat the pointer value as a cookie and not grub around in the
internals).

Most interpreted languages grub around in the internals, as
(historically) do a number of <stdio.h> macros. Historically Emacs
did so as well (I suppose you can call it an interpreted language).

Yech. I also forgot about the macros in <stdio.h>, like __sfeof()
and friends.

Comments?

I think you have the right idea but this will break the ABI in a way
that can't be fudged with symbol versioning.

Well, you can if you add compat symbols for all functions with FILE
as an argument.

You have to worry about other libraries (say ncurses) that use fopen@xxx and
then return that FILE * to a user app that calls fclose (but the user app
will call fclose@xxx and it blows up). Hence in my other e-mail where I said
all the stdio routines would have to detect the two different versions and
handle them. Gross.

I'd like us to say that the innards of FILE are not part of our
ABI, but we would still have to do something to keep at least
enough of the ABI for any macros.

The problem is that _file is used by fileno() via __sfile() and that's the one
I want to fix. The sFILEX stuff is ok as none of it is exposed, but not
fixing __file.

--
John Baldwin
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: Xen & VMI?
    ... it's the Xen ABI or the VMWare ABI or a mesh of the two - everyone can ... the 'hardware is changing fast so we cannot do a sane API' argument ... you /CAN/ do a sane API that lives for quite some time. ... interfaces are sane and we quickly adopt our internals. ...
    (Linux-Kernel)
  • Re: Cleaning up FILE in stdio..
    ... internals). ... Historically Emacs ... ABI, but we would still have to do something to keep at least ... enough of the ABI for any macros. ...
    (freebsd-arch)
  • Re: Xen & VMI?
    ... it's the Xen ABI or the VMWare ABI or a mesh of the two - everyone can ... map their own internals to that /one/ ABI. ... hypervisor side is changing. ...
    (Linux-Kernel)