OSDN Git Service

Work around Solaris bourne shell limitation when building the sim
authorbrobecke <brobecke>
Mon, 19 Dec 2011 04:33:38 +0000 (04:33 +0000)
committerbrobecke <brobecke>
Mon, 19 Dec 2011 04:33:38 +0000 (04:33 +0000)
commitaa5252c661a052cf5fd11d00613f24345756c346
treed4e428cf5d93eac5ce33241c4b4053114f6e4811
parent1b3c649efbf988adecc5aae670430ade7470300c
Work around Solaris bourne shell limitation when building the sim

Building the sim on a sparc-solaris 2.8 machine fails when configured
with no extra sim hardware:

> for hw in  ; do \
>         echo "extern const struct hw_descriptor
>         dv_${hw}_descriptor[];" ; \
>       done >> tmp-hw.h
> echo 'const char version[] = "'"`sed q
> /[...]/../../gdb/version.in`"'";'
> >> version.c-tmp
> /bin/sh: -c: line 1: syntax error near unexpected token `;'
> /bin/sh: -c: line 1: `for hw in  ; do \'
> make[3]: *** [hw-config.h] Error 2

The same thing happens with the version of bash that we got from
Sun as well (which is very old: 2.03.0(1)-release).

The problems comes from the fact that both shells are buggy, and
reject the following script:

    for hw in ; do
      [...]
    done

The above is what sim/common/Makefile.in tries to execute when
generating hw-config.h.

In order to allow users to build out of the box on these machines,
this patch works around this bug.  It does rely on the fact that
none of the tokens in SIM_HW contain whitespaces.

sim/common/ChangeLog:

        * Make-common.in (hw-config.h): Work around bug in Solaris 2.8
        system bourne shell.
sim/common/ChangeLog
sim/common/Make-common.in