Fix macos bug deleting too many files

Since #10209 we've been noticing that on macos after running `make
clean` the `coroutine/arm64/Context.S` file is missing, causing
subsequent make calls to fail because `Context.S` is needed to build
`Context.o`.

The reason this is happening is because macos is case-insensitive so the
`.s` looks for `coroutine/arm64/Context.s` and finds
`coroutine/arm64/Context.s`. This does not happen on linux because the
filesystem is case sensitive.

I attempted to use `find` because it is case sensitive regardless of
filesystem, but it was a lot slower than `rm` since we can't pass
multiple file names the same way to `find`.

Reverting this small part of #10209 fixes the issue for macos and it
wasn't clear that those changes were strictly necessary for the rest of
the PR.

We changed the original code to use `rm` instead of `delete` because it
is not standarized on POSIX.
This commit is contained in:
eileencodes 2024-05-01 15:17:20 -04:00 коммит произвёл Nobuyoshi Nakada
Родитель 508f331048
Коммит 0f9e50b8c5
1 изменённых файлов: 2 добавлений и 3 удалений

Просмотреть файл

@ -493,9 +493,8 @@ clean-local::
enc/encinit.c enc/encinit.$(OBJEXT) $(pkgconfig_DATA) \
ruby-runner.$(OBJEXT) ruby-runner.h \
|| $(NULLCMD)
@$(RM) $(ALLOBJS:.$(OBJEXT)=.bc)
@$(RM) $(ALLOBJS:.$(OBJEXT)=.i)
@$(RM) $(ALLOBJS:.$(OBJEXT)=.s)
$(Q)find . ! -type d \( -name '*.bc' -o -name '*.[is]' \) -exec rm -f {} + || true
distclean-local::
$(Q)$(RM) \