https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/ Issue: app-editors/emacs-28.3_rc1 has implicit function declarations in configure logs. Discovered on: amd64 (internal ref: tinderbox_musl) NOTE: (MUSL-CLANG-SYSTEM) in the summary means that bug was found on a machine that runs MUSL libc + clang16 but this bug MAY or MAY NOT BE related to musl/clang16.
Created attachment 855128 [details] build.log build log and emerge --info
Please attach the config.log, this bug is useless without it. Also, is this a regression from 28.2-r4?
(In reply to Ulrich Müller from comment #2) > Please attach the config.log, this bug is useless without it. > > Also, is this a regression from 28.2-r4? This is a recently added "qa notice" so I have no idea about the regression I have no trace of "qa notices" that needs additional files, that's the reason because no more logs are attached. In any case, the post of the qa notices (at least for tinderbox) happens by parsing logs at a later time, so attach files is not possible. What you can do is compile by yourself and check if you get this qa notice too. I'm sure that just close as NEEDINFO does not improve in any case.
(In reply to Ulrich Müller from comment #2) > Please attach the config.log, this bug is useless without it. > > Also, is this a regression from 28.2-r4? Should just need to upgrade to >=portage-3.0.45.1 to reproduce, I get it too from a quick try. See /usr/lib/portage/python*/install-qa-check.d/90config-impl-decl for details (has a way to silence false positives if needed too)
ionen++ :)
For the first of these warnings, the code in configure.ac is this: AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <malloc.h> static void hook (void) {}]], [[malloc_set_state (malloc_get_state ()); __after_morecore_hook = hook; __malloc_initialize_hook = hook;]])], [emacs_cv_var_doug_lea_malloc=yes]) Note that it properly includes malloc.h, so if the functions malloc_{get,set}_state exist for the malloc implementation, then they will be explicitly declared. If they don't exist, then the test will fail with an error. Why would we care about additional warnings in the error case?
Or, the test for MIN, which is straight from Gnulib's minmax.m4: [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <$1> int x = MIN (42, 17);]], [[]])], [gl_cv_minmax_in_]header[=yes], [gl_cv_minmax_in_]header[=no])]) This is called for limits.h: configure:26988: checking whether <limits.h> defines MIN and MAX configure:27006: x86_64-pc-linux-gnu-gcc -c -march=native -ggdb -O2 -pipe conftest.c >&5 conftest.c:302:21: warning: implicit declaration of function 'MIN' [-Wimplicit-function-declaration] 302 | int x = MIN (42, 17); | ^~~ conftest.c:302:21: error: initializer element is not constant configure:27006: $? = 1 [...] configure:27014: result: no ... and for sys/param.h: configure:27027: checking whether <sys/param.h> defines MIN and MAX configure:27045: x86_64-pc-linux-gnu-gcc -c -march=native -ggdb -O2 -pipe conftest.c >&5 configure:27045: $? = 0 configure:27053: result: yes Note that there is no warning in the second (successful) case. In the first (failed) case there is an error and a warning. So even if that warning would become fatal at some point, the result of the test would still be as expected. Closing. Whoever cares about this, should convince Emacs and Gnulib upstreams that it is a real bug; I am willing to backport any upstream fix resulting from this.
>(has a way to silence false positives if needed too) Although I agree the error: cases are going to be noisy if kept.
(In reply to Ionen Wolkens from comment #8) > >(has a way to silence false positives if needed too) > > Although I agree the error: cases are going to be noisy if kept. That's because the check doesn't care about context. If there's an error plus any warnings for the same conftest.c then the warnings should be ignored, rather than wasting developers' time. IMHO adding more QA* variables to ebuilds (even if there's no real problem, in the first place) isn't the right solution.
*** Bug 923150 has been marked as a duplicate of this bug. ***
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=58c0081f5269d5983fbb4d440c24ba9cde6c9595 commit 58c0081f5269d5983fbb4d440c24ba9cde6c9595 Author: Ulrich Müller <ulm@gentoo.org> AuthorDate: 2024-01-29 09:15:06 +0000 Commit: Ulrich Müller <ulm@gentoo.org> CommitDate: 2024-01-29 09:17:11 +0000 app-editors/emacs: Evade tinderbox bug Bug: https://bugs.gentoo.org/898304 Signed-off-by: Ulrich Müller <ulm@gentoo.org> app-editors/emacs/emacs-29.2.ebuild | 3 +++ 1 file changed, 3 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=318644dda72d2d6f4c81dbd4e41123f0bf281b19 commit 318644dda72d2d6f4c81dbd4e41123f0bf281b19 Author: Ulrich Müller <ulm@gentoo.org> AuthorDate: 2024-01-30 18:16:32 +0000 Commit: Ulrich Müller <ulm@gentoo.org> CommitDate: 2024-01-30 18:30:45 +0000 app-editors/emacs: Suppress false positive QA warnings Bug: https://bugs.gentoo.org/898304 Signed-off-by: Ulrich Müller <ulm@gentoo.org> app-editors/emacs/emacs-26.3-r16.ebuild | 3 +++ app-editors/emacs/emacs-27.2-r14.ebuild | 3 +++ app-editors/emacs/emacs-28.2-r10.ebuild | 3 +++ app-editors/emacs/emacs-29.2.9999.ebuild | 3 +++ app-editors/emacs/emacs-29.2.ebuild | 2 +- app-editors/emacs/emacs-30.0.9999.ebuild | 5 +++++ 6 files changed, 18 insertions(+), 1 deletion(-)