diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-04-25 04:07:19 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-04-25 04:07:19 +0000 |
commit | 2617bc1caf98bfa8c065607d0ed14ee2db676940 (patch) | |
tree | 29d789c1747f5f03b4f3c3c219fd8fd510b9378a /debian | |
parent | f8f7a6ba27dd8ed69d41fcda71cb313948421300 (diff) |
Remove libpthread, now shipped by glibc, and depend on it
Diffstat (limited to 'debian')
-rw-r--r-- | debian/changelog | 7 | ||||
-rw-r--r-- | debian/control | 4 | ||||
-rw-r--r-- | debian/patches/external.patch | 4 | ||||
-rw-r--r-- | debian/patches/libpthread_fix.patch | 75 | ||||
-rw-r--r-- | debian/patches/libpthread_globsigdisp.patch | 59 | ||||
-rw-r--r-- | debian/patches/libpthread_sigmask.patch | 47 | ||||
-rw-r--r-- | debian/patches/libpthread_stubs.patch | 157 | ||||
-rw-r--r-- | debian/patches/series | 4 |
8 files changed, 11 insertions, 346 deletions
diff --git a/debian/changelog b/debian/changelog index e84f212e..67a0bb6b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +hurd (20120408-3) unstable; urgency=low + + * patches/libpthread*, control, patches/external.patch: Remove libpthread, now + shipped by glibc, and depend on it. + + -- Samuel Thibault <sthibault@debian.org> Wed, 25 Apr 2012 02:14:04 +0000 + hurd (20120408-2) unstable; urgency=low * debian/patches/libdde_{addr_fix,addr_list,config,devres,dma_head,ethoc, diff --git a/debian/control b/debian/control index 363f0a0e..4b856b21 100644 --- a/debian/control +++ b/debian/control @@ -16,7 +16,7 @@ Vcs-Git: git://git.debian.org/pkg-hurd/hurd.git Package: hurd Essential: yes -Depends: ${misc:Depends}, sysv-rc, ${shlibs:Depends} +Depends: ${misc:Depends}, sysv-rc, libc0.3 (>= 2.13-31~), ${shlibs:Depends} Breaks: gnumach (<< 2:1.3.99.dfsg.cvs20070526-1), libc0.3 (<< 2.11.2-12) Suggests: hurd-doc Recommends: bf-utf-source @@ -32,7 +32,7 @@ Package: hurd-dev Priority: standard Section: libdevel Architecture: hurd-any -Depends: ${misc:Depends}, hurd (= ${binary:Version}) +Depends: ${misc:Depends}, libc0.3-dev (>= 2.13-31~), hurd (= ${binary:Version}) Provides: libsem-dev Replaces: libsem-dev Conflicts: libsem-dev diff --git a/debian/patches/external.patch b/debian/patches/external.patch index d7425e4f..74ee402b 100644 --- a/debian/patches/external.patch +++ b/debian/patches/external.patch @@ -1,4 +1,4 @@ -Include libpthread and procfs in the build +Include procfs, random, and DDE in the build Index: hurd-debian/Makefile =================================================================== @@ -10,7 +10,7 @@ Index: hurd-debian/Makefile libpager libfshelp libdiskfs libtrivfs libps \ - libnetfs libpipe libstore libhurdbugaddr libftpconn libcons + libnetfs libpipe libstore libhurdbugaddr libftpconn libcons \ -+ libpthread libmachdev libbpf libddekit libhurd-slab ++ libmachdev libbpf libddekit libhurd-slab # Hurd programs prog-subdirs = auth proc exec init term \ diff --git a/debian/patches/libpthread_fix.patch b/debian/patches/libpthread_fix.patch deleted file mode 100644 index 56e03850..00000000 --- a/debian/patches/libpthread_fix.patch +++ /dev/null @@ -1,75 +0,0 @@ -Temporary patch from Thomas Schwinge to fix libpthread bugs. - ---- - libpthread/sysdeps/mach/hurd/pt-init-specific.c | 29 ++++++++++++++++++++++++ - libpthread/sysdeps/mach/pt-thread-dealloc.c | 2 + - libpthread/sysdeps/mach/pt-thread-halt.c | 19 ++++++++++++++- - 3 files changed, 48 insertions(+), 2 deletions(-) - ---- a/libpthread/sysdeps/mach/pt-thread-dealloc.c -+++ b/libpthread/sysdeps/mach/pt-thread-dealloc.c -@@ -38,4 +38,6 @@ __pthread_thread_dealloc (struct __pthre - assert. */ - __mach_port_destroy (__mach_task_self (), - thread->wakeupmsg.msgh_remote_port); -+ -+ thread->have_kernel_resources = 0; - } ---- a/libpthread/sysdeps/mach/pt-thread-halt.c -+++ b/libpthread/sysdeps/mach/pt-thread-halt.c -@@ -32,6 +32,21 @@ - void - __pthread_thread_halt (struct __pthread *thread) - { -- error_t err = __thread_terminate (thread->kernel_thread); -- assert_perror (err); -+ if (thread->have_kernel_resources) -+ { -+ if (thread == _pthread_self ()) -+ { -+ while (1) -+ { -+ error_t err = __thread_suspend (thread->kernel_thread); -+ assert_perror (err); -+ assert (! "Failed to suspend self."); -+ } -+ } -+ else -+ { -+ error_t err = __thread_terminate (thread->kernel_thread); -+ assert_perror (err); -+ } -+ } - } ---- /dev/null -+++ b/libpthread/sysdeps/mach/hurd/pt-init-specific.c -@@ -0,0 +1,29 @@ -+/* __pthread_init_specific. Mach version. -+ Copyright (C) 2002, 2009 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 -+ modify it under the terms of the GNU Library General Public License as -+ published by the Free Software Foundation; either version 2 of the -+ License, or (at your option) any later version. -+ -+ The GNU C Library 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 -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public -+ License along with the GNU C Library; see the file COPYING.LIB. If not, -+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -+ Boston, MA 02111-1307, USA. */ -+ -+#include <pthread.h> -+#include <pt-internal.h> -+ -+error_t -+__pthread_init_specific (struct __pthread *thread) -+{ -+ thread->thread_specifics = 0; -+ thread->have_kernel_resources = 0; -+ return 0; -+} diff --git a/debian/patches/libpthread_globsigdisp.patch b/debian/patches/libpthread_globsigdisp.patch deleted file mode 100644 index 06c3486c..00000000 --- a/debian/patches/libpthread_globsigdisp.patch +++ /dev/null @@ -1,59 +0,0 @@ -commit 60d1b9b9198bc8c618596cb0e48687bd41e8adb7 -Author: Jeremie Koenig <jk@jk.fr.eu.org> -Date: Fri Jun 10 05:46:39 2011 +0000 - - Mark new threads as global signal receivers - - * sysdeps/mach/hurd/pt-sigstate-init.c (__pthread_sigstate_init): - Call _hurd_sigstate_set_global_rcv for newly created threads. - * sysdeps/mach/pt-thread-halt.c (__pthread_thread_halt): - Call _hurd_sigstate_delete on terminated threads. - -diff --git a/libpthread/sysdeps/mach/hurd/pt-sigstate-init.c b/libpthread/sysdeps/mach/hurd/pt-sigstate-init.c -index da5a945..f8398f4 100644 ---- a/libpthread/sysdeps/mach/hurd/pt-sigstate-init.c -+++ b/libpthread/sysdeps/mach/hurd/pt-sigstate-init.c -@@ -19,6 +19,7 @@ - - #include <pthread.h> - #include <hurd/threadvar.h> -+#include <hurd/signal.h> - - #include <pt-internal.h> - -@@ -30,8 +31,21 @@ __pthread_sigstate_init (struct __pthread *thread) - thread->stackaddr); - - /* The real initialization happens internally in glibc the first -- time that _hurd_thead_sigstate is called. */ -+ time that _hurd_self_sigstate is called. */ - *location = 0; - -+ /* Mark the thread as a global signal receiver so as to conform with -+ the pthread semantics. However, we must be careful. The first -+ pthread created is the main thread, during libpthread initialization. -+ We must not mark it, otherwise the sigprocmask call in -+ __pthread_create would try to access _hurd_global_sigstate, -+ which is not initialized yet. When glibc runs _hurdsig_init later -+ on, the message thread is created, which must not be marked either. */ -+ if (__pthread_num_threads > 2) -+ { -+ struct hurd_sigstate *ss = _hurd_thread_sigstate (thread->kernel_thread); -+ _hurd_sigstate_set_global_rcv (ss); -+ } -+ - return 0; - } -diff --git a/libpthread/sysdeps/mach/pt-thread-halt.c b/libpthread/sysdeps/mach/pt-thread-halt.c -index a9c3858..808043d 100644 ---- a/libpthread/sysdeps/mach/pt-thread-halt.c -+++ b/libpthread/sysdeps/mach/pt-thread-halt.c -@@ -34,6 +34,8 @@ __pthread_thread_halt (struct __pthread *thread) - { - if (thread->have_kernel_resources) - { -+ _hurd_sigstate_delete (thread->kernel_thread); -+ - if (thread == _pthread_self ()) - { - while (1) diff --git a/debian/patches/libpthread_sigmask.patch b/debian/patches/libpthread_sigmask.patch deleted file mode 100644 index 7315a80d..00000000 --- a/debian/patches/libpthread_sigmask.patch +++ /dev/null @@ -1,47 +0,0 @@ -* libpthread/sysdeps/mach/hurd/pt-sigstate.c (__pthread_sigstate): Wake up the message -thread if any pending signals have been unblocked (code grabbed from glibc). ---- - libpthread/sysdeps/mach/hurd/pt-sigstate.c | 9 +++++++++ - 1 files changed, 9 insertions(+), 0 deletions(-) - -Index: hurd/libpthread/sysdeps/mach/hurd/pt-sigstate.c -=================================================================== ---- hurd.orig/libpthread/sysdeps/mach/hurd/pt-sigstate.c 2011-05-29 15:23:30.000000000 +0000 -+++ hurd/libpthread/sysdeps/mach/hurd/pt-sigstate.c 2011-06-10 04:53:53.000000000 +0000 -@@ -21,6 +21,7 @@ - #include <assert.h> - #include <signal.h> - #include <hurd/signal.h> -+#include <hurd/msg.h> - - #include <pt-internal.h> - -@@ -31,11 +32,12 @@ - { - error_t err = 0; - struct hurd_sigstate *ss; -+ sigset_t pending; - - ss = _hurd_thread_sigstate (thread->kernel_thread); - assert (ss); - -- __pthread_spin_lock (&ss->lock); -+ _hurd_sigstate_lock (ss); - - if (oset) - *oset = ss->blocked; -@@ -63,7 +65,13 @@ - if (! err && clear_pending) - __sigemptyset (&ss->pending); - -- __pthread_spin_unlock (&ss->lock); -+ pending = _hurd_sigstate_pending (ss) & ~ss->blocked; -+ _hurd_sigstate_unlock (ss); -+ -+ if (! err && pending) -+ /* Send a message to the signal thread so it -+ will wake up and check for pending signals. */ -+ __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ()); - - return err; - } diff --git a/debian/patches/libpthread_stubs.patch b/debian/patches/libpthread_stubs.patch deleted file mode 100644 index 7b0db6a3..00000000 --- a/debian/patches/libpthread_stubs.patch +++ /dev/null @@ -1,157 +0,0 @@ -Add warnings about non-implemented functions. ---- - config.make.in | 1 + - libpthread/Makefile | 14 +++++++++++++- - libpthread/include/libc-symbols.h | 1 + - libpthread/sysdeps/generic/pt-atfork.c | 2 ++ - libpthread/sysdeps/generic/pt-getcpuclockid.c | 1 + - libpthread/sysdeps/generic/pt-getschedparam.c | 2 ++ - libpthread/sysdeps/generic/pt-key-create.c | 2 ++ - libpthread/sysdeps/generic/pt-key-delete.c | 2 ++ - libpthread/sysdeps/generic/pt-mutex-getprioceiling.c | 2 ++ - libpthread/sysdeps/generic/pt-mutex-setprioceiling.c | 2 ++ - libpthread/sysdeps/generic/pt-mutexattr-getprioceiling.c | 2 ++ - libpthread/sysdeps/generic/pt-mutexattr-setprioceiling.c | 2 ++ - libpthread/sysdeps/generic/pt-setschedparam.c | 2 ++ - libpthread/sysdeps/generic/pt-setschedprio.c | 2 ++ - 14 files changed, 36 insertions(+), 1 deletion(-) - ---- a/config.make.in -+++ b/config.make.in -@@ -44,6 +44,7 @@ RANLIB = @RANLIB@ - MIG = @MIG@ - MIGCOM = $(MIG) -cc cat - /dev/null - AWK = @AWK@ -+OBJDUMP = objdump - - # Compilation flags. Append these to the definitions already made by - # the specific Makefile. ---- a/libpthread/Makefile -+++ b/libpthread/Makefile -@@ -186,7 +186,7 @@ CPPFLAGS += \ - -imacros $(srcdir)/not-in-libc.h - - --install: install-headers $(libdir)/libpthread2.a $(libdir)/libpthread2_pic.a -+install: install-headers $(libdir)/libpthread2.a $(libdir)/libpthread2_pic.a install-stubs-pthread - install-headers: $(addprefix $(includedir)/, $(sysdeps_headers)) - - # XXX: If $(libdir)/libpthread2.a is installed and -@@ -205,6 +205,18 @@ $(libdir)/libpthread2_pic.a: $(libdir)/l - mv $< $@ - $(INSTALL_DATA) $(srcdir)/libpthread_pic.a $< - -+install-stubs-pthread: stubs-pthread.h -+ mkdir -p $(includedir)/gnu -+ $(INSTALL_DATA) $< $(includedir)/gnu/stubs-pthread.h -+ -+stubs-pthread.h: $(OBJS) -+ $(OBJDUMP) -h $^ | \ -+ $(AWK) '/\.gnu\.glibc-stub\./ { \ -+ sub(/\.gnu\.glibc-stub\./, "", $$2); \ -+ stubs[$$2] = 1; } \ -+ END { for (s in stubs) print "#define __stub_" s }' > $@T -+ mv -f $@T $@ -+ - .PHONY: $(addprefix $(includedir)/, $(sysdeps_headers)) - - $(addprefix $(includedir)/, $(sysdeps_headers)): ---- a/libpthread/include/libc-symbols.h -+++ b/libpthread/include/libc-symbols.h -@@ -252,6 +252,7 @@ - - /* A canned warning for sysdeps/stub functions. */ - #define stub_warning(name) \ -+ __make_section_unallocated (".gnu.glibc-stub." #name) \ - link_warning (name, \ - "warning: " #name " is not implemented and will always fail") - ---- a/libpthread/sysdeps/generic/pt-atfork.c -+++ b/libpthread/sysdeps/generic/pt-atfork.c -@@ -27,3 +27,5 @@ pthread_atfork (void (*prepare) (void), - { - return ENOSYS; - } -+ -+stub_warning (pthread_atfork) ---- a/libpthread/sysdeps/generic/pt-getcpuclockid.c -+++ b/libpthread/sysdeps/generic/pt-getcpuclockid.c -@@ -30,5 +30,6 @@ pthread_getcpuclockid (pthread_t thread, - return 0; - #else - return ENOSYS; -+stub_warning (pthread_getcpuclockid) - #endif - } ---- a/libpthread/sysdeps/generic/pt-getschedparam.c -+++ b/libpthread/sysdeps/generic/pt-getschedparam.c -@@ -26,3 +26,5 @@ pthread_getschedparam (pthread_t thread, - { - return ENOSYS; - } -+ -+stub_warning (pthread_getschedparam) ---- a/libpthread/sysdeps/generic/pt-key-create.c -+++ b/libpthread/sysdeps/generic/pt-key-create.c -@@ -25,3 +25,5 @@ pthread_key_create (pthread_key_t *key, - { - return ENOSYS; - } -+ -+stub_warning (pthread_key_create) ---- a/libpthread/sysdeps/generic/pt-key-delete.c -+++ b/libpthread/sysdeps/generic/pt-key-delete.c -@@ -25,3 +25,5 @@ pthread_key_delete (pthread_key_t key) - { - return ENOSYS; - } -+ -+stub_warning (pthread_key_delete) ---- a/libpthread/sysdeps/generic/pt-mutex-getprioceiling.c -+++ b/libpthread/sysdeps/generic/pt-mutex-getprioceiling.c -@@ -26,3 +26,5 @@ pthread_mutex_getprioceiling (const pthr - { - return ENOSYS; - } -+ -+stub_warning (pthread_mutex_getprioceiling) ---- a/libpthread/sysdeps/generic/pt-mutex-setprioceiling.c -+++ b/libpthread/sysdeps/generic/pt-mutex-setprioceiling.c -@@ -26,3 +26,5 @@ pthread_mutex_setprioceiling (pthread_mu - { - return ENOSYS; - } -+ -+stub_warning (pthread_mutex_setprioceiling) ---- a/libpthread/sysdeps/generic/pt-mutexattr-getprioceiling.c -+++ b/libpthread/sysdeps/generic/pt-mutexattr-getprioceiling.c -@@ -26,3 +26,5 @@ pthread_mutexattr_getprioceiling (const - { - return ENOSYS; - } -+ -+stub_warning (pthread_mutexattr_getprioceiling) ---- a/libpthread/sysdeps/generic/pt-mutexattr-setprioceiling.c -+++ b/libpthread/sysdeps/generic/pt-mutexattr-setprioceiling.c -@@ -26,3 +26,5 @@ pthread_mutexattr_setprioceiling (pthrea - { - return ENOSYS; - } -+ -+stub_warning (pthread_mutexattr_setprioceiling) ---- a/libpthread/sysdeps/generic/pt-setschedparam.c -+++ b/libpthread/sysdeps/generic/pt-setschedparam.c -@@ -26,3 +26,5 @@ pthread_setschedparam (pthread_t thread, - { - return ENOSYS; - } -+ -+stub_warning (pthread_setschedparam) ---- a/libpthread/sysdeps/generic/pt-setschedprio.c -+++ b/libpthread/sysdeps/generic/pt-setschedprio.c -@@ -25,3 +25,5 @@ pthread_setschedprio (pthread_t thread, - { - return ENOSYS; - } -+ -+stub_warning (pthread_setschedprio) diff --git a/debian/patches/series b/debian/patches/series index d6509162..c4c3db04 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -3,7 +3,6 @@ ext2fs_large_stores.patch hurd_console_startup.patch init_try_runsystem.gnu.patch install-msgids.diff -libpthread_stubs.patch makedev.diff pfinet_dhcp.patch pflocal.patch @@ -14,18 +13,15 @@ tmp_exec_startup.patch uptime_w_path_fix.patch stat_round.patch libports_stability.patch -libpthread_fix.patch proxy-defpager.diff external.patch makedev_keep_options.patch makedev_parted_store.patch console_ignore_bdf_err.patch -libpthread_sigmask.patch ext2fs_nowait.patch libpager_deadlock.patch libdiskfs_self-reauth.patch libdiskfs_sync.patch -libpthread_globsigdisp.patch posix-sigcodes.patch random-default-fast.patch libexec.patch |