summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2020-11-27 07:59:57 +0900
committerKOBAYASHI Shuji <[email protected]>2020-11-27 07:59:57 +0900
commitfdce0e712b4b18575a8ea9fc1d54551b554ebfe4 (patch)
treecf63938a6bdddefaa6f2edc661cd1b79765ecc8d
parent13fc5034345ae159f034849cb3f235f4463edd45 (diff)
downloadmruby-fdce0e712b4b18575a8ea9fc1d54551b554ebfe4.tar.gz
mruby-fdce0e712b4b18575a8ea9fc1d54551b554ebfe4.zip
Fix build failure; ref #5194
Fix the following two issues: 1. Compile failure when external gem is specified. * https://github.com/mruby/mruby/pull/5194#issuecomment-734303442 2. When there are multiple build targets, presym parsing sometimes fails or output result of presym is broken. * https://github.com/mruby/mruby/pull/5194#issuecomment-734322142 The root cause of 2 is unknown, but it seems to occur when presym parsing is performed in parallel, therefore I change them so that they are not run in parallel.
-rw-r--r--Rakefile4
-rw-r--r--tasks/presym.rake8
2 files changed, 6 insertions, 6 deletions
diff --git a/Rakefile b/Rakefile
index c28486b01..8be192155 100644
--- a/Rakefile
+++ b/Rakefile
@@ -93,7 +93,9 @@ MRuby.each_target do |target|
end
desc "preallocated symbols"
-task :gensym => MRuby.targets.values.map(&:presym_file)
+task :gensym do
+ MRuby.each_target{|build| Rake::Task[build.presym_file].invoke}
+end
depfiles += MRuby.targets.map { |n, t|
t.libraries
diff --git a/tasks/presym.rake b/tasks/presym.rake
index 6dfd1a56b..949bc3ac1 100644
--- a/tasks/presym.rake
+++ b/tasks/presym.rake
@@ -41,11 +41,9 @@ macro_to_symbol = {
["" , "" ] => ["" , "" ],
}
-core_cfiles = nil
-core_rbfiles = nil
+core_cfiles = Dir.glob("#{MRUBY_ROOT}/src/*.c")
+core_rbfiles = Dir.glob("#{MRUBY_ROOT}/mrblib/*.rb")
MRuby.each_target do |build|
- core_cfiles ||= Dir.glob("#{MRUBY_ROOT}/src/*.c")
- core_rbfiles ||= Dir.glob("#{MRUBY_ROOT}/mrblib/*.rb")
cfiles = core_cfiles.dup
rbfiles = core_rbfiles.dup
psfiles = []
@@ -58,8 +56,8 @@ MRuby.each_target do |build|
if gem.cdump?
rbfiles.concat(gem.rbfiles)
psfiles.concat(Dir.glob(gem.dir+"/**/presym"))
- gem.compilers.each {|c| c.include_paths << "#{build.build_dir}/include"}
end
+ gem.compilers.each {|c| c.include_paths << "#{build.build_dir}/include"}
end
file presym_file => [*cfiles, *rbfiles, *psfiles, __FILE__] do