]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Work around Solaris bourne shell limitation when building the sim
authorJoel Brobecker <brobecker@gnat.com>
Mon, 19 Dec 2011 04:33:39 +0000 (04:33 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Mon, 19 Dec 2011 04:33:39 +0000 (04:33 +0000)
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

index c69b94864b8220e5af5c5b96b1fa03a07c431b2e..b2b8b639f9b2bb96e3c8e26e18f9e31281aa555b 100644 (file)
@@ -1,3 +1,8 @@
+2011-12-19  Joel Brobecker  <brobecker@adacore.com>
+
+       * Make-common.in (hw-config.h): Work around bug in Solaris 2.8
+       system bourne shell.
+
 2011-12-03  Mike Frysinger  <vapier@gentoo.org>
 
        * syscall.c (cb_get_string): Rename from "get_string".
index c12d155d6b288b60124e2fb7c4b89d7a6cc45634..606e59538aa3f8f2a1487f915e952a8cdf61b649 100644 (file)
@@ -462,11 +462,13 @@ sim-inline.c: $(srccom)/sim-inline.c
 hw-config.h: Makefile.in $(srccom)/Make-common.in config.status Makefile
        rm -f tmp-hw.h
        echo "/* generated by Makefile */" > tmp-hw.h
-       for hw in $(SIM_HW) ; do \
+       sim_hw="$(SIM_HW)"; \
+       for hw in $$sim_hw ; do \
          echo "extern const struct hw_descriptor dv_$${hw}_descriptor[];" ; \
        done >> tmp-hw.h
        echo "const struct hw_descriptor *hw_descriptors[] = {" >> tmp-hw.h
-       for hw in $(SIM_HW) ; do \
+       sim_hw="$(SIM_HW)"; \
+       for hw in $$sim_hw ; do \
          echo "  dv_$${hw}_descriptor," ; \
        done >> tmp-hw.h
        echo "  NULL," >> tmp-hw.h