Although working with bash, 'echo -n' is really non-portable.
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jul 07 21:25:57 2008 +0000 (2008-07-07)
changeset 642887ce0523903
parent 641 c20c96f8e999
child 643 a8d422b20733
Although working with bash, 'echo -n' is really non-portable.
Get rid of this by using printf(1) with no trailing new-line (\n).
Again, thanks to Martin GUY, who pointed this issue.

/trunk/kconfig/kconfig.mk | 2 1 1 0
/trunk/scripts/build/libc_uClibc.sh | 4 3 1 0 ++
/trunk/scripts/showSamples.sh | 78 39 39 0 +++++++++++++++++++++---------------------
3 files changed, 43 insertions(+), 41 deletions(-)
kconfig/kconfig.mk
scripts/build/libc_uClibc.sh
scripts/showSamples.sh
     1.1 --- a/kconfig/kconfig.mk	Mon Jul 07 21:22:25 2008 +0000
     1.2 +++ b/kconfig/kconfig.mk	Mon Jul 07 21:25:57 2008 +0000
     1.3 @@ -43,7 +43,7 @@
     1.4  	  for arch in $(ARCHS); do                                                  \
     1.5  	    echo "config ARCH_$${arch}";                                            \
     1.6  	    echo "    bool";                                                        \
     1.7 -	    echo -n "    prompt \"$${arch}";                                        \
     1.8 +	    printf "    prompt \"$${arch}";                                         \
     1.9  	    if [ -f $(CT_LIB_DIR)/arch/$${arch}/experimental ]; then                \
    1.10  	      echo " (EXPERIMENTAL)\"";                                             \
    1.11  	      echo "    depends on EXPERIMENTAL";                                   \
     2.1 --- a/scripts/build/libc_uClibc.sh	Mon Jul 07 21:22:25 2008 +0000
     2.2 +++ b/scripts/build/libc_uClibc.sh	Mon Jul 07 21:25:57 2008 +0000
     2.3 @@ -154,7 +154,9 @@
     2.4      dst_config_file="$2"
     2.5      munge_file="${CT_BUILD_DIR}/munge-uClibc-config.sed"
     2.6  
     2.7 -    echo -n >"${munge_file}"
     2.8 +    # Start with a fresh file
     2.9 +    rm -f "${munge_file}"
    2.10 +    touch "${munge_file}"
    2.11  
    2.12      # Hack our target in the config file.
    2.13      # Also remove stripping: its the responsibility of the
     3.1 --- a/scripts/showSamples.sh	Mon Jul 07 21:22:25 2008 +0000
     3.2 +++ b/scripts/showSamples.sh	Mon Jul 07 21:25:57 2008 +0000
     3.3 @@ -31,46 +31,46 @@
     3.4          if [ ${verbose} -ne 0 ]; then
     3.5              echo    "    OS        : ${CT_KERNEL}-${CT_KERNEL_VERSION}"
     3.6              echo    "    binutils  : binutils-${CT_BINUTILS_VERSION}"
     3.7 -            echo -n "    C compiler: ${CT_CC}-${CT_CC_VERSION} (C"
     3.8 -            [ "${CT_CC_LANG_CXX}" = "y"     ] && echo -n ",C++"
     3.9 -            [ "${CT_CC_LANG_FORTRAN}" = "y" ] && echo -n ",Fortran"
    3.10 -            [ "${CT_CC_LANG_JAVA}" = "y"    ] && echo -n ",Java"
    3.11 -            [ "${CT_CC_LANG_ADA}" = "y"     ] && echo -n ",ADA"
    3.12 -            [ "${CT_CC_LANG_OBJC}" = "y"    ] && echo -n ",Objective-C"
    3.13 -            [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && echo -n ",Objective-C++"
    3.14 -            [ -n "${CT_CC_LANG_OTHERS}"     ] && echo -n ",$CT_CC_LANG_OTHERS}"
    3.15 +            printf  "    C compiler: ${CT_CC}-${CT_CC_VERSION} (C"
    3.16 +            [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ",C++"
    3.17 +            [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
    3.18 +            [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ",Java"
    3.19 +            [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ",ADA"
    3.20 +            [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ",Objective-C"
    3.21 +            [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ",Objective-C++"
    3.22 +            [ -n "${CT_CC_LANG_OTHERS}"     ] && printf ",$CT_CC_LANG_OTHERS}"
    3.23              echo    ")"
    3.24              echo    "    C library : ${CT_LIBC}-${CT_LIBC_VERSION}"
    3.25 -            echo -n "    Tools     :"
    3.26 -            [ "${CT_LIBELF}"  ] && echo -n " libelf-${CT_LIBELF_VERSION}"
    3.27 -            [ "${CT_SSTRIP}"  ] && echo -n " sstrip"
    3.28 -            [ "${CT_DMALLOC}" ] && echo -n " dmalloc-${CT_DMALLOC_VERSION}"
    3.29 -            [ "${CT_DUMA}"    ] && echo -n " duma-${CT_DUMA_VERSION}"
    3.30 -            [ "${CT_GDB}"     ] && echo -n " gdb-${CT_GDB_VERSION}"
    3.31 -            [ "${CT_LTRACE}"  ] && echo -n " ltrace-${CT_LTRACE_VERSION}"
    3.32 -            [ "${CT_STRACE}"  ] && echo -n " strace-${CT_STRACE_VERSION}"
    3.33 +            printf  "    Tools     :"
    3.34 +            [ "${CT_LIBELF}"  ] && printf " libelf-${CT_LIBELF_VERSION}"
    3.35 +            [ "${CT_SSTRIP}"  ] && printf " sstrip"
    3.36 +            [ "${CT_DMALLOC}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
    3.37 +            [ "${CT_DUMA}"    ] && printf " duma-${CT_DUMA_VERSION}"
    3.38 +            [ "${CT_GDB}"     ] && printf " gdb-${CT_GDB_VERSION}"
    3.39 +            [ "${CT_LTRACE}"  ] && printf " ltrace-${CT_LTRACE_VERSION}"
    3.40 +            [ "${CT_STRACE}"  ] && printf " strace-${CT_STRACE_VERSION}"
    3.41              echo
    3.42          fi
    3.43      else
    3.44 -        echo -n "| ''${sample}''  "
    3.45 -        echo -n "|  ${CT_KERNEL_VERSION}  "
    3.46 -        echo -n "|  ${CT_BINUTILS_VERSION}  "
    3.47 -        echo -n "|  ${CT_CC_VERSION}  "
    3.48 -        echo -n "|  ''${CT_LIBC}''  "
    3.49 -        echo -n "|  ${CT_LIBC_VERSION}  "
    3.50 -        echo -n "|  ${CT_THREADS_NPTL:+NPTL}${CT_THREADS_LINUXTHREADS:+linuxthreads}${CT_THREADS_NONE:+none}  "
    3.51 -        echo -n "|  ${CT_ARCH_FLOAT_HW:+hard}${CT_ARCH_FLOAT_SW:+soft} float  "
    3.52 -        echo -n "|  "
    3.53 +        printf "| ''${sample}''  "
    3.54 +        printf "|  ${CT_KERNEL_VERSION}  "
    3.55 +        printf "|  ${CT_BINUTILS_VERSION}  "
    3.56 +        printf "|  ${CT_CC_VERSION}  "
    3.57 +        printf "|  ''${CT_LIBC}''  "
    3.58 +        printf "|  ${CT_LIBC_VERSION}  "
    3.59 +        printf "|  ${CT_THREADS_NPTL:+NPTL}${CT_THREADS_LINUXTHREADS:+linuxthreads}${CT_THREADS_NONE:+none}  "
    3.60 +        printf "|  ${CT_ARCH_FLOAT_HW:+hard}${CT_ARCH_FLOAT_SW:+soft} float  "
    3.61 +        printf "|  "
    3.62          if [ -f "${sample_top}/samples/${sample}/reported.by" ]; then
    3.63              ( . "${sample_top}/samples/${sample}/reported.by"
    3.64                if [ -n "${reporter_url}" ]; then
    3.65 -                  echo -n "|  [[${reporter_url}|${reporter_name}]]  "
    3.66 +                  printf "|  [[${reporter_url}|${reporter_name}]]  "
    3.67                else
    3.68 -                  echo -n "|  ${reporter_name}  "
    3.69 +                  printf "|  ${reporter_name}  "
    3.70                fi
    3.71              )
    3.72          else
    3.73 -            echo -n "|  [[http://ymorin.is-a-geek.org/|YEM]]  "
    3.74 +            printf "|  [[http://ymorin.is-a-geek.org/|YEM]]  "
    3.75          fi
    3.76          echo "|"
    3.77      fi
    3.78 @@ -84,17 +84,17 @@
    3.79  
    3.80  if [ "${opt}" = -w ]; then
    3.81      echo "^ $(date +%Y%m%d.%H%M) ^ |||||||||"
    3.82 -    echo -n "^ Target "
    3.83 -    echo -n "^  kernel headers\\\\ version  "
    3.84 -    echo -n "^  binutils version  "
    3.85 -    echo -n "^  gcc version  "
    3.86 -    echo -n "^  libc  "
    3.87 -    echo -n "^  libc version  "
    3.88 -    echo -n "^  threading model  "
    3.89 -    echo -n "^  float support  "
    3.90 -    echo -n "^  Misc  "
    3.91 -    echo -n "^  Reported by  "
    3.92 -    echo    "^"
    3.93 +    printf "^ Target "
    3.94 +    printf "^  kernel headers\\\\ version  "
    3.95 +    printf "^  binutils version  "
    3.96 +    printf "^  gcc version  "
    3.97 +    printf "^  libc  "
    3.98 +    printf "^  libc version  "
    3.99 +    printf "^  threading model  "
   3.100 +    printf "^  float support  "
   3.101 +    printf "^  Misc  "
   3.102 +    printf "^  Reported by  "
   3.103 +    echo   "^"
   3.104  fi
   3.105  for sample in "${@}"; do
   3.106      ( dump_single_sample ${opt} ${width} "${sample}" )