Messages in this thread | | | Subject | Re: [PATCH 22/23] sysctl arm: Remove binary sysctl support | From | (Eric W. Biederman) | Date | Sun, 08 Nov 2009 15:31:23 -0800 |
| |
Russell King <rmk+lkml@arm.linux.org.uk> writes:
> On Sun, Nov 08, 2009 at 02:45:36PM -0800, Eric W. Biederman wrote: >> Russell King <rmk+lkml@arm.linux.org.uk> writes: >> >> > >> > NAK. Glibc uses these numeric sysctls to support ioperm emulation on ARM. >> > Therefore, removal of these numeric sysctls breaks that user interface: >> > >> > static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE }; >> > static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; >> > if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) >> > && ! sysctl (ioshift_name, 3, &io.shift, &len, NULL, 0)) >> > { >> > io.initdone = 1; >> > return 0; >> > } >> >> Those still exist in sysctl_binary.c are provided by reading >> /proc/sys/bus/isa/membase, /proc/sys/bus/isa/portbase, and >> /proc/sys/bus/isa/portshift. >> >> The practical difference is that /proc support now must be compiled >> in to support sys_sysctl. > > Have you checked whether glibc supports reading these from procfs rather > than sysfs using the code as it stands above? > > If not, continued NAK due to user visible ABI change which will cause > breakage.
There is not a user visible ABI change. Just a massive implementation change. The only user visible change is that CONFIG_SYS_SYSCALL now depends on CONFIG_PROC_SYSCTL.
The implementation of sys_sysctl in binary_sysctl.c will now read /proc/sys/bus/isa/portbase and using vfs_read convert the text string to a binary integer and return it to glibc in the form sys_sysctl has always used.
And yes, as of glibc-ports-10.1 the arm implementation of ioperm still depends on the binary sys_sysctl implementation to get this information.
Eric
| |