Discussion:
Unused sys/ucontext.h files
Joseph S. Myers
2014-01-22 03:26:54 UTC
Permalink
I notice that there are files

ports/sysdeps/arm/sys/ucontext.h
ports/sysdeps/m68k/sys/ucontext.h
ports/sysdeps/mips/sys/ucontext.h

that are overridden by files in ports/sysdeps/unix/sysv/linux/<arch>, and
so unused. Roland, is the ARM file of use for the NaCl port, or should
all three of those files be removed?
--
Joseph S. Myers
***@codesourcery.com
Mike Frysinger
2014-01-22 04:41:29 UTC
Permalink
Post by Joseph S. Myers
I notice that there are files
ports/sysdeps/arm/sys/ucontext.h
ports/sysdeps/m68k/sys/ucontext.h
ports/sysdeps/mips/sys/ucontext.h
that are overridden by files in ports/sysdeps/unix/sysv/linux/<arch>, and
so unused. Roland, is the ARM file of use for the NaCl port, or should
all three of those files be removed?
are we saying that if it's not used by Linux we're just deleting it now ?
-mike
Joseph S. Myers
2014-01-22 17:14:18 UTC
Permalink
Post by Mike Frysinger
Post by Joseph S. Myers
I notice that there are files
ports/sysdeps/arm/sys/ucontext.h
ports/sysdeps/m68k/sys/ucontext.h
ports/sysdeps/mips/sys/ucontext.h
that are overridden by files in ports/sysdeps/unix/sysv/linux/<arch>, and
so unused. Roland, is the ARM file of use for the NaCl port, or should
all three of those files be removed?
are we saying that if it's not used by Linux we're just deleting it now ?
No, that if it's not used by any current configuration (which currently
means Hurd or Linux) it's deleted unless it's of use in bringing up a new
port ("generic" files, whether pure stubs or actual generic
implementations). And I strongly suspect these files are just files for
whatever Unix was first supported on a given architecture - I don't really
see advantages of such files over sysdeps/generic/sys/ucontext.h in the
context of bringing up ports (which I expect would inevitably need
OS-specific versions of this file in the end).

(The sysdeps/i386/sys/ucontext.h file is, I suppose, used by Hurd, but
other <arch>/sys/ucontext.h files appear either unused, or in the am33
case maybe really a Linux file in the wrong place.)
--
Joseph S. Myers
***@codesourcery.com
Thomas Schwinge
2014-01-22 20:40:29 UTC
Permalink
Hi!
Post by Joseph S. Myers
(The sysdeps/i386/sys/ucontext.h file is, I suppose, used by Hurd
Correct.


GrÌße,
Thomas
Roland McGrath
2014-01-28 22:43:28 UTC
Permalink
Yes, the sysdeps/arm file will (probably) be used by the arm-nacl
configuration.

In general, I am against removing files of this category just because
they are not used by any current configuration. That is, files that are
machine-specific and for a machine that has some configurations in
current use, but are OS-independent. I put them in the same category as
the stub files, most of which are not used by any configuration that can
be built. Stubs of function implementations provide the outline of the
API and a starting point for filling in actual implementations.
Similarly, pure machine-specific files provide at least the basics of
the machine-specific API that should make sense across all OS
configurations of libc for that machine.

As with the stub implementations, there is of course always the danger
of bit rot. As much as possible, all of libc's APIs are meant to be
independent of the underlying operating system. That being the case,
people making API changes should endeavor to notice all the different
implementations and update them consistently. People will forget, some
changes will be untested, etc. But we should still be striving to
consider OS independence issues in all of our API choices. Any time
there is an API whose only implementations that exist in our sources are
for a particular operating system, there is a much increased risk that
future changes will introduce or further enshrine assumptions about the
underlying operating system that make it more difficult (or impossible)
to implement that API elsewhere later on.


Thanks,
Roland

Loading...