Expand tabs for rb_mjit_header.h
I can't live without this when using gdb or perf report. See also: [Misc #16112]
This commit is contained in:
parent
0bed561f6a
commit
57119dd561
@ -224,9 +224,10 @@ mjit_config.h: Makefile
|
|||||||
# Other `-Dxxx`s preceding `-DMJIT_HEADER` will be removed in transform_mjit_header.rb.
|
# Other `-Dxxx`s preceding `-DMJIT_HEADER` will be removed in transform_mjit_header.rb.
|
||||||
# So `-DMJIT_HEADER` should be passed first when rb_mjit_header.h is generated.
|
# So `-DMJIT_HEADER` should be passed first when rb_mjit_header.h is generated.
|
||||||
$(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time: probes.h vm.$(OBJEXT) \
|
$(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time: probes.h vm.$(OBJEXT) \
|
||||||
$(TIMESTAMPDIR)/$(arch)/.time
|
$(TIMESTAMPDIR)/$(arch)/.time $(srcdir)/tool/run_without_tabs.rb
|
||||||
$(ECHO) building $(@F:.time=.h)
|
$(ECHO) building $(@F:.time=.h)
|
||||||
$(Q) $(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new
|
$(Q) $(BASERUBY) $(srcdir)/tool/run_without_tabs.rb \
|
||||||
|
$(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new
|
||||||
$(Q) $(IFCHANGE) "--timestamp=$@" $(@F:.time=.h) $(@F:.time=.h).new
|
$(Q) $(IFCHANGE) "--timestamp=$@" $(@F:.time=.h) $(@F:.time=.h).new
|
||||||
|
|
||||||
$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time
|
$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time
|
||||||
|
35
tool/run_without_tabs.rb
Normal file
35
tool/run_without_tabs.rb
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
# This is a script to run a command in ARGV, expanding tabs in some files
|
||||||
|
# included by vm.c to normalize indentation of MJIT header.
|
||||||
|
#
|
||||||
|
# Note that preprocessor of GCC converts a hard tab to one spaces, where
|
||||||
|
# we expect it to be shown as 8 spaces. To obviate this script, we need
|
||||||
|
# to convert all tabs to spaces in these files.
|
||||||
|
|
||||||
|
require 'fileutils'
|
||||||
|
|
||||||
|
srcdir = File.expand_path('..', __dir__)
|
||||||
|
targets = Dir.glob(File.join(srcdir, 'vm*.*'))
|
||||||
|
sources = {}
|
||||||
|
mtimes = {}
|
||||||
|
|
||||||
|
targets.each do |target|
|
||||||
|
sources[target] = File.read(target)
|
||||||
|
mtimes[target] = File.mtime(target)
|
||||||
|
|
||||||
|
expanded = sources[target].gsub(/^\t+/) { |tab| ' ' * 8 * tab.length }
|
||||||
|
if sources[target] == expanded
|
||||||
|
puts "#{target.dump} has no hard tab indentation. This should be ignored in tool/run_without_tabs.rb."
|
||||||
|
end
|
||||||
|
File.write(target, expanded)
|
||||||
|
FileUtils.touch(target, mtime: mtimes[target])
|
||||||
|
end
|
||||||
|
|
||||||
|
result = system(*ARGV)
|
||||||
|
|
||||||
|
targets.each do |target|
|
||||||
|
File.write(target, sources.fetch(target))
|
||||||
|
FileUtils.touch(target, mtime: mtimes.fetch(target))
|
||||||
|
end
|
||||||
|
|
||||||
|
exit result
|
Loading…
x
Reference in New Issue
Block a user