Subject: bug#63067: closed (Re: bug#63067: 30.0.50; configure prints error with CONFIG_SHELL=/bin/sh)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 27 Apr 2023 10:55:02 +0000

Your bug report

#63067: 30.0.50; configure prints error with CONFIG_SHELL=/bin/sh

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
63067: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63067
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#63067: 30.0.50; configure prints error with CONFIG_SHELL=/bin/sh
From: Po Lu <[email-masked]>
To: Paul Eggert <[email-masked]>
Cc: [email-masked]
Date: Thu, 27 Apr 2023 18:54:43 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Paul Eggert <[email-masked]> writes:

> My suggestion is to not worry about /bin/sh there. I.e., just run:
>
>   ./configure CC="/opt/SUNwspro/bin/cc -m64"
>
> and let 'configure' re-exec itself with a better shell. Or, if you'd
> rather pick the shell yourself, choose /bin/bash or /bin/ksh or
> /usr/xpg4/bin/sh instead of /bin/sh. The idea is to not bother testing
> with Solaris 10 /bin/sh as there's not much point nowadays to forcing
> execution of that ancient non-POSIX shell when configuring Emacs.

OK, but I still find it nicer for configure to work with any shell
supported by Autoconf.  So please don't object if I continue to fix
problems in configure as they appear.

Since this will be fixed the next time Gnulib is merged, I'm closing
this bug.

Subject: 30.0.50; configure prints error with CONFIG_SHELL=/bin/sh
From: Po Lu <[email-masked]>
To: [email-masked]
Date: Tue, 25 Apr 2023 20:19:45 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

On a Solaris 10 system, run:

  % CONFIG_SHELL=/bin/sh ./configure CC="/opt/SUNwspro/bin/cc -m64"

this will result in several errors, which I've now fixed.  However,
configure then complains:

checking for variable-length arrays... yes
./configure: !: not found
./configure: !: not found
./configure: !: not found
./configure: !: not found
./configure: !: not found
./configure: !: not found

which seems to be harmless, but is probably a bug somewhere in gnulib.
The Autoconf manual says:

     Using ‘!’ is not portable.  Instead of:

          if ! cmp -s file file.new; then
            mv file.new file
          fi

     use:

          if cmp -s file file.new; then :; else
            mv file.new file
          fi

so this should not appear in configure:

  func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b ()
  {
    if ! $gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b; then

      gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b=true
      if case $host_os in mingw*) false;; *) :;; esac; then
        func_gl_gnulib_m4code_open
      fi
    fi
  }
  func_gl_gnulib_m4code_cloexec ()
  {
    if ! $gl_gnulib_enabled_cloexec; then

      gl_gnulib_enabled_cloexec=true
    fi
  }
  func_gl_gnulib_m4code_dirfd ()
  {
    if ! $gl_gnulib_enabled_dirfd; then