Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 898304 - app-editors/emacs-28.3_rc1 has implicit function declarations in configure logs
Summary: app-editors/emacs-28.3_rc1 has implicit function declarations in configure logs
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: GNU Emacs project
URL:
Whiteboard:
Keywords:
: 923150 (view as bug list)
Depends on:
Blocks: c99-porting
  Show dependency tree
 
Reported: 2023-02-28 09:53 UTC by Agostino Sarubbo
Modified: 2024-01-30 18:31 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,293.15 KB, text/plain)
2023-02-28 09:53 UTC, Agostino Sarubbo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Agostino Sarubbo gentoo-dev 2023-02-28 09:53:48 UTC
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.
Comment 1 Agostino Sarubbo gentoo-dev 2023-02-28 09:53:51 UTC
Created attachment 855128 [details]
build.log

build log and emerge --info
Comment 2 Ulrich Müller gentoo-dev 2023-02-28 11:00:52 UTC
Please attach the config.log, this bug is useless without it.

Also, is this a regression from 28.2-r4?
Comment 3 Agostino Sarubbo gentoo-dev 2023-02-28 11:14:56 UTC
(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.
Comment 4 Ionen Wolkens gentoo-dev 2023-02-28 11:17:10 UTC
(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)
Comment 5 Agostino Sarubbo gentoo-dev 2023-02-28 11:27:45 UTC
ionen++ :)
Comment 6 Ulrich Müller gentoo-dev 2023-02-28 11:45:36 UTC
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?
Comment 7 Ulrich Müller gentoo-dev 2023-02-28 12:10:56 UTC
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.
Comment 8 Ionen Wolkens gentoo-dev 2023-02-28 12:22:47 UTC
>(has a way to silence false positives if needed too)

Although I agree the error: cases are going to be noisy if kept.
Comment 9 Ulrich Müller gentoo-dev 2023-02-28 12:50:40 UTC
(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.
Comment 10 Ulrich Müller gentoo-dev 2024-01-28 17:27:16 UTC
*** Bug 923150 has been marked as a duplicate of this bug. ***
Comment 11 Larry the Git Cow gentoo-dev 2024-01-29 09:17:24 UTC
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(+)
Comment 12 Larry the Git Cow gentoo-dev 2024-01-30 18:31:02 UTC
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(-)