Bug #18054
closedNo rule to make target 'thread_fd_close.c', needed by 'thread_fd_close.o'
Description
When running make on the newest master checkout, I get the following error:
transdb.h unchanged
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
make[1]: Entering directory '/home/duerst/ruby3'
make[2]: Entering directory '/home/duerst/ruby3/ext/-test-/thread_fd_close'
make[2]: *** No rule to make target 'thread_fd_close.c', needed by 'thread_fd_close.o'. Stop.
make[2]: Leaving directory '/home/duerst/ruby3/ext/-test-/thread_fd_close'
make[1]: *** [exts.mk:195: ext/-test-/thread_fd_close/all] Error 2
make[1]: Leaving directory '/home/duerst/ruby3'
make: *** [uncommon.mk:301: build-ext] Error 2
This may (or may not) be related to https://github.com/ruby/ruby/commit/7564e066ff.
This is on an Ubuntu 20.04 on WSL2 on Windows 10.
Updated by nobu (Nobuyoshi Nakada) over 4 years ago
Do ext/-test-/thread_fd directory and Makefile there exist?
Probably make -C ext/-test-/thread_fd_close distclean may help you.
Although configure-ext should remove no longer existing directory but may have a bug for deeper paths.
Updated by duerst (Martin Dürst) over 4 years ago
(sorry this answer is late)
nobu (Nobuyoshi Nakada) wrote in #note-1:
Do
ext/-test-/thread_fddirectory andMakefilethere exist?
The directory exists, but the Makefile doesn't exist.
Probably
make -C ext/-test-/thread_fd_close distcleanmay help you.
This says make: *** No rule to make target 'distclean'. Stop.. It doesn't help, unfortunately.
Although
configure-extshould remove no longer existing directory but may have a bug for deeper paths.
Do you mean ext/-test-/thread_fd_close should no longer exist? Or something else?
Updated by nobu (Nobuyoshi Nakada) over 4 years ago
duerst (Martin Dürst) wrote in #note-2:
Do you mean
ext/-test-/thread_fd_closeshould no longer exist? Or something else?
Yes,renamed as ext/-test-/thread_fd.
You can remove the old directory, and ext/-test-/exts.mk file.
Updated by duerst (Martin Dürst) over 4 years ago
nobu (Nobuyoshi Nakada) wrote in #note-3:
You can remove the old directory, and
ext/-test-/exts.mkfile.
Many thanks for your help. I removed both the directory and the file. Now I'm getting the following:
transdb.h unchanged
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
make[1]: Entering directory '/home/duerst/ruby3'
make[2]: Entering directory '/home/duerst/ruby3'
make[2]: *** ext/-test-/thread_fd_close: No such file or directory. Stop.
make[2]: Leaving directory '/home/duerst/ruby3'
make[1]: *** [exts.mk:195: ext/-test-/thread_fd_close/all] Error 2
make[1]: Leaving directory '/home/duerst/ruby3'
make: *** [uncommon.mk:301: build-ext] Error 2
Updated by Eregon (Benoit Daloze) over 4 years ago
make clean is sometimes needed when building CRuby (correct C files dependencies is still a mess to this day, not CRuby-specific).
Would that help here?
Updated by nobu (Nobuyoshi Nakada) over 4 years ago
duerst (Martin Dürst) wrote in #note-4:
generating makefiles ext/configure-ext.mk ext/configure-ext.mk unchanged
This file should be updated, but actually wasn't.
Could you try again after removing that file?
Updated by duerst (Martin Dürst) about 4 years ago
- Status changed from Open to Closed
Eregon (Benoit Daloze) wrote in #note-5:
make cleanis sometimes needed when building CRuby (correct C files dependencies is still a mess to this day, not CRuby-specific).
Would that help here?
Thanks, that helped.