[packages/glibc/portable-echo] - try to replace with portable syntax instead of working around unportable with another unportable

qboosh qboosh at pld-linux.org
Fri Jan 9 16:56:52 CET 2015


commit 7676e59d1fb26b0f177f56419b6ce314c7c2af6f
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Fri Jan 9 16:58:02 2015 +0100

    - try to replace with portable syntax instead of working around unportable with another unportable
      (verified to be accepted by compiler/assembler, no environment to perform complete build)

 fix-broken-echo.patch | 52 ++++++++++++++++++++++++++-------------------------
 1 file changed, 27 insertions(+), 25 deletions(-)
---
diff --git a/fix-broken-echo.patch b/fix-broken-echo.patch
index a29761c..fe0f3f4 100644
--- a/fix-broken-echo.patch
+++ b/fix-broken-echo.patch
@@ -1,44 +1,46 @@
---- 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 @@
+--- glibc-2.20/sysdeps/unix/make-syscalls.sh.orig	2014-09-07 10:09:09.000000000 +0200
++++ glibc-2.20/sysdeps/unix/make-syscalls.sh	2014-12-21 17:54:48.973388216 +0100
+@@ -276,28 +276,33 @@
      vdso_symbol="${vdso_syscall%@*}"
      vdso_symver="${vdso_syscall#*@}"
      vdso_symver=`echo "$vdso_symver" | sed 's/\./_/g'`
 -    echo "\
-+    echo -E "\
++    cat <<EOF
++
  \$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\
- 		\$(..)sysdeps/unix/make-syscalls.sh\
+-		\$(..)sysdeps/unix/make-syscalls.sh\
++		\$(..)sysdeps/unix/make-syscalls.sh
  	\$(make-target-directory)
--	(echo '#include <dl-vdso.h>'; \\
+ 	(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 '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 '  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\");'; \\"
++	 echo 'asm (".type ${strong}, %gnu_indirect_function");'; \\
++EOF
      # 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}\");'; \\"
++    cat <<EOF
++	 echo 'asm (".globl __GI_${strong}");'; \\
++	 echo 'asm ("__GI_${strong} = ${strong}");'; \\
++EOF
      emit_weak_aliases
 -    echo '	) | $(compile-stdin.c) '"\
-+    echo -E '	) | $(compile-stdin.c) '"\
- \$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))"
+-\$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))"
++    cat <<EOF
++	) | \$(compile-stdin.c) \
++\$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))
++EOF
    fi
  
+   if test $shared_only = t; then
================================================================

---- gitweb:

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



More information about the pld-cvs-commit mailing list