Compiling the ltsmin toolset on Fedora 42 fails, whereas, with the same Dockerfile it works using Fedora 41 as base image. Perhaps something has changed in the way that the compiler deals with C code,. In particular, compiling lemon now fails with the following error message:
47.90 Making install in lemon
47.91 make[1]: Entering directory '/root/ltsmin/lemon'
47.91 gcc -DHAVE_CONFIG_H -I. -I../src/hre -g -O2 -c -o lemon.o lemon.c
47.93 lemon.c: In function 'Action_add':
47.93 lemon.c:384:6: warning: old-style function definition [-Wold-style-definition]
47.93 384 | void Action_add(app,type,sp,arg)
47.93 | ^~~~~~~~~~
47.93 lemon.c: In function 'FindRulePrecedences':
47.93 lemon.c:581:6: warning: old-style function definition [-Wold-style-definition]
47.93 581 | void FindRulePrecedences(xp)
47.93 | ^~~~~~~~~~~~~~~~~~~
47.93 lemon.c:583:1: error: number of arguments doesn't match prototype
47.93 583 | {
47.93 | ^
47.93 lemon.c:50:6: error: prototype declaration
47.93 50 | void FindRulePrecedences();
47.93 | ^~~~~~~~~~~~~~~~~~~
47.93 lemon.c: In function 'FindFirstSets':
47.93 lemon.c:611:6: warning: old-style function definition [-Wold-style-definition]
47.93 611 | void FindFirstSets(lemp)
47.93 | ^~~~~~~~~~~~~
47.93 lemon.c:613:1: error: number of arguments doesn't match prototype
47.93 613 | {
47.93 | ^
47.93 lemon.c:51:6: error: prototype declaration
47.93 51 | void FindFirstSets();
47.93 | ^~~~~~~~~~~~~
47.93 lemon.c:650:23: error: too many arguments to function 'SetAdd'; expected 0, have 2
47.93 650 | progress += SetAdd(s1->firstset,s2->index);
47.93 | ^~~~~~ ~~~~~~~~~~~~
47.93 lemon.c:108:5: note: declared here
47.93 108 | int SetAdd(/* char*,int */); /* Add element to a set */
47.93 | ^~~~~~
47.93 lemon.c:654:25: error: too many arguments to function 'SetAdd'; expected 0, have 2
47.93 654 | progress += SetAdd(s1->firstset,s2->subsym[j]->index);
47.93 | ^~~~~~ ~~~~~~~~~~~~
47.93 lemon.c:108:5: note: declared here
47.93 108 | int SetAdd(/* char*,int */); /* Add element to a set */
47.93 | ^~~~~~
47.93 lemon.c:660:23: error: too many arguments to function 'SetUnion'; expected 0, have 2
47.93 660 | progress += SetUnion(s1->firstset,s2->firstset);
47.93 | ^~~~~~~~ ~~~~~~~~~~~~
47.93 lemon.c:109:5: note: declared here
47.93 109 | int SetUnion(/* char *A,char *B */); /* A <- A U B, thru element N */
47.93 | ^~~~~~~~
47.93 lemon.c: In function 'FindStates':
47.93 lemon.c:674:6: warning: old-style function definition [-Wold-style-definition]
47.93 674 | void FindStates(lemp)
47.93 | ^~~~~~~~~~
47.93 lemon.c:676:1: error: number of arguments doesn't match prototype
47.93 676 | {
47.93 | ^
47.93 lemon.c:52:6: error: prototype declaration
47.93 52 | void FindStates();
47.93 | ^~~~~~~~~~
47.93 lemon.c:684:10: error: too many arguments to function 'Symbol_find'; expected 0, have 1
47.93 684 | sp = Symbol_find(lemp->start);
47.93 | ^~~~~~~~~~~ ~~~~~~~~~~~
47.93 lemon.c:310:16: note: declared here
47.93 310 | struct symbol *Symbol_find(/* char * */);
47.93 | ^~~~~~~~~~~
47.93 lemon.c:719:14: error: too many arguments to function 'Configlist_addbasis'; expected 0, have 2
47.93 719 | newcfp = Configlist_addbasis(rp,0);
47.93 | ^~~~~~~~~~~~~~~~~~~ ~~
47.93 lemon.c:60:16: note: declared here
47.93 60 | struct config *Configlist_addbasis(/* struct rule *, int */);
47.93 | ^~~~~~~~~~~~~~~~~~~
47.93 lemon.c:720:5: error: too many arguments to function 'SetAdd'; expected 0, have 2
47.93 720 | SetAdd(newcfp->fws,0);
47.93 | ^~~~~~ ~~~~~~~~~~~
47.93 lemon.c:108:5: note: declared here
47.93 108 | int SetAdd(/* char*,int */); /* Add element to a set */
47.93 | ^~~~~~
47.93 lemon.c:726:9: error: too many arguments to function 'getstate'; expected 0, have 1
47.93 726 | (void)getstate(lemp);
47.93 | ^~~~~~~~ ~~~~
47.93 lemon.c:673:23: note: declared here
47.93 673 | PRIVATE struct state *getstate(/* struct lemon * */); /* forward reference */
47.93 | ^~~~~~~~
47.93 lemon.c: In function 'getstate':
47.93 lemon.c:734:23: warning: old-style function definition [-Wold-style-definition]
47.93 734 | PRIVATE struct state *getstate(lemp)
47.93 | ^~~~~~~~
47.93 lemon.c:736:1: error: number of arguments doesn't match prototype
47.93 736 | {
47.93 | ^
47.93 lemon.c:673:23: error: prototype declaration
47.93 673 | PRIVATE struct state *getstate(/* struct lemon * */); /* forward reference */
47.93 | ^~~~~~~~
47.93 lemon.c:746:9: error: too many arguments to function 'State_find'; expected 0, have 1
47.93 746 | stp = State_find(bp);
47.93 | ^~~~~~~~~~ ~~
47.93 lemon.c:321:15: note: declared here
47.93 321 | struct state *State_find(/* struct config * */);
47.93 | ^~~~~~~~~~
47.93 lemon.c:753:7: error: too many arguments to function 'Plink_copy'; expected 0, have 2
47.93 753 | Plink_copy(&y->bplp,x->bplp);
47.93 | ^~~~~~~~~~ ~~~~~~~~
47.93 lemon.c:92:6: note: declared here
47.93 92 | void Plink_copy(/* struct plink **, struct plink * */);
47.93 | ^~~~~~~~~~
47.93 lemon.c:754:7: error: too many arguments to function 'Plink_delete'; expected 0, have 1
47.93 754 | Plink_delete(x->fplp);
47.93 | ^~~~~~~~~~~~ ~~~~~~~
47.93 lemon.c:93:6: note: declared here
47.93 93 | void Plink_delete(/* struct plink * */);
47.93 | ^~~~~~~~~~~~
47.93 lemon.c:758:5: error: too many arguments to function 'Configlist_eat'; expected 0, have 1
47.93 758 | Configlist_eat(cfp);
47.93 | ^~~~~~~~~~~~~~ ~~~
47.93 lemon.c:66:6: note: declared here
47.93 66 | void Configlist_eat(/* struct config * */);
47.93 | ^~~~~~~~~~~~~~
47.93 lemon.c:761:5: error: too many arguments to function 'Configlist_closure'; expected 0, have 1
47.93 761 | Configlist_closure(lemp); /* Compute the configuration closure */
47.93 | ^~~~~~~~~~~~~~~~~~ ~~~~
47.93 lemon.c:61:6: note: declared here
47.93 61 | void Configlist_closure(/* void */);
47.93 | ^~~~~~~~~~~~~~~~~~
47.93 lemon.c:770:5: error: too many arguments to function 'State_insert'; expected 0, have 2
47.93 770 | State_insert(stp,stp->bp); /* Add to the state table */
47.93 | ^~~~~~~~~~~~ ~~~
47.93 lemon.c:320:5: note: declared here
47.93 320 | int State_insert(/* struct state *, struct config * */);
47.93 | ^~~~~~~~~~~~
47.93 lemon.c:771:5: error: too many arguments to function 'buildshifts'; expected 0, have 2
47.93 771 | buildshifts(lemp,stp); /* Recursively compute successor states */
47.93 | ^~~~~~~~~~~ ~~~~
47.93 lemon.c:733:14: note: declared here
47.93 733 | PRIVATE void buildshifts(/* struct lemon *, struct state * */); /* Forwd ref */
47.93 | ^~~~~~~~~~~
47.93 lemon.c: In function 'same_symbol':
47.93 lemon.c:779:5: warning: old-style function definition [-Wold-style-definition]
47.93 779 | int same_symbol(a,b)
47.93 | ^~~~~~~~~~~
47.93 lemon.c: In function 'buildshifts':
47.93 lemon.c:797:14: warning: old-style function definition [-Wold-style-definition]
47.93 797 | PRIVATE void buildshifts(lemp,stp)
47.93 | ^~~~~~~~~~~
47.93 lemon.c:800:1: error: number of arguments doesn't match prototype
47.93 800 | {
47.93 | ^
47.93 lemon.c:733:14: error: prototype declaration
...
(many more similar errors)
Compiling the ltsmin toolset on Fedora 42 fails, whereas, with the same Dockerfile it works using Fedora 41 as base image. Perhaps something has changed in the way that the compiler deals with C code,. In particular, compiling lemon now fails with the following error message:
Here is the (stripped down) Dockerfile that I am using:
Dockerfile.txt