`AR` does not need the absolute path

Still use `find` to get rid of potential ARGV limit overflow, since
rustc-genrated object file names are mangled and very long.
This commit is contained in:
Nobuyoshi Nakada 2022-05-17 12:40:33 +09:00
Родитель c478a3c0a9
Коммит 3db8db8a32
1 изменённых файлов: 6 добавлений и 5 удалений

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

@ -309,11 +309,12 @@ $(LIBRUBY_A):
$(Q) if [ 'no' != '$(YJIT_SUPPORT)' ]; then \
set -eu && \
echo 'merging $(YJIT_LIBS) into $@' && \
$(RMALL) '$(CARGO_TARGET_DIR)/libyjit/' && \
$(MAKEDIRS) '$(CARGO_TARGET_DIR)/libyjit/' && \
$(CP) '$(YJIT_LIBS)' '$(CARGO_TARGET_DIR)/libyjit/' && \
(cd '$(CARGO_TARGET_DIR)/libyjit/' && $(AR) -x libyjit.a) && \
find '$(CARGO_TARGET_DIR)/libyjit/' -name '*.o' -exec $(AR) $(ARFLAGS) $@ '{}' '+' ; \
$(RMALL) libyjit/ && \
$(MAKEDIRS) libyjit/ && \
$(CP) '$(YJIT_LIBS)' libyjit/ && \
(cd libyjit/ && $(AR) -x libyjit.a) && \
: "$(AR) $(ARFLAGS) $@ libyjit/*.$(OBJEXT)" && \
find libyjit/ -name '*.$(OBJEXT)' -exec $(AR) $(ARFLAGS) $@ '{}' '+' ; \
fi
@-$(RANLIB) $@ 2> /dev/null || true