Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 952956

Summary: <=app-shells/bash:4.4 - can’t build with gcc-14 [-Wimplicit-int] [-Wimplicit-function-declaration]
Product: Gentoo Linux Reporter: lekto
Component: Current packagesAssignee: Gentoo's Team for Core System packages <base-system>
Status: CONFIRMED ---    
Severity: normal CC: kfm, lekto, zhixu.liu
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 870412    
Attachments: emerge --info

Description lekto 2025-03-31 15:33:06 UTC
Created attachment 923315 [details]
emerge --info

Looks like older version of bash can’t be build with gcc-14:

2.05b:
> make: *** No rule to make target 'lib/readline/funmap.c', needed by 'lib/readline/libreadline.a'.  Stop.
3.0:
> ./support/bashversion.c:138:21: error: implicit declaration of function ‘shell_version_string’ [-Wimplicit-function-declaration]
> ./support/bashversion.c:140:5: error: implicit declaration of function ‘show_shell_version’ [-Wimplicit-function-declaration]
3.1:
> shell.c:704:7: error: implicit declaration of function ‘get_tty_state’ [-Wimplicit-function-declaration]
> shell.c:1662:3: error: implicit declaration of function ‘initialize_job_control’ [-Wimplicit-function-declaration]
> ./parse.y:1928:11: error: implicit declaration of function ‘cleanup_dead_jobs’ [-Wimplicit-function-declaration]
> ./parse.y:4272:28: error: implicit declaration of function ‘count_all_jobs’ [-Wimplicit-function-declaration]
> nojobs.c:401:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> nojobs.c:670:7: error: implicit declaration of function ‘signal_is_trapped’ [-Wimplicit-function-declaration]
> nojobs.c:775:15: error: implicit declaration of function ‘maybe_call_trap_handler’ [-Wimplicit-function-declaration]
> nojobs.c:837:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> nojobs.c:868:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> subst.c:2579:1: error: type of ‘quoted’ defaults to ‘int’ [-Wimplicit-int]
3.2:
> nojobs.c:401:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> nojobs.c:673:7: error: implicit declaration of function ‘signal_is_trapped’ [-Wimplicit-function-declaration]
> nojobs.c:779:15: error: implicit declaration of function ‘maybe_call_trap_handler’ [-Wimplicit-function-declaration]
> nojobs.c:841:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> nojobs.c:872:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> shell.c:705:7: error: implicit declaration of function ‘get_tty_state’ [-Wimplicit-function-declaration]
> shell.c:1663:3: error: implicit declaration of function ‘initialize_job_control’ [-Wimplicit-function-declaration]
> ./parse.y:1931:11: error: implicit declaration of function ‘cleanup_dead_jobs’ [-Wimplicit-function-declaration]
> ./parse.y:4314:28: error: implicit declaration of function ‘count_all_jobs’ [-Wimplicit-function-declaration]
> subst.c:2626:1: error: type of ‘quoted’ defaults to ‘int’ [-Wimplicit-int]
4.0:
> shell.c:731:7: error: implicit declaration of function ‘get_tty_state’ [-Wimplicit-function-declaration]
> shell.c:1701:3: error: implicit declaration of function ‘initialize_job_control’ [-Wimplicit-function-declaration]
> execute_cmd.c:1825:1: error: type of ‘status’ defaults to ‘int’ [-Wimplicit-int]
> ./parse.y:2085:11: error: implicit declaration of function ‘cleanup_dead_jobs’ [-Wimplicit-function-declaration]
> ./parse.y:5032:28: error: implicit declaration of function ‘count_all_jobs’ [-Wimplicit-function-declaration]
> nojobs.c:410:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> nojobs.c:683:7: error: implicit declaration of function ‘signal_is_trapped’ [-Wimplicit-function-declaration]
> nojobs.c:789:15: error: implicit declaration of function ‘maybe_call_trap_handler’ [-Wimplicit-function-declaration]
> nojobs.c:851:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> nojobs.c:882:1: error: return type defaults to ‘int’ [-Wimplicit-int]
4.1:
> shell.c:739:7: error: implicit declaration of function ‘get_tty_state’ [-Wimplicit-function-declaration]
> shell.c:1714:3: error: implicit declaration of function ‘initialize_job_control’ [-Wimplicit-function-declaration]
> snprintf.c:961:21: error: implicit declaration of function ‘isinf’ [-Wimplicit-function-declaration]
> snprintf.c:961:32: error: implicit declaration of function ‘isnan’ [-Wimplicit-function-declaration]
4.2:
> siglist.h:37:27: error: expected identifier or ‘(’ before ‘char’
> shell.c:739:7: error: implicit declaration of function ‘get_tty_state’ [-Wimplicit-function-declaration]
> shell.c:1715:3: error: implicit declaration of function ‘initialize_job_control’ [-Wimplicit-function-declaration]
4.3:
> siglist.h:37:27: error: expected identifier or ‘(’ before ‘char’
> shell.c:746:7: error: implicit declaration of function ‘get_tty_state’ [-Wimplicit-function-declaration]
> shell.c:1754:3: error: implicit declaration of function ‘initialize_job_control’ [-Wimplicit-function-declaration]
4.4:
> siglist.h:37:27: error: expected identifier or ‘(’ before ‘char’

I tried gcc:13 and there was no issue. I'm mostly interested in bash:4.2, because it is the last version with static use flag.
Comment 1 Zhixu Liu 2025-04-18 04:47:19 UTC
should we lower the cflags from gnu17 to gnu99 to accept -Wimplicit-function-declaration? at least for version passed eol?