From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18150 invoked by alias); 5 Jan 2014 19:22:08 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 32233 Received: (qmail 20032 invoked from network); 5 Jan 2014 19:22:03 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 From: Bart Schaefer Message-id: <140105112141.ZM10617@torch.brasslantern.com> Date: Sun, 05 Jan 2014 11:21:41 -0800 In-reply-to: <2299435.9BvXCX229r@knossos> Comments: In reply to Kete "mkmakemod.sh 2nd stage build failure" (Jan 4, 9:21pm) References: <2299435.9BvXCX229r@knossos> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: Kete , zsh-workers@zsh.org Subject: Re: mkmakemod.sh 2nd stage build failure MIME-version: 1.0 Content-type: text/plain; charset=us-ascii On Jan 4, 9:21pm, Kete wrote: } Subject: mkmakemod.sh 2nd stage build failure } } Hello, } I am trying to build Zsh for an emerging package manager named Guix, } but the build failed at the second stage of mkmakemod.sh when it tried } to use /bin/sh. I see I can disable the 2nd stage with an -i option. } What are the consequences of disabling the second stage? The -m and -i options of mkmakemod.sh are used by different parts of the build process (see Src/Makemod.in.in) -- they aren't intended for the caller of the build process to change it. The second stage has to be done at least once during the build, it can't be avoided entirely. } creating Src/Makemod.in } Src/../Src/mkmakemod.sh: line 467: /bin/sh: No such file or directory } Makefile:299: recipe for target 'Makemod' failed } make[1]: *** [Makemod] Error 1 } } Here are lines 464-470 of mkmakemod.sh: } } if $second_stage ; then } trap "rm -f $the_subdir/${the_makefile}; exit 1" 1 2 15 } } ${CONFIG_SHELL-/bin/sh} ./config.status \ } --file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in || } exit 1 } fi Your better option here is to export a value for CONFIG_SHELL into the environment before starting the build. There must be *some* shell that is executing mkmakemod.sh itself; you just need set CONFIG_SHELL to that path. (We can't guarantee that $SHELL is suitable.)