bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Messed up gl_COMPILER_PREPARE_CHECK_DECL


From: Paul Eggert
Subject: Re: Messed up gl_COMPILER_PREPARE_CHECK_DECL
Date: Fri, 10 Jan 2020 17:32:51 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1

On 1/10/20 2:47 PM, Bruno Haible wrote:
Thanks for the simple-to-reproduce recipe. I've pushed this fix:

Unfortunately even with that fix I still have trouble building Emacs. That is, with this recipe:

mkdir d
cd d
git clone https://git.savannah.gnu.org/git/emacs.git
cd emacs
admin/merge-gnulib
./autogen.sh
./configure
make

(same recipe as before, but now with "configure; make" at the end) the build now fails this way:

  CC       strtoimax.o
strtoimax.c:44:15: error: redundant redeclaration of ‘strtoll’ [-Werror=redundant-decls]
   44 | long long int strtoll (char const *, char **, int);
      |               ^~~~~~~
In file included from ./stdlib.h:36,
                 from strtoimax.c:26:
/usr/include/stdlib.h:200:22: note: previous declaration of ‘strtoll’ was here
  200 | extern long long int strtoll (const char *__restrict __nptr,
      |                      ^~~~~~~
make[1]: *** [Makefile:95: strtoimax.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/eggert/src/gnu/emacs/static-checking/lib'
make: *** [Makefile:411: lib] Error 2


The above diagnostic comes because src/config.h contains the line "#define HAVE_DECL_STRTOLL 0" which is incorrect for this platform. And that incorrect line comes because ac_compile_for_check_decl is used before it is set. And this occurs because Emacs's configure.ac's first use of AC_CHECK_DECL is executed only on alpha platforms (which my platform is not), which means the initialization of ac_compile_for_check_decl is skipped.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]