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

[glibc] 01/01: Fix link of i686 build.



This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch sid
in repository glibc.

commit 9c7932a331e26c8c7c420268d6d1af462393b416
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun May 29 23:31:00 2016 +0000

    Fix link of i686 build.
    
    patches/hurd-i386/cvs-i686-link.diff: Fix link of i686 build.
    sysdeps/hurd-i386.mk: Re-enable xen build.
---
 debian/changelog                            |  4 +--
 debian/patches/hurd-i386/cvs-i686-link.diff | 27 +++++++++++++++++++
 debian/patches/series                       |  1 +
 debian/sysdeps/hurd-i386.mk                 | 41 +++++++++--------------------
 4 files changed, 43 insertions(+), 30 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 5c35aa3..e5f5901 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,8 +6,8 @@ glibc (2.22-10) UNRELEASED; urgency=medium
     Closes: #824127.
 
   [ Samuel Thibault ]
-  * debian/sysdeps/hurd-i386.mk: Work around binutils bug with ifunc relocation
-    assertion.
+  * patches/hurd-i386/cvs-i686-link.diff: Fix link of i686 build.
+  * sysdeps/hurd-i386.mk: Re-enable xen build.
 
  -- Aurelien Jarno <aurel32@debian.org>  Thu, 12 May 2016 18:06:35 +0200
 
diff --git a/debian/patches/hurd-i386/cvs-i686-link.diff b/debian/patches/hurd-i386/cvs-i686-link.diff
new file mode 100644
index 0000000..8392d3a
--- /dev/null
+++ b/debian/patches/hurd-i386/cvs-i686-link.diff
@@ -0,0 +1,27 @@
+commit 3904414a3008751ffcaf18fbe33bd34812b7bfe5
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date:   Mon May 30 01:24:09 2016 +0200
+
+    hurd: fix _hurd_self_sigstate reference from ____longjmp_chk
+    
+    	* sysdeps/mach/hurd/i386/____longjmp_chk.S (____longjmp_chk) [PIC]:
+    	  Use PLT entry for calling _hurd_self_sigstate.
+
+diff --git a/sysdeps/mach/hurd/i386/____longjmp_chk.S b/sysdeps/mach/hurd/i386/____longjmp_chk.S
+index 4ddf6cd..dec8ea7 100644
+--- a/sysdeps/mach/hurd/i386/____longjmp_chk.S
++++ b/sysdeps/mach/hurd/i386/____longjmp_chk.S
+@@ -66,7 +66,12 @@ ENTRY (____longjmp_chk)
+ 
+ 	/* TODO: need locking?  */
+ 	/* struct hurd_sigstate * _hurd_self_sigstate (void) */
+-	call	_hurd_self_sigstate
++#ifdef PIC
++	call    1f
++1:	popl    %ebx
++	addl    $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
++#endif
++	call	JUMPTARGET(_hurd_self_sigstate)
+ 	/* TODO: %eax and %eax->sigaltstack are always valid?  */
+ 
+ 	testl	$SS_ONSTACK, (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_FLAGS__OFFSET)(%eax)
diff --git a/debian/patches/series b/debian/patches/series
index bc30ebc..2927e3f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -156,6 +156,7 @@ hurd-i386/cvs-auxv.diff
 #hurd-i386/submitted-anon-mmap-shared.diff
 hurd-i386/cvs-gprof-tick.diff
 hurd-i386/cvs-IPV6_PKTINFO.diff
+hurd-i386/cvs-i686-link.diff
 
 i386/local-biarch.diff
 i386/local-cmov.diff
diff --git a/debian/sysdeps/hurd-i386.mk b/debian/sysdeps/hurd-i386.mk
index 47e34df..abb0820 100644
--- a/debian/sysdeps/hurd-i386.mk
+++ b/debian/sysdeps/hurd-i386.mk
@@ -1,29 +1,14 @@
-## We use -mno-tls-direct-seg-refs to not wrap-around segments, as it
-## greatly increase the speed when running under the 32bit Xen hypervisor.
-#GLIBC_PASSES += xen
-#DEB_ARCH_REGULAR_PACKAGES += libc0.3-xen
-#xen_extra_cflags = -mno-tls-direct-seg-refs
-#xen_slibdir = /lib/$(DEB_HOST_MULTIARCH)/i686/nosegneg
-#
-#ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
-#define libc0.3-dev_extra_pkg_install
-#mkdir -p debian/libc0.3-dev/$(libdir)/xen
-#cp -af debian/tmp-xen/$(libdir)/*.a \
-#	debian/libc0.3-dev/$(libdir)/xen
-#endef
-#endif
+# We use -mno-tls-direct-seg-refs to not wrap-around segments, as it
+# greatly increase the speed when running under the 32bit Xen hypervisor.
+GLIBC_PASSES += xen
+DEB_ARCH_REGULAR_PACKAGES += libc0.3-xen
+xen_extra_cflags = -mno-tls-direct-seg-refs
+xen_slibdir = /lib/$(DEB_HOST_MULTIARCH)/i686/nosegneg
 
-# FIXME: We are having linking issues with ifunc...
-#
-# when linking libc_pic.os into libc.so:
-# /usr/bin/ld: /tmp/glibc-2.22/build-tree/hurd-i386-libc/libc_pic.os: warning: relocation against `_hurd_self_sigstate' in readonly section `.text'
-# /usr/bin/ld: read-only segment has dynamic IFUNC relocations; recompile with -fPIC
-# /usr/bin/ld: failed to set dynamic section sizes: Bad value
-# See
-# https://sourceware.org/bugzilla/show_bug.cgi?id=18801
-# https://sourceware.org/ml/libc-alpha/2016-05/msg00686.html
-# https://sourceware.org/bugzilla/show_bug.cgi?id=19939
-# supposed to be fixed in binutils 2.27
-#
-# For now we are just disabling ifunc:
-export libc_cv_ld_gnu_indirect_function=no
+ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
+define libc0.3-dev_extra_pkg_install
+mkdir -p debian/libc0.3-dev/$(libdir)/xen
+cp -af debian/tmp-xen/$(libdir)/*.a \
+	debian/libc0.3-dev/$(libdir)/xen
+endef
+endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git


Reply to: