aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-02-17 07:57:32 +0000
committerRoland McGrath <roland@gnu.org>2002-02-17 07:57:32 +0000
commit746f400783a0ce9297cc10c37d074699a2b7d371 (patch)
treef188a429dc5ae8d717abc510c347e4cc0246480b
parent30537cab78969a27a9f045a812e712cd0ebd9c24 (diff)
downloadglibc-746f400783a0ce9297cc10c37d074699a2b7d371.zip
glibc-746f400783a0ce9297cc10c37d074699a2b7d371.tar.gz
glibc-746f400783a0ce9297cc10c37d074699a2b7d371.tar.bz2
* sysdeps/mach/hurd/times.c (__times) [NO_CREATION_TIME]: Don't try
to use BI.creation_time. * mach/Machrules (MIG): Add -x c to CPP value passed down.
-rw-r--r--ChangeLog5
-rwxr-xr-xconfigure9
-rw-r--r--mach/Machrules5
-rw-r--r--sysdeps/mach/configure162
-rw-r--r--sysdeps/mach/hurd/times.c6
5 files changed, 172 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 5feb9f2..ee9fc02 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2002-02-16 Roland McGrath <roland@frob.com>
+ * sysdeps/mach/hurd/times.c (__times) [NO_CREATION_TIME]: Don't try
+ to use BI.creation_time.
+
+ * mach/Machrules (MIG): Add -x c to CPP value passed down.
+
* config.h.in: Add #undef HAVE_HOST_PAGE_SIZE.
* sysdeps/mach/configure.in: Check for host_page_size RPC to define it.
* mach/mach_init.c (__mach_init) [HAVE_HOST_PAGE_SIZE]: Use
diff --git a/configure b/configure
index 013bcb1..369dd5c 100755
--- a/configure
+++ b/configure
@@ -3499,12 +3499,12 @@ else
#line 3500 "configure"
#include "confdefs.h"
#include <stdio.h>
-int main()
+main()
{
FILE *f=fopen("conftestval", "w");
- if (!f) return(1);
+ if (!f) exit(1);
fprintf(f, "%d\n", sizeof(long double));
- return(0);
+ exit(0);
}
EOF
if { (eval echo configure:3511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
@@ -3737,6 +3737,8 @@ case "$add_ons" in
esac
+
+
if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
config_makefile=
else
@@ -3966,6 +3968,7 @@ s%@static_nss@%$static_nss%g
s%@nopic_initfini@%$nopic_initfini%g
s%@DEFINES@%$DEFINES%g
s%@linux_doors@%$linux_doors%g
+s%@mach_interface_list@%$mach_interface_list%g
s%@VERSION@%$VERSION%g
s%@RELEASE@%$RELEASE%g
diff --git a/mach/Machrules b/mach/Machrules
index 6e87397..79dec99 100644
--- a/mach/Machrules
+++ b/mach/Machrules
@@ -1,5 +1,6 @@
# Rules for MiG interfaces that want to go into the C library.
-# Copyright (C) 1991,92,93,94,95,96,98,99,2001 Free Software Foundation, Inc.
+# Copyright (C) 1991,92,93,94,95,96,98,99,2001,02
+# Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -56,7 +57,7 @@ MIGFLAGS = -DMACH_IPC_COMPAT=0 -DSTANDALONE -DTypeCheck=0 \
$(+includes) $(migdefines) -subrprefix __
# Putting CC in the enivronment makes the mig wrapper script
# use the same compiler setup we are using to run cpp.
-MIG := CC='${CC}' CPP='${CPP}' $(MIG)
+MIG := CC='${CC}' CPP='${CPP} -x c' $(MIG)
.SUFFIXES: .defs # Just to set specified_rule_matched.
diff --git a/sysdeps/mach/configure b/sysdeps/mach/configure
index 83dc583..7a26960 100644
--- a/sysdeps/mach/configure
+++ b/sysdeps/mach/configure
@@ -1,20 +1,90 @@
+### Sanity checks for Mach header installation
+ac_safe=`echo "mach/mach_types.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for mach/mach_types.h""... $ac_c" 1>&6
+echo "configure:6: checking for mach/mach_types.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 11 "configure"
+#include "confdefs.h"
+#include <mach/mach_types.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:16: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+{ echo "configure: error: cannot find Mach headers" 1>&2; exit 1; }
+fi
+
+ac_safe=`echo "mach/mach_types.defs" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for mach/mach_types.defs""... $ac_c" 1>&6
+echo "configure:40: checking for mach/mach_types.defs" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 45 "configure"
+#include "confdefs.h"
+#include <mach/mach_types.defs>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:50: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+{ echo "configure: error: cannot find Mach .defs files" 1>&2; exit 1; }
+fi
+
+
echo $ac_n "checking for task_t in mach/mach_types.h""... $ac_c" 1>&6
-echo "configure:6: checking for task_t in mach/mach_types.h" >&5
+echo "configure:76: checking for task_t in mach/mach_types.h" >&5
if eval "test \"`echo '$''{'libc_cv_mach_task_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11 "configure"
+#line 81 "configure"
#include "confdefs.h"
#include <mach/mach_types.h>
int main() {
extern task_t foo;
; return 0; }
EOF
-if { (eval echo configure:18: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:88: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_mach_task_t=task_t
else
@@ -31,19 +101,19 @@ if test $libc_cv_mach_task_t != task_t; then
DEFINES="$DEFINES -Dtask_t=task_port_t"
fi
echo $ac_n "checking for thread_t in mach/mach_types.h""... $ac_c" 1>&6
-echo "configure:35: checking for thread_t in mach/mach_types.h" >&5
+echo "configure:105: checking for thread_t in mach/mach_types.h" >&5
if eval "test \"`echo '$''{'libc_cv_mach_thread_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 40 "configure"
+#line 110 "configure"
#include "confdefs.h"
#include <mach/mach_types.h>
int main() {
extern thread_t foo;
; return 0; }
EOF
-if { (eval echo configure:47: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_mach_thread_t=thread_t
else
@@ -61,12 +131,12 @@ if test $libc_cv_mach_thread_t != thread_t; then
fi
echo $ac_n "checking for creation_time in task_basic_info""... $ac_c" 1>&6
-echo "configure:65: checking for creation_time in task_basic_info" >&5
+echo "configure:135: checking for creation_time in task_basic_info" >&5
if eval "test \"`echo '$''{'libc_cv_mach_task_creation_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 70 "configure"
+#line 140 "configure"
#include "confdefs.h"
#include <mach/task_info.h>
int main() {
@@ -76,7 +146,7 @@ long s = i->creation_time.seconds;
; return 0; }
EOF
-if { (eval echo configure:80: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_mach_task_creation_time=yes
else
@@ -92,3 +162,77 @@ echo "$ac_t""$libc_cv_mach_task_creation_time" 1>&6
if test $libc_cv_mach_task_creation_time = no; then
DEFINES="$DEFINES -DNO_CREATION_TIME=1"
fi
+
+mach_interface_list=
+for ifc in mach mach4 \
+ clock_priv host_priv host_security ledger lock_set \
+ processor processor_set task thread_act vm_map \
+ memory_object memory_object_default default_pager \
+ ; do
+ ac_safe=`echo "mach/${ifc}.defs" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for mach/${ifc}.defs""... $ac_c" 1>&6
+echo "configure:175: checking for mach/${ifc}.defs" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 180 "configure"
+#include "confdefs.h"
+#include <mach/${ifc}.defs>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ mach_interface_list="$mach_interface_list $ifc"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+done
+if test "x$mach_interface_list" = x; then
+ { echo "configure: error: what manner of Mach is this?" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking for host_page_size in mach_host.defs""... $ac_c" 1>&6
+echo "configure:212: checking for host_page_size in mach_host.defs" >&5
+if eval "test \"`echo '$''{'libc_cv_mach_host_page_size'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 217 "configure"
+#include "confdefs.h"
+#include <mach/mach_host.defs>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "host_page_size" >/dev/null 2>&1; then
+ rm -rf conftest*
+ libc_cv_mach_host_page_size=yes
+else
+ rm -rf conftest*
+ libc_cv_mach_host_page_size=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$libc_cv_mach_host_page_size" 1>&6
+if test $libc_cv_mach_host_page_size = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_HOST_PAGE_SIZE 1
+EOF
+
+fi
diff --git a/sysdeps/mach/hurd/times.c b/sysdeps/mach/hurd/times.c
index 044ca17..e232757 100644
--- a/sysdeps/mach/hurd/times.c
+++ b/sysdeps/mach/hurd/times.c
@@ -1,5 +1,5 @@
/* Return CPU and real time used by process and its children. Hurd version.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001,02 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -70,7 +70,11 @@ __times (struct tms *tms)
if (err)
return __hurd_fail (err);
+#if NO_CREATION_TIME
+ return 0; /* XXX */
+#else
return (clock_from_time_value (&now)
- clock_from_time_value (&bi.creation_time));
+#endif
}
weak_alias (__times, times)