From 82d04fa4399c91c4c0ef131b77dfd8a1e4409b57 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Sat, 13 Jun 1998 21:26:18 +0000 Subject: Added check for the table () system call in the linux kernel. 1998-06-13 Martin Baulig * gnome-libgtop-sysdeps.m4: Added check for the table () system call in the linux kernel. svn path=/trunk/; revision=261 --- macros/ChangeLog | 5 +++++ macros/gnome-libgtop-sysdeps.m4 | 48 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) (limited to 'macros') diff --git a/macros/ChangeLog b/macros/ChangeLog index 73a2c9a85f..f066a8a8d8 100644 --- a/macros/ChangeLog +++ b/macros/ChangeLog @@ -1,3 +1,8 @@ +1998-06-13 Martin Baulig + + * gnome-libgtop-sysdeps.m4: Added check for the table () + system call in the linux kernel. + 1998-06-11 Raja R Harinath * gnome-x-checks.m4 (USE_DEVGTK): Use AC_EGREP_CPP rather than diff --git a/macros/gnome-libgtop-sysdeps.m4 b/macros/gnome-libgtop-sysdeps.m4 index 17c66f001e..0993cbaa27 100644 --- a/macros/gnome-libgtop-sysdeps.m4 +++ b/macros/gnome-libgtop-sysdeps.m4 @@ -17,12 +17,56 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[ AC_SUBST(libgtop_use_machine_h) AC_SUBST(libgtop_need_server) + AC_ARG_WITH(linux-table, + [ --with-linux-table Use the table () function from Martin Baulig],[ + linux_table="$withval"],[linux_table=auto]) + + AC_MSG_CHECKING(for table function in Linux Kernel) + + if test $linux_table = yes ; then + AC_CHECK_HEADER(linux/table.h, linux_table=yes, linux_table=no) + elif test $linux_table = auto ; then + AC_TRY_RUN([ +#include +#include + +#include +#include +#include + +#include + +static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param); + +int +main (void) +{ + union table tbl; + int ret; + + ret = table (TABLE_VERSION, NULL, NULL); + + if (ret == -1) + exit (-errno); + + exit (ret < 1 ? ret : 0); +} +], linux_table=yes, linux_table=no, linux_table=no) + fi + + AC_MSG_RESULT($linux_table) + AC_MSG_CHECKING(for libgtop sysdeps directory) case "$host_os" in linux*) - libgtop_sysdeps_dir=linux - libgtop_use_machine_h=yes + if test x$linux_table = xyes ; then + libgtop_sysdeps_dir=kernel + libgtop_use_machine_h=no + else + libgtop_sysdeps_dir=linux + libgtop_use_machine_h=yes + fi libgtop_need_server=no ;; sunos4*) -- cgit v1.2.3