Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.2: fails to build with make 4.4 #86

Open
tgurr opened this issue Jan 4, 2023 · 3 comments · May be fixed by #92
Open

2.2: fails to build with make 4.4 #86

tgurr opened this issue Jan 4, 2023 · 3 comments · May be fixed by #92

Comments

@tgurr
Copy link

tgurr commented Jan 4, 2023

building with make 4.3 works, but started to fail with make 4.4 (https://lists.gnu.org/archive/html/info-gnu/2022-10/msg00008.html) with the following error:

[...]
making in doc ...
x86_64-pc-linux-gnu-cc -march=native -O2 -pipe -Wall     -march=native -O2 -pipe  -I../include  -c -o find_sts_main.o find_sts_main.c
making in tools ...
x86_64-pc-linux-gnu-cc -march=native -O2 -pipe -Wall     -march=native -O2 -pipe  -I../include  -c -o flite_sort_main.o flite_sort_main.c
x86_64-pc-linux-gnu-cc -march=native -O2 -pipe -Wall     -o ../bin/flite_sort flite_sort_main.o -L../build/x86_64-linux-gnu/lib -lflite  -Wl,-O1 -Wl,--as-needed -lm -lpulse-simple -lpulse 
x86_64-pc-linux-gnu-cc -march=native -O2 -pipe -Wall     -o ../bin/find_sts find_sts_main.o -L../build/x86_64-linux-gnu/lib -lflite  -Wl,-O1 -Wl,--as-needed -lm -lpulse-simple -lpulse 
making in main ...
x86_64-pc-linux-gnu-cc -march=native -O2 -pipe -Wall     -march=native -O2 -pipe  -I../include  -c -o flite_main.o flite_main.c
making ../build/x86_64-linux-gnu/lib/libflite.so
x86_64-pc-linux-gnu-cc -march=native -O2 -pipe -Wall     -march=native -O2 -pipe  -I../include  -c -o t2p_main.o t2p_main.c
x86_64-pc-linux-gnu-cc -march=native -O2 -pipe -Wall     -march=native -O2 -pipe  -I../include  -c -o compile_regexes.o compile_regexes.c
x86_64-pc-linux-gnu-cc -march=native -O2 -pipe -Wall     -march=native -O2 -pipe  -I../include  -c -o flitevox_info_main.o flitevox_info_main.c
make[1]: *** No rule to make target 'flite_voice_list.c', needed by 'all'.  Stop.
make[1]: *** Waiting for unfinished jobs....
make: *** [config/common_make_rules:133: build/x86_64-linux-gnu/obj//.make_build_dirs] Error 2

complete build.log:
flite-2.2-make-4.4-build-error.log

archlinux-github pushed a commit to archlinux/aur that referenced this issue Feb 9, 2023
flite1 currently [1]fails to build due to an issue with make 4.4.
Temporarily disable it until a fix from flite 2.x can be backported
to flite1.

[1] festvox/flite#86
archlinux-github pushed a commit to archlinux/aur that referenced this issue Feb 10, 2023
flite1 currently [1]fails to build due to an issue with make 4.4.
Temporarily disable it until a fix from flite 2.x can be backported
to flite1.

[1] festvox/flite#86
@rathann
Copy link
Contributor

rathann commented Feb 21, 2023

I'm seeing the same on Fedora development branches (F38 and rawhide), which indeed have make-4.4. This seems to be related to the way make processes parallel jobs, because using make -j1 or plain make makes it build fine (though slower). make -j4 fails.

@tgurr
Copy link
Author

tgurr commented Feb 21, 2023

I'm seeing the same on Fedora development branches (F38 and rawhide), which indeed have make-4.4. This seems to be related to the way make processes parallel jobs, because using make -j1 or plain make makes it build fine (though slower). make -j4 fails.

Thanks for the hint for this workaround for the time being! Working here as well when restricting it to build with -j1.

archlinux-github pushed a commit to archlinux/aur that referenced this issue Feb 25, 2023
The make 4.4 issue can be circunvented by using a single job.
It takes longer, but builds fine.

References
----------
festvox/flite#86 (comment)
@barsnick
Copy link

I noticed that flite_lang_list.c and flite_voice_list.c are repeatedly being clobbered and built, instead of being built only once as dependencies. (flite_lang_list is a sort-of-dependency.)

In parallel builds, they are not only built multiple times, but are also erased after another thread has built them, resulting in this build failure.

A proper dependency and rule for each should fix this. I'm posting a PR for this.

barsnick added a commit to barsnick/flite that referenced this issue Mar 23, 2023
Also make flite_lang_list a proper rule, so that it only builds once.

Both C files were repeatedly being clobbered, as were their respective
object files.

Convert flite_voice_list.c is into an explicit dependency with a creation
rule. flite_voice_list.o continues to be implicit from flite_voice_list.c.

Convert flite_lang_list into a similar, proper object rule.

Fixes festvox#86
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants