Skip to content

Commit

Permalink
Fix non-portable echo usage in sysdeps/unix/make-syscalls.sh
Browse files Browse the repository at this point in the history
This patch changes the way make-syscall-sh script uses echo to follow
POSIX spec.
  • Loading branch information
Adhemerval Zanella committed May 14, 2015
1 parent 5695d46 commit 95b07fb
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2015-05-14 Jakub Bogusz <qboosh@pld-linux.org>
Adhemerval Zanella <adhemerval.zanella@linaro.org>

* sysdeps/unix/make-syscalls.sh: Remove non-portable echo usage.

2015-05-14 Andrew Senkevich <andrew.senkevich@intel.com>

* Makeconfig (rpath-dirs, all-subdirs): Added mathvec folder.
Expand Down
23 changes: 14 additions & 9 deletions sysdeps/unix/make-syscalls.sh
Original file line number Diff line number Diff line change
Expand Up @@ -272,28 +272,33 @@ while read file srcfile caller syscall args strong weak; do
vdso_symbol="${vdso_syscall%@*}"
vdso_symver="${vdso_syscall#*@}"
vdso_symver=`echo "$vdso_symver" | sed 's/\./_/g'`
echo "\
cat <<EOF
\$(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 '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 ' return _dl_vdso_vsym ("${vdso_symbol}", &symver);'; \\
echo '}'; \\
echo '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}\");'; \\"
cat <<EOF
echo 'asm (".globl __GI_${strong}");'; \\
echo 'asm ("__GI_${strong} = ${strong}");'; \\
EOF
emit_weak_aliases
echo ' ) | $(compile-stdin.c) '"\
\$(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
Expand Down

0 comments on commit 95b07fb

Please sign in to comment.