mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
YJIT: Handle spaces in build dir path using find(1) -exec
Previously, we relied on shell word splitting, which leads to passing the wrong arguments when there are white spaces in the path. Avoiding command substitution also makes this script more likely to work under Solaris 10, where `/bin/sh` is not POSIX compliant [1]. (Thanks you, `@znz` for fixing the syntax error in4210ae2158
though!) The hack fromc466f270b8
doesn't actually work so this commit reverts it. The shell still needs to parse through all of the code, maybe because make doesn't in fact send newlines to the shell. By the way, we also use the `-exec` option in the `ext/distclean` task. [1]: https://docs.oracle.com/cd/E26505_01/html/816-5165/sh-1.html
This commit is contained in:
parent
907b31d7b9
commit
99281f513c
Notes:
git
2022-04-29 08:02:47 +09:00
1 changed files with 3 additions and 9 deletions
|
@ -272,13 +272,6 @@ DESTDIR = @DESTDIR@
|
|||
configure_args = @configure_args@
|
||||
#### End of variables
|
||||
|
||||
# Shell short-circuiting for dodging syntax error on older shells, e.g.
|
||||
# Solaris. Hack: make sends <backslash><newline> to the shell per POSIX, and
|
||||
# two backslashes stops escaping the newline.
|
||||
YJIT_BUILD_ONLY0 = $(YJIT_SUPPORT:no=exit; \\)
|
||||
YJIT_BUILD_ONLY1 = $(YJIT_BUILD_ONLY0:dev=)
|
||||
YJIT_BUILD_ONLY = $(YJIT_BUILD_ONLY1:yes=)
|
||||
|
||||
ABI_VERSION_HDR = $(hdrdir)/ruby/internal/abi.h
|
||||
|
||||
.SUFFIXES: .inc .h .c .y .i .$(ASMEXT) .$(DTRACE_EXT)
|
||||
|
@ -312,14 +305,15 @@ $(LIBRUBY_A):
|
|||
@-[ -z "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)
|
||||
$(ECHO) linking static-library $@
|
||||
$(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(INITOBJS)
|
||||
$(Q) $(YJIT_BUILD_ONLY)\
|
||||
$(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) && \
|
||||
$(AR) $(ARFLAGS) $@ `find '$(CARGO_TARGET_DIR)/libyjit/' -name '*.o'` ;
|
||||
find '$(CARGO_TARGET_DIR)/libyjit/' -name '*.o' -exec $(AR) $(ARFLAGS) $@ '{}' '+' ; \
|
||||
fi
|
||||
@-$(RANLIB) $@ 2> /dev/null || true
|
||||
|
||||
verify-static-library: $(LIBRUBY_A)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue