summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@gnu.org>2008-12-17 19:33:13 +0100
committerNeal H. Walfield <neal@gnu.org>2008-12-17 19:33:13 +0100
commit4ef4096e11ad305d27b4f286098f392cc6be265a (patch)
treefdb3cd3cb2f8477899728fa3b2a4f9462d860f50
parent5383ad657ed466342e65a0c90e9ea34bf86babc6 (diff)
Merge hurd/exceptions.h into hurd/thread.h.
hurd/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * exceptions.h: Merge contents of this file... * thread.h: ... into this one. Update users. * headers.m4: Don't link hurd/exceptions.h. * Makefile.am (includehurd_HEADERS): Remove exceptions.h. libc-parts/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * backtrace.c: Don't include <hurd/exceptions.h>. libhurd-mm/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * anonymous.h: Don't include <hurd/exceptions.h>. * as.h: Likewise. * exceptions.c: Likewise. * map.h: Likewise. * message-buffer.c: Likewise. * mm-init.c: Likewise. * as-build.c: Don't include <hurd/exceptions.h>. Include <viengoos/thread.h> and <viengoos/messenger.h>. * as-dump.c: Include <viengoos/thread.h> and <viengoos/messenger.h>. * as-lookup.c: Likewise. libpthread/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * sysdeps/viengoos/ia32/pt-setup.c: Don't include <hurd/exceptions.h> or <viengoos/thread.h>. * sysdeps/viengoos/pt-startup.c (__pthread_startup): Don't include <l4.h> or <hurd/exceptions.h>. Include <hurd/thread.h>. (__pthread_startup): Set pthread->threadid using hurd_myself. * sysdeps/viengoos/pt-sysdep.h: Don't cinlude <hurd/exceptions.h>. Include <hurd/thread.h>. * sysdeps/viengoos/pt-thread-dealloc.c: Don't include <hurd/exceptions.h>. Include <hurd/thread.h>. * sysdeps/viengoos/pt-thread-start.c: Don't include <viengoos/thread.h> or <hurd/exceptions.h>. Include <hurd/thread.h>. libviengoos/ 2008-12-17 Neal H. Walfield <neal@gnu.org> * viengoos/misc.h: Don't include <hurd/exceptions.h>.
-rw-r--r--hurd/ChangeLog7
-rw-r--r--hurd/Makefile.am3
-rw-r--r--hurd/exceptions.h106
-rw-r--r--hurd/headers.m41
-rw-r--r--hurd/thread.h78
-rw-r--r--libc-parts/ChangeLog4
-rw-r--r--libc-parts/backtrace.c1
-rw-r--r--libhurd-mm/ChangeLog14
-rw-r--r--libhurd-mm/anonymous.h1
-rw-r--r--libhurd-mm/as-build.c3
-rw-r--r--libhurd-mm/as-dump.c2
-rw-r--r--libhurd-mm/as-lookup.c2
-rw-r--r--libhurd-mm/as.h1
-rw-r--r--libhurd-mm/exceptions.c1
-rw-r--r--libhurd-mm/map.h2
-rw-r--r--libhurd-mm/message-buffer.c1
-rw-r--r--libhurd-mm/mm-init.c1
-rw-r--r--libpthread/ChangeLog15
-rw-r--r--libpthread/sysdeps/viengoos/ia32/pt-setup.c2
-rw-r--r--libpthread/sysdeps/viengoos/pt-startup.c9
-rw-r--r--libpthread/sysdeps/viengoos/pt-sysdep.h2
-rw-r--r--libpthread/sysdeps/viengoos/pt-thread-dealloc.c2
-rw-r--r--libpthread/sysdeps/viengoos/pt-thread-start.c3
-rw-r--r--libviengoos/ChangeLog4
-rw-r--r--libviengoos/viengoos/misc.h1
25 files changed, 135 insertions, 131 deletions
diff --git a/hurd/ChangeLog b/hurd/ChangeLog
index e9ba5ba..ea3c095 100644
--- a/hurd/ChangeLog
+++ b/hurd/ChangeLog
@@ -1,5 +1,12 @@
2008-12-17 Neal H. Walfield <neal@gnu.org>
+ * exceptions.h: Merge contents of this file...
+ * thread.h: ... into this one. Update users.
+ * headers.m4: Don't link hurd/exceptions.h.
+ * Makefile.am (includehurd_HEADERS): Remove exceptions.h.
+
+2008-12-17 Neal H. Walfield <neal@gnu.org>
+
* rmutex.h (__need_vg_thread_id_t): Don't include <l4/thread.h>.
Define __need_vg_thread_id_t and include <viengoos/thread.h>.
(struct ss_rmutex): Change owner to a vg_thread_id_t.
diff --git a/hurd/Makefile.am b/hurd/Makefile.am
index 4eae77a..5c28904 100644
--- a/hurd/Makefile.am
+++ b/hurd/Makefile.am
@@ -18,6 +18,5 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
includehurddir = $(includedir)/hurd
-includehurd_HEADERS = startup.h stddef.h types.h \
- exceptions.h thread.h \
+includehurd_HEADERS = startup.h stddef.h types.h thread.h \
lock.h mutex.h rmutex.h error.h trace.h
diff --git a/hurd/exceptions.h b/hurd/exceptions.h
deleted file mode 100644
index efd779b..0000000
--- a/hurd/exceptions.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* activations.h - Activation handling definitions.
- Copyright (C) 2007, 2008 Free Software Foundation, Inc.
- Written by Neal H. Walfield <neal@gnu.org>.
-
- This file is part of the GNU Hurd.
-
- GNU Hurd is free software: you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
-
- GNU Hurd is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with GNU Hurd. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _HURD_ACTIVATIONS_H
-#define _HURD_ACTIVATIONS_H 1
-
-#include <hurd/stddef.h>
-
-#include <stdint.h>
-#include <viengoos/addr.h>
-#include <viengoos/thread.h>
-#include <hurd/error.h>
-
-/* Initializes the activation handler to allow receiving IPCs (but
- does not handle other faults). This must be called exactly once
- before any IPCs are sent. */
-extern void hurd_activation_handler_init_early (void);
-
-/* Initialize the activation handler. This must be called after the
- storage sub-system has been initialized. At this point, the
- activation handler is able to handle exceptions. */
-extern void hurd_activation_handler_init (void);
-
-
-/* Return the calling thread's UTCB. Threading libraries should set
- this to their own implementation once they are up and running. */
-extern struct hurd_utcb *(*hurd_utcb) (void);
-
-/* Allocate a utcb buffer and associated data structures (including an
- exception messenger) for the thread THEAD (which must already exist
- but should not be running). Installs the UTCB and exception
- messenger in the thread object. Returns the new UTCB in *UTCB.
- Returns 0 on success, otherwise an error code. */
-extern error_t hurd_activation_state_alloc (vg_addr_t thread,
- struct hurd_utcb **utcb);
-
-/* Release the state allocated by hurd_activation_state_alloc. May
- not be called by a thread on its own UTCB! */
-extern void hurd_activation_state_free (struct hurd_utcb *utcb);
-
-
-/* When a thread causes an activation, the kernel invokes the thread's
- activation handler. This points to the low-level activation handler,
- which invokes activation_handler_activated. (It is passed a pointer
- to the utcb.)
-
- This function must determine how to continue. It may, but need
- not, immediately handle the activation. The problem with handling
- an activation immediately is that this function runs on the
- activation handler's tiny stack and it runs in activated mode. The
- latter means that it may not fault (which generally precludes
- accessing any dynamically allocated storage) or even properly send
- IPC (as it has no easy way to determine when the IPC has been
- received and when a reply is available--this information is
- delivered by activations!).
-
- To allow an easy transition to another function in normal-mode, if
- the function returns an activation_frame, then the activation
- handler will call hurd_activation_handler_normal passing it that
- argument. This function runs in normal mode and on the normal
- stack. When this function returns, the interrupted state is
- restored. */
-extern struct activation_frame *hurd_activation_handler_activated
- (struct hurd_utcb *utcb);
-
-extern void hurd_activation_handler_normal
- (struct activation_frame *activation_frame, struct hurd_utcb *utcb);
-
-
-/* The first instruction of activation handler dispatcher. */
-extern char hurd_activation_handler_entry;
-/* The instruction immediately following the last instruction of the
- activation handler dispatcher. */
-extern char hurd_activation_handler_end;
-
-
-/* Register the current extant IPC. */
-extern void hurd_activation_message_register (struct hurd_message_buffer *mb);
-
-/* Unregister the current extant IPC. This is normally done
- automatically when a reply is receive. However, if the IPC is
- aborted, then this function must be called before the next IPC may
- be sent. */
-extern void hurd_activation_message_unregister (struct hurd_message_buffer *mb);
-
-/* Dump the activation stack to stdout. */
-extern void hurd_activation_stack_dump (void);
-
-#endif
diff --git a/hurd/headers.m4 b/hurd/headers.m4
index da2d579..dc7d22a 100644
--- a/hurd/headers.m4
+++ b/hurd/headers.m4
@@ -13,7 +13,6 @@
AC_CONFIG_LINKS([sysroot/include/hurd/stddef.h:hurd/stddef.h
sysroot/include/hurd/types.h:hurd/types.h
sysroot/include/hurd/startup.h:hurd/startup.h
- sysroot/include/hurd/exceptions.h:hurd/exceptions.h
sysroot/include/hurd/thread.h:hurd/thread.h
sysroot/include/hurd/lock.h:hurd/lock.h
sysroot/include/hurd/trace.h:hurd/trace.h
diff --git a/hurd/thread.h b/hurd/thread.h
index f65f17f..94c29e8 100644
--- a/hurd/thread.h
+++ b/hurd/thread.h
@@ -93,7 +93,6 @@ struct activation_frame
#include <viengoos/addr-trans.h>
#include <viengoos/cap.h>
#include <viengoos/messenger.h>
-#include <hurd/exceptions.h>
#include <setjmp.h>
/* The user thread control block. */
@@ -133,13 +132,90 @@ struct hurd_utcb
uintptr_t canary0;
uintptr_t canary1;
};
+
+/* Return the calling thread's UTCB. Threading libraries should set
+ this to their own implementation once they are up and running. */
+extern struct hurd_utcb *(*hurd_utcb) (void);
+/* Initializes the activation handler to allow receiving IPCs (but
+ does not handle other faults). This must be called exactly once
+ before any IPCs are sent. */
+extern void hurd_activation_handler_init_early (void);
+
+/* Initialize the activation handler. This must be called after the
+ storage sub-system has been initialized. At this point, the
+ activation handler is able to handle exceptions. */
+extern void hurd_activation_handler_init (void);
+
+
+/* Allocate a utcb buffer and associated data structures (including an
+ exception messenger) for the thread THEAD (which must already exist
+ but should not be running). Installs the UTCB and exception
+ messenger in the thread object. Returns the new UTCB in *UTCB.
+ Returns 0 on success, otherwise an error code. */
+extern error_t hurd_activation_state_alloc (vg_addr_t thread,
+ struct hurd_utcb **utcb);
+
+/* Release the state allocated by hurd_activation_state_alloc. May
+ not be called by a thread on its own UTCB! */
+extern void hurd_activation_state_free (struct hurd_utcb *utcb);
+
+
+/* When a thread causes an activation, the kernel invokes the thread's
+ activation handler. This points to the low-level activation handler,
+ which invokes activation_handler_activated. (It is passed a pointer
+ to the utcb.)
+
+ This function must determine how to continue. It may, but need
+ not, immediately handle the activation. The problem with handling
+ an activation immediately is that this function runs on the
+ activation handler's tiny stack and it runs in activated mode. The
+ latter means that it may not fault (which generally precludes
+ accessing any dynamically allocated storage) or even properly send
+ IPC (as it has no easy way to determine when the IPC has been
+ received and when a reply is available--this information is
+ delivered by activations!).
+
+ To allow an easy transition to another function in normal-mode, if
+ the function returns an activation_frame, then the activation
+ handler will call hurd_activation_handler_normal passing it that
+ argument. This function runs in normal mode and on the normal
+ stack. When this function returns, the interrupted state is
+ restored. */
+extern struct activation_frame *hurd_activation_handler_activated
+ (struct hurd_utcb *utcb);
+
+extern void hurd_activation_handler_normal
+ (struct activation_frame *activation_frame, struct hurd_utcb *utcb);
+
+
+/* The first instruction of activation handler dispatcher. */
+extern char hurd_activation_handler_entry;
+/* The instruction immediately following the last instruction of the
+ activation handler dispatcher. */
+extern char hurd_activation_handler_end;
+
+
+/* Register the current extant IPC. */
+extern void hurd_activation_message_register (struct hurd_message_buffer *mb);
+
+/* Unregister the current extant IPC. This is normally done
+ automatically when a reply is receive. However, if the IPC is
+ aborted, then this function must be called before the next IPC may
+ be sent. */
+extern void hurd_activation_message_unregister (struct hurd_message_buffer *mb);
+
+
/* Cause the activation frame to assume the state of the long jump
buffer BUF. If SET_RET is true, the normal function return value
is set to RET. */
extern void hurd_activation_frame_longjmp (struct activation_frame *af,
jmp_buf buf,
bool set_ret, int ret);
+
+
+/* Dump the activation stack to stdout. */
+extern void hurd_activation_stack_dump (void);
struct hurd_fault_catcher
{
diff --git a/libc-parts/ChangeLog b/libc-parts/ChangeLog
index 3ca7496..4532e7d 100644
--- a/libc-parts/ChangeLog
+++ b/libc-parts/ChangeLog
@@ -1,5 +1,9 @@
2008-12-17 Neal H. Walfield <neal@gnu.org>
+ * backtrace.c: Don't include <hurd/exceptions.h>.
+
+2008-12-17 Neal H. Walfield <neal@gnu.org>
+
* panic.c: Include <backtrace.h>
(panic_): Use backtrace print.
* _exit.c: Include <backtrace.h>
diff --git a/libc-parts/backtrace.c b/libc-parts/backtrace.c
index 342c65d..4fbe875 100644
--- a/libc-parts/backtrace.c
+++ b/libc-parts/backtrace.c
@@ -32,7 +32,6 @@
return count;
#else
-# include <hurd/exceptions.h>
# include <hurd/thread.h>
# include <setjmp.h>
diff --git a/libhurd-mm/ChangeLog b/libhurd-mm/ChangeLog
index a88e681..a4b592e 100644
--- a/libhurd-mm/ChangeLog
+++ b/libhurd-mm/ChangeLog
@@ -1,5 +1,19 @@
2008-12-17 Neal H. Walfield <neal@gnu.org>
+ * anonymous.h: Don't include <hurd/exceptions.h>.
+ * as.h: Likewise.
+ * exceptions.c: Likewise.
+ * map.h: Likewise.
+ * message-buffer.c: Likewise.
+ * mm-init.c: Likewise.
+ * as-build.c: Don't include <hurd/exceptions.h>. Include
+ <viengoos/thread.h> and <viengoos/messenger.h>.
+ * as-dump.c: Include <viengoos/thread.h> and
+ <viengoos/messenger.h>.
+ * as-lookup.c: Likewise.
+
+2008-12-17 Neal H. Walfield <neal@gnu.org>
+
* ia32-exception-entry.S: Don't include <hurd/exceptions.h>.
Include <hurd/stddef.h>.
diff --git a/libhurd-mm/anonymous.h b/libhurd-mm/anonymous.h
index aac7f7b..bdc71ec 100644
--- a/libhurd-mm/anonymous.h
+++ b/libhurd-mm/anonymous.h
@@ -24,7 +24,6 @@
#include <hurd/pager.h>
#include <hurd/btree.h>
#include <viengoos/addr.h>
-#include <hurd/exceptions.h>
#include <l4/thread.h>
/* Forward. */
diff --git a/libhurd-mm/as-build.c b/libhurd-mm/as-build.c
index 25ba5b9..c850713 100644
--- a/libhurd-mm/as-build.c
+++ b/libhurd-mm/as-build.c
@@ -25,7 +25,8 @@
#include <viengoos/cap.h>
#include <hurd/stddef.h>
#include <viengoos/folio.h>
-#include <hurd/exceptions.h>
+#include <viengoos/thread.h>
+#include <viengoos/messenger.h>
#include <hurd/as.h>
#include <viengoos/misc.h>
diff --git a/libhurd-mm/as-dump.c b/libhurd-mm/as-dump.c
index 628b5d3..68051ae 100644
--- a/libhurd-mm/as-dump.c
+++ b/libhurd-mm/as-dump.c
@@ -20,6 +20,8 @@
#include <viengoos/cap.h>
#include <viengoos/folio.h>
+#include <viengoos/thread.h>
+#include <viengoos/messenger.h>
#include <hurd/as.h>
#include <hurd/stddef.h>
#include <assert.h>
diff --git a/libhurd-mm/as-lookup.c b/libhurd-mm/as-lookup.c
index 0de3c03..38b7072 100644
--- a/libhurd-mm/as-lookup.c
+++ b/libhurd-mm/as-lookup.c
@@ -20,6 +20,8 @@
#include <viengoos/cap.h>
#include <viengoos/folio.h>
+#include <viengoos/thread.h>
+#include <viengoos/messenger.h>
#include <hurd/as.h>
#include <hurd/stddef.h>
#include <assert.h>
diff --git a/libhurd-mm/as.h b/libhurd-mm/as.h
index b771fe7..7bc4cce 100644
--- a/libhurd-mm/as.h
+++ b/libhurd-mm/as.h
@@ -24,7 +24,6 @@
#include <viengoos/addr.h>
#include <viengoos/cap.h>
-#include <hurd/exceptions.h>
#include <stdbool.h>
#include <l4/types.h>
diff --git a/libhurd-mm/exceptions.c b/libhurd-mm/exceptions.c
index 42dfacb..c73bec6 100644
--- a/libhurd-mm/exceptions.c
+++ b/libhurd-mm/exceptions.c
@@ -20,7 +20,6 @@
#include <hurd/startup.h>
#include <hurd/stddef.h>
-#include <hurd/exceptions.h>
#include <hurd/storage.h>
#include <hurd/thread.h>
#include <hurd/mm.h>
diff --git a/libhurd-mm/map.h b/libhurd-mm/map.h
index d9aedef..afe6841 100644
--- a/libhurd-mm/map.h
+++ b/libhurd-mm/map.h
@@ -133,8 +133,6 @@ BTREE_CLASS (map, struct map, struct region, region, node,
lock. */
extern hurd_btree_map_t maps;
-#include <hurd/exceptions.h>
-
/* Ensure that using the next AMOUNT bytes of stack will not result in
a fault. */
static void __attribute__ ((noinline))
diff --git a/libhurd-mm/message-buffer.c b/libhurd-mm/message-buffer.c
index dfa87c8..faa15de 100644
--- a/libhurd-mm/message-buffer.c
+++ b/libhurd-mm/message-buffer.c
@@ -24,7 +24,6 @@
#include <hurd/as.h>
#include <hurd/startup.h>
#include <hurd/capalloc.h>
-#include <hurd/exceptions.h>
extern struct hurd_startup_data *__hurd_startup_data;
diff --git a/libhurd-mm/mm-init.c b/libhurd-mm/mm-init.c
index 896b69f..90b7112 100644
--- a/libhurd-mm/mm-init.c
+++ b/libhurd-mm/mm-init.c
@@ -24,7 +24,6 @@
#endif
#include <hurd/startup.h>
-#include <hurd/exceptions.h>
#include <hurd/thread.h>
#ifdef i386
diff --git a/libpthread/ChangeLog b/libpthread/ChangeLog
index ed6a689..ec19176 100644
--- a/libpthread/ChangeLog
+++ b/libpthread/ChangeLog
@@ -1,5 +1,20 @@
2008-12-17 Neal H. Walfield <neal@gnu.org>
+ * sysdeps/viengoos/ia32/pt-setup.c: Don't include
+ <hurd/exceptions.h> or <viengoos/thread.h>.
+ * sysdeps/viengoos/pt-startup.c (__pthread_startup): Don't include
+ <l4.h> or <hurd/exceptions.h>. Include <hurd/thread.h>.
+ (__pthread_startup): Set pthread->threadid using hurd_myself.
+ * sysdeps/viengoos/pt-sysdep.h: Don't cinlude
+ <hurd/exceptions.h>. Include <hurd/thread.h>.
+ * sysdeps/viengoos/pt-thread-dealloc.c: Don't include
+ <hurd/exceptions.h>. Include <hurd/thread.h>.
+ * sysdeps/viengoos/pt-thread-start.c: Don't include
+ <viengoos/thread.h> or <hurd/exceptions.h>. Include
+ <hurd/thread.h>.
+
+2008-12-17 Neal H. Walfield <neal@gnu.org>
+
* sysdeps/generic/bits/spin-lock.h: New file.
2008-12-17 Neal H. Walfield <neal@gnu.org>
diff --git a/libpthread/sysdeps/viengoos/ia32/pt-setup.c b/libpthread/sysdeps/viengoos/ia32/pt-setup.c
index bdd814a..5604d11 100644
--- a/libpthread/sysdeps/viengoos/ia32/pt-setup.c
+++ b/libpthread/sysdeps/viengoos/ia32/pt-setup.c
@@ -20,8 +20,6 @@
#include <l4.h>
#include <pt-internal.h>
-#include <viengoos/thread.h>
-#include <hurd/exceptions.h>
/* The stack layout used on the i386 is:
diff --git a/libpthread/sysdeps/viengoos/pt-startup.c b/libpthread/sysdeps/viengoos/pt-startup.c
index b6461de..1a93e2e 100644
--- a/libpthread/sysdeps/viengoos/pt-startup.c
+++ b/libpthread/sysdeps/viengoos/pt-startup.c
@@ -1,5 +1,5 @@
-/* Thread initialization. Hurd/L4 version.
- Copyright (C) 2007 Free Software Foundation, Inc.
+/* Thread initialization. Viengoos version.
+ Copyright (C) 2007, 2008 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
@@ -17,14 +17,13 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#include <l4.h>
#include <pt-internal.h>
-#include <hurd/exceptions.h>
+#include <hurd/thread.h>
void
__pthread_startup (void)
{
struct __pthread *pthread = _pthread_self ();
- pthread->threadid = l4_myself ();
+ pthread->threadid = hurd_myself ();
}
diff --git a/libpthread/sysdeps/viengoos/pt-sysdep.h b/libpthread/sysdeps/viengoos/pt-sysdep.h
index b276b87..f7ababa 100644
--- a/libpthread/sysdeps/viengoos/pt-sysdep.h
+++ b/libpthread/sysdeps/viengoos/pt-sysdep.h
@@ -30,7 +30,7 @@
/* The default stack size: 2MB. */
#define PTHREAD_STACK_DEFAULT (2 * 1024 * 1024)
-#include <hurd/exceptions.h>
+#include <hurd/thread.h>
#include <hurd/message-buffer.h>
#define PTHREAD_SYSDEP_MEMBERS \
diff --git a/libpthread/sysdeps/viengoos/pt-thread-dealloc.c b/libpthread/sysdeps/viengoos/pt-thread-dealloc.c
index f7d732b..2011df2 100644
--- a/libpthread/sysdeps/viengoos/pt-thread-dealloc.c
+++ b/libpthread/sysdeps/viengoos/pt-thread-dealloc.c
@@ -22,7 +22,7 @@
#include <pt-internal.h>
-#include <hurd/exceptions.h>
+#include <hurd/thread.h>
#include <hurd/mutex.h>
#include <hurd/as.h>
#include <viengoos/addr.h>
diff --git a/libpthread/sysdeps/viengoos/pt-thread-start.c b/libpthread/sysdeps/viengoos/pt-thread-start.c
index 6a9fc90..1b341cb 100644
--- a/libpthread/sysdeps/viengoos/pt-thread-start.c
+++ b/libpthread/sysdeps/viengoos/pt-thread-start.c
@@ -20,8 +20,7 @@
#include <assert.h>
#include <errno.h>
#include <string.h>
-#include <viengoos/thread.h>
-#include <hurd/exceptions.h>
+#include <hurd/thread.h>
#include <pt-internal.h>
diff --git a/libviengoos/ChangeLog b/libviengoos/ChangeLog
index 2e2e150..70cb6ed 100644
--- a/libviengoos/ChangeLog
+++ b/libviengoos/ChangeLog
@@ -1,5 +1,9 @@
2008-12-17 Neal H. Walfield <neal@gnu.org>
+ * viengoos/misc.h: Don't include <hurd/exceptions.h>.
+
+2008-12-17 Neal H. Walfield <neal@gnu.org>
+
* viengoos/activity.h: Add a "vg_" to public viengoos identifiers.
Update users.
* viengoos/addr-trans.h: Likewise.
diff --git a/libviengoos/viengoos/misc.h b/libviengoos/viengoos/misc.h
index e367c19..a793335 100644
--- a/libviengoos/viengoos/misc.h
+++ b/libviengoos/viengoos/misc.h
@@ -23,7 +23,6 @@
#include <hurd/startup.h>
#include <viengoos/folio.h>
-#include <hurd/exceptions.h>
#include <viengoos/thread.h>
#include <viengoos/activity.h>
#include <viengoos/futex.h>