[packages/glibc] - remove unused and brokn cross-gcc_eh patch - workaround for broken echo in mksh (-e on by default)

baggins baggins at pld-linux.org
Sat Dec 20 23:32:01 CET 2014


commit d96a9968cb69a9c25fd1dc8c803fdc2ac371fc05
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sat Dec 20 23:32:09 2014 +0100

    - remove unused and brokn cross-gcc_eh patch
    - workaround for broken echo in mksh (-e on by default)
    - add x32 arch bits

 fix-broken-echo.patch    | 44 ++++++++++++++++++++++++++++++++++++++++++++
 glibc-cross-gcc_eh.patch | 18 ------------------
 glibc.spec               | 16 +++++++++-------
 3 files changed, 53 insertions(+), 25 deletions(-)
---
diff --git a/glibc.spec b/glibc.spec
index 7062bcd..35cf1f7 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -13,7 +13,7 @@
 %bcond_without	selinux		# without SELinux support (in nscd)
 %bcond_with	tests		# perform "make test"
 %bcond_without	localedb	# don't build localedb-all (is time consuming)
-%bcond_with	cross		# build using crossgcc (without libgcc_eh)
+%bcond_with	cross		# make a cross build, skip native programs
 %bcond_without	nss_crypt	# disable nss-crypt
 #
 %{!?min_kernel:%global		min_kernel	2.6.32}
@@ -76,7 +76,6 @@ Patch17:	%{name}-morelocales.patch
 Patch18:	%{name}-locale_fixes.patch
 Patch19:	%{name}-ZA_collate.patch
 Patch20:	%{name}-thread_start.patch
-Patch21:	%{name}-cross-gcc_eh.patch
 Patch22:	%{name}-with-stroke.patch
 Patch23:	%{name}-pt_pax.patch
 Patch25:	%{name}-cv_gnu89_inline.patch
@@ -88,7 +87,7 @@ Patch29:	%{name}-arm-alignment-fix.patch
 Patch30:	glibc-rh1124987.patch
 Patch31:	%{name}-origin.patch
 Patch32:	%{name}-Os-fail-workaround.patch
-
+Patch33:	fix-broken-echo.patch
 Patch38:	1055_all_glibc-resolv-dynamic.patch
 URL:		http://www.gnu.org/software/libc/
 %{?with_selinux:BuildRequires:	audit-libs-devel}
@@ -138,7 +137,7 @@ Conflicts:	poldek < 0.18.8-5
 Conflicts:	rc-scripts < 0.3.1-13
 Conflicts:	rpm < 4.1
 Conflicts:	xorg-driver-video-nvidia-libs < 1:295.33
-ExclusiveArch:	i486 i586 i686 pentium3 pentium4 athlon %{x8664} ia64 alpha s390 s390x sparc sparc64 sparcv9 ppc ppc64 armv5tel
+ExclusiveArch:	i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 ia64 alpha s390 s390x sparc sparc64 sparcv9 ppc ppc64 armv5tel
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 # avoid -s here (ld.so must not be stripped to allow any program debugging)
@@ -969,7 +968,6 @@ exit 1
 %patch18 -p1
 %patch19 -p1
 %patch20 -p1
-%{?with_cross:%patch21 -p1}
 %patch22 -p1
 %patch23 -p0
 
@@ -981,6 +979,7 @@ exit 1
 %patch30 -p1
 %patch31 -p1
 %patch32 -p1
+%patch33 -p1
 
 %patch38 -p1
 
@@ -1382,10 +1381,13 @@ fi
 %ifarch %{x8664}
 %attr(755,root,root) /%{_lib}/ld-linux-x86-64.so.2
 %endif
+%ifarch x32
+%attr(755,root,root) /%{_lib}/ld-linux-x32.so.2
+%endif
 %ifarch ppc64 s390x
 %attr(755,root,root) /%{_lib}/ld64.so.1
 %endif
-%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} ppc64 s390x %{arm}
+%ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} x32 ppc64 s390x %{arm}
 %attr(755,root,root) /%{_lib}/ld.so.1
 %endif
 %attr(755,root,root) /%{_lib}/libBrokenLocale-%{core_version}.so
@@ -1689,7 +1691,7 @@ fi
 %endif
 %{_libdir}/libpthread_nonshared.a
 %{_libdir}/librpcsvc.a
