[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r5081 - in glibc-package/trunk/debian: . patches patches/amd64 rules.d



Author: aurel32
Date: 2011-12-13 22:40:39 +0000 (Tue, 13 Dec 2011)
New Revision: 5081

Added:
   glibc-package/trunk/debian/rules.d/stage1.mk
Removed:
   glibc-package/trunk/debian/patches/amd64/cvs-pthread_cond_wait.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
  * patches/amd64/cvs-pthread_cond_wait.diff: remove as it seems to cause
    some issue with some kernels.  Closes: #651746.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2011-12-13 22:32:25 UTC (rev 5080)
+++ glibc-package/trunk/debian/changelog	2011-12-13 22:40:39 UTC (rev 5081)
@@ -3,6 +3,8 @@
   [ Aurelien Jarno ]
   * patches/arm/cvs-syscall-mcount.diff: new patch from upstream to fix
     build on armel.
+  * patches/amd64/cvs-pthread_cond_wait.diff: remove as it seems to cause
+    some issue with some kernels.  Closes: #651746.
 
   [ Samuel Thibault ]
   * patches/hurd-i386/submitted-mach-nanosleep.diff: New patch from Pino to

Deleted: glibc-package/trunk/debian/patches/amd64/cvs-pthread_cond_wait.diff
===================================================================
--- glibc-package/trunk/debian/patches/amd64/cvs-pthread_cond_wait.diff	2011-12-13 22:32:25 UTC (rev 5080)
+++ glibc-package/trunk/debian/patches/amd64/cvs-pthread_cond_wait.diff	2011-12-13 22:40:39 UTC (rev 5081)
@@ -1,121 +0,0 @@
-2011-11-28  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Handle
-	EAGAIN from FUTEX_WAIT_REQUEUE_PI.
-
-diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-index 7535baa..d837d15 100644
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-@@ -23,6 +23,7 @@
- #include <lowlevelcond.h>
- #include <tcb-offsets.h>
- #include <pthread-pi-defines.h>
-+#include <pthread-errnos.h>
- 
- #include <kernel-features.h>
- 
-@@ -133,11 +134,14 @@ __pthread_cond_wait:
- 	cmpl	$PI_BIT, %eax
- 	jne	61f
- 
-+90:
- 	movl	$(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
- 	movl	$SYS_futex, %eax
- 	syscall
- 
- 	movl	$1, %r8d
-+	cmpq	$-EAGAIN, %rax
-+	je	91f
- #ifdef __ASSUME_REQUEUE_PI
- 	jmp	62f
- #else
-@@ -324,6 +328,70 @@ __pthread_cond_wait:
- 
- 13:	movq	%r10, %rax
- 	jmp	14b
-+
-+91:
-+.LcleanupSTART2:
-+	/* FUTEX_WAIT_REQUEUE_PI returned EAGAIN.  We need to
-+	   call it again.  */
-+	movq	8(%rsp), %rdi
-+
-+	/* Get internal lock.  */
-+	movl	$1, %esi
-+	xorl	%eax, %eax
-+	LOCK
-+#if cond_lock == 0
-+	cmpxchgl %esi, (%rdi)
-+#else
-+	cmpxchgl %esi, cond_lock(%rdi)
-+#endif
-+	jz	92f
-+
-+#if cond_lock != 0
-+	addq	$cond_lock, %rdi
-+#endif
-+	cmpq	$-1, dep_mutex-cond_lock(%rdi)
-+	movl	$LLL_PRIVATE, %eax
-+	movl	$LLL_SHARED, %esi
-+	cmovne	%eax, %esi
-+	callq	__lll_lock_wait
-+#if cond_lock != 0
-+	subq	$cond_lock, %rdi
-+#endif
-+92:
-+	/* Increment the cond_futex value again, so it can be used as a new
-+	   expected value. */
-+	incl	cond_futex(%rdi)
-+	movl	cond_futex(%rdi), %edx
-+
-+	/* Release internal lock.  */
-+	LOCK
-+#if cond_lock == 0
-+	decl	(%rdi)
-+#else
-+	decl	cond_lock(%rdi)
-+#endif
-+	jz	93f
-+
-+#if cond_lock != 0
-+	addq	$cond_lock, %rdi
-+#endif
-+	cmpq	$-1, dep_mutex-cond_lock(%rdi)
-+	movl	$LLL_PRIVATE, %eax
-+	movl	$LLL_SHARED, %esi
-+	cmovne	%eax, %esi
-+	/* The call preserves %rdx.  */
-+	callq	__lll_unlock_wake
-+#if cond_lock != 0
-+	subq	$cond_lock, %rdi
-+#endif
-+93:
-+	/* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
-+	xorq	%r10, %r10
-+	movq	dep_mutex(%rdi), %r8
-+	leaq	cond_futex(%rdi), %rdi
-+	jmp	90b
-+.LcleanupEND2:
-+
- 	.size	__pthread_cond_wait, .-__pthread_cond_wait
- versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
- 		  GLIBC_2_3_2)
-@@ -476,11 +544,15 @@ __condvar_cleanup1:
- 	.uleb128 .LcleanupSTART-.LSTARTCODE
- 	.uleb128 .LcleanupEND-.LcleanupSTART
- 	.uleb128 __condvar_cleanup1-.LSTARTCODE
--	.uleb128  0
-+	.uleb128 0
-+	.uleb128 .LcleanupSTART2-.LSTARTCODE
-+	.uleb128 .LcleanupEND2-.LcleanupSTART2
-+	.uleb128 __condvar_cleanup1-.LSTARTCODE
-+	.uleb128 0
- 	.uleb128 .LcallUR-.LSTARTCODE
- 	.uleb128 .LENDCODE-.LcallUR
- 	.uleb128 0
--	.uleb128  0
-+	.uleb128 0
- .Lcstend:
- 
- 

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2011-12-13 22:32:25 UTC (rev 5080)
+++ glibc-package/trunk/debian/patches/series	2011-12-13 22:40:39 UTC (rev 5081)
@@ -76,7 +76,6 @@
 amd64/cvs-pthread-stack-alignment.diff
 amd64/cvs-avx-detection.diff
 amd64/cvs-dl_trampoline-cfi.diff
-amd64/cvs-pthread_cond_wait.diff
 
 arm/local-atomic.diff
 arm/local-eabi-wchar.diff

Added: glibc-package/trunk/debian/rules.d/stage1.mk
===================================================================
--- glibc-package/trunk/debian/rules.d/stage1.mk	                        (rev 0)
+++ glibc-package/trunk/debian/rules.d/stage1.mk	2011-12-13 22:40:39 UTC (rev 5081)
@@ -0,0 +1,71 @@
+## This reuses various macros from the debian/rules.d/build.mk file
+
+ifeq ($(DEB_STAGE),stage1)
+
+override EGLIBC_PASSES = libc
+override DEB_ARCH_REGULAR_PACKAGES = $(libc)-dev
+override DEB_INDEP_REGULAR_PACKAGES =
+override DEB_UDEB_PACKAGES =
+
+## Development libraries we need to fake
+stage1_libfake.so :=		\
+	libc.so
+
+stage1_libfake.a :=		\
+	libanl.a		\
+	libBrokenLocale.a	\
+	libbsd-compat.a		\
+	libc.a			\
+	libc_nonshared.a	\
+	libcrypt.a		\
+	libdl.a			\
+	libg.a			\
+	libieee.a		\
+	libm.a			\
+	libmcheck.a		\
+	libnsl.a		\
+	libpthread.a		\
+	libpthread_nonshared.a	\
+	libresolv.a		\
+	librpcsvc.a		\
+	librt.a			\
+	libutil.a		\
+
+$(stamp)build_libc: $(stamp)configure_libc
+	@echo Building $(curpass)
+	@## Build the crtX.o init routines
+	$(call logme, -a $(log_build), $(MAKE) -C $(DEB_BUILDDIR) $(NJOBS) csu/subdir_lib)
+	$(call logme, -a $(log_build), $(AR) qcs $(DEB_BUILDDIR)/libfake.a)
+	$(call logme, -a $(log_build), $(CC) -nostdlib -nostartfiles -shared \
+				-o $(DEB_BUILDDIR)/libfake.so $(DEB_BUILDDIR)/libfake.a)
+	$(call logme, -a $(log_build), echo "---------------" ; echo -n "Build ended: " ; date --rfc-2822)
+	touch $@
+
+$(stamp)check_libc: $(stamp)build_libc
+	@echo Nothing to test for $(curpass)
+	touch $@
+
+$(stamp)install_libc: DESTDIR=$(CURDIR)/debian/tmp-$(curpass)
+$(stamp)install_libc: $(stamp)check_libc
+	@echo Installing $(curpass)
+	rm -rf $(CURDIR)/debian/tmp-$(curpass)
+	## These libc/ld-linux binaries are total garbage, but they allow
+	## a subsequent stage2 GCC build to succeed.
+	install -d $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)
+	for lib_a in $(stage1_libfake.a); do \
+		install -T $(DEB_BUILDDIR)/libfake.a $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/$$lib_a; \
+	done
+	for lib_so in $(stage1_libfake.so); do \
+		install -T $(DEB_BUILDDIR)/libfake.so $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/$$lib_so; \
+	done
+	$(MAKE) -C $(DEB_BUILDDIR) install_root=$(DESTDIR) install-bootstrap-headers=yes \
+		csu/subdir_install install-headers
+	mkdir -p $(DESTDIR)/usr/include/$(DEB_HOST_MULTIARCH)
+	mv $(DESTDIR)/usr/include/bits          $(DESTDIR)/usr/include/$(DEB_HOST_MULTIARCH)
+	mv $(DESTDIR)/usr/include/gnu           $(DESTDIR)/usr/include/$(DEB_HOST_MULTIARCH)
+	mv $(DESTDIR)/usr/include/sys           $(DESTDIR)/usr/include/$(DEB_HOST_MULTIARCH)
+	mv $(DESTDIR)/usr/include/fpu_control.h $(DESTDIR)/usr/include/$(DEB_HOST_MULTIARCH)
+	$(call xx,extra_install)
+	touch $@
+
+endif


Reply to: