aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Weinberg <zack@codesourcery.com>2003-04-07 05:34:50 +0000
committerZack Weinberg <zack@gcc.gnu.org>2003-04-07 05:34:50 +0000
commit48a793425564864709adb3f51c7d503a865610c5 (patch)
tree0361b2af41a7132d6b83861c4332b0bf13b04977
parentd2a6f3c03ee1da2110de65370db171f1548d6d66 (diff)
downloadgcc-48a793425564864709adb3f51c7d503a865610c5.zip
gcc-48a793425564864709adb3f51c7d503a865610c5.tar.gz
gcc-48a793425564864709adb3f51c7d503a865610c5.tar.bz2
mklibgcc.in: Use a here document to avoid running afoul of shells that generate control-A...
* mklibgcc.in: Use a here document to avoid running afoul of shells that generate control-A from "echo \1". From-SVN: r65321
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/mklibgcc.in21
2 files changed, 19 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca20918..0b7d329 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-06 Zack Weinberg <zack@codesourcery.com>
+
+ * mklibgcc.in: Use a here document to avoid running afoul of
+ shells that generate control-A from "echo \1".
+
2003-04-06 Aldy Hernandez <aldyh@redhat.com>
* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
index 3a492da..1abb3a0 100644
--- a/gcc/mklibgcc.in
+++ b/gcc/mklibgcc.in
@@ -311,13 +311,20 @@ for ml in $MULTILIBS; do
if [ "$SHLIB_LINK" -a "$SHLIB_MKMAP" ]; then
mapfile="libgcc/${dir}/libgcc.map"
tmpmapfile="libgcc/${dir}/tmp-libgcc.map"
- echo ""
- echo "${mapfile}: $SHLIB_MKMAP $SHLIB_MAPFILES $libgcc_sh_objs"
- echo ' { $(NM_FOR_TARGET)'" $SHLIB_NM_FLAGS $libgcc_sh_objs; echo %%; \\"
- echo " cat $SHLIB_MAPFILES | sed -e "'"/^[ ]*#/d" -e '\''s/^%\(if\|else\|elif\|endif\|define\)/#\1/'\'" \\"
- echo " | $gcc_compile $flags -E -xassembler-with-cpp -; \\"
- echo ' } | $(AWK)'" -f $SHLIB_MKMAP $SHLIB_MKMAP_OPTS > ${tmpmapfile}"
- echo ' mv '"$tmpmapfile"' $@'
+ # This uses a here document instead of echos because some shells
+ # will convert the \1 in the second sed command to a control-A.
+ # The behavior of here documents is more predictable.
+ cat <<EOF
+
+${mapfile}: $SHLIB_MKMAP $SHLIB_MAPFILES $libgcc_sh_objs
+ { \$(NM_FOR_TARGET) $SHLIB_NM_FLAGS $libgcc_sh_objs; echo %%; \\
+ cat $SHLIB_MAPFILES \\
+ | sed -e '/^[ ]*#/d' \\
+ -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \\
+ | $gcc_compile $flags -E -xassembler-with-cpp -; \\
+ } | \$(AWK) -f $SHLIB_MKMAP $SHLIB_MKMAP_OPTS > ${tmpmapfile}
+ mv '$tmpmapfile' \$@
+EOF
fi
shlib_deps="$shlib_deps $mapfile"