-%ifarch %{ix86} %{x8664} ppc ppc64 s390 s390x sparc sparcv9 sparc64
+%ifarch %{ix86} %{x8664} x32 ppc ppc64 s390 s390x sparc sparcv9 sparc64
 # ABI-dependent headers
 %{_includedir}/gnu/stubs-*.h
 %endif
diff --git a/fix-broken-echo.patch b/fix-broken-echo.patch
new file mode 100644
index 0000000..a29761c
--- /dev/null
+++ b/fix-broken-echo.patch
@@ -0,0 +1,44 @@
+--- glibc-2.20/sysdeps/unix/make-syscalls.sh.orig	2014-12-20 14:00:04.210261443 +0100
++++ glibc-2.20/sysdeps/unix/make-syscalls.sh	2014-12-20 14:01:10.059904705 +0100
+@@ -276,27 +276,27 @@
+     vdso_symbol="${vdso_syscall%@*}"
+     vdso_symver="${vdso_syscall#*@}"
+     vdso_symver=`echo "$vdso_symver" | sed 's/\./_/g'`
+-    echo "\
++    echo -E "\
+ \$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\
+ 		\$(..)sysdeps/unix/make-syscalls.sh\
+ 	\$(make-target-directory)
+-	(echo '#include <dl-vdso.h>'; \\
+-	 echo 'extern void *${strong}_ifunc (void) __asm (\"${strong}\");'; \\
+-	 echo 'void *'; \\
+-	 echo '${strong}_ifunc (void)'; \\
+-	 echo '{'; \\
+-	 echo '  PREPARE_VERSION_KNOWN (symver, ${vdso_symver});'; \\
+-	 echo '  return _dl_vdso_vsym (\"${vdso_symbol}\", &symver);'; \\
+-	 echo '}'; \\
+-	 echo 'asm (\".type ${strong}, %gnu_indirect_function\");'; \\"
++	(echo -E '#include <dl-vdso.h>'; \\
++	 echo -E 'extern void *${strong}_ifunc (void) __asm (\"${strong}\");'; \\
++	 echo -E 'void *'; \\
++	 echo -E '${strong}_ifunc (void)'; \\
++	 echo -E '{'; \\
++	 echo -E '  PREPARE_VERSION_KNOWN (symver, ${vdso_symver});'; \\
++	 echo -E '  return _dl_vdso_vsym (\"${vdso_symbol}\", &symver);'; \\
++	 echo -E '}'; \\
++	 echo -E 'asm (\".type ${strong}, %gnu_indirect_function\");'; \\"
+     # This is doing "libc_hidden_def (${strong})", but the compiler
+     # doesn't know that we've defined ${strong} in the same file, so
+     # we can't do it the normal way.
+-    echo "\
+-	 echo 'asm (\".globl __GI_${strong}\\n\"'; \\
+-	 echo '     \"__GI_${strong} = ${strong}\");'; \\"
++    echo -E "\
++	 echo -E 'asm (\".globl __GI_${strong}\\n\"'; \\
++	 echo -E '     \"__GI_${strong} = ${strong}\");'; \\"
+     emit_weak_aliases
+-    echo '	) | $(compile-stdin.c) '"\
++    echo -E '	) | $(compile-stdin.c) '"\
+ \$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))"
+   fi
+ 
diff --git a/glibc-cross-gcc_eh.patch b/glibc-cross-gcc_eh.patch
deleted file mode 100644
index a9979da..0000000
--- a/glibc-cross-gcc_eh.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- libc/Makeconfig.orig	2004-12-31 20:33:44.918457704 +0100
-+++ libc/Makeconfig	2004-12-31 20:55:54.452337832 +0100
-@@ -514,12 +514,12 @@
-   libunwind = -lunwind
- endif
- ifneq ($(have-as-needed),yes)
-- libgcc_eh := -lgcc_eh $(libunwind)
-+ libgcc_eh := $(libunwind)
- else
-  libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) $(libunwind) -Wl,--no-as-needed
- endif
- gnulib := -lgcc $(libgcc_eh)
--static-gnulib := -lgcc -lgcc_eh $(libunwind)
-+static-gnulib := -lgcc $(libunwind)
- libc.so-gnulib := -lgcc
- endif
- ifeq ($(elf),yes)
-
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/glibc.git/commitdiff/d96a9968cb69a9c25fd1dc8c803fdc2ac371fc05



More information about the pld-cvs-commit mailing list