diff options
author | Zack Weinberg <zack@codesourcery.com> | 2003-04-07 05:34:50 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2003-04-07 05:34:50 +0000 |
commit | 48a793425564864709adb3f51c7d503a865610c5 (patch) | |
tree | 0361b2af41a7132d6b83861c4332b0bf13b04977 | |
parent | d2a6f3c03ee1da2110de65370db171f1548d6d66 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/mklibgcc.in | 21 |
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" |