mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	Resolve abi symbol references from miniruby to avoid circular deps
Adding `ruby` to `PREP` causes the following circular dependencies because `PREP` is used as a prerequisite by some targets required to build `ruby` target itself. ``` make: Circular .rbconfig.time <- ruby dependency dropped. make: Circular builtin_binary.inc <- ruby dependency dropped. make: Circular ext/extinit.c <- ruby dependency dropped. make: Circular ruby <- ruby dependency dropped. ``` Adding a new Make variable like `EXTPREP` only for exts may be also reasonable, but it would introduce another complexity into our build system. `-bundle_loader` doesn't care that link-time and run-time loader executables are different as long as bound symbols are provided, so it's ok to resolve from miniruby to simplify our build.
This commit is contained in:
		
							parent
							
								
									e5a3f23256
								
							
						
					
					
						commit
						6d8b9a9d61
					
				
				
				Notes:
				
					git
				
				2022-08-04 16:29:44 +09:00 
				
			
			
			
		
		
					 3 changed files with 4 additions and 5 deletions
				
			
		| 
						 | 
					@ -3015,7 +3015,6 @@ STATIC=
 | 
				
			||||||
                          # When building ext bundles, a mach-o bundle needs to know its loader
 | 
					                          # When building ext bundles, a mach-o bundle needs to know its loader
 | 
				
			||||||
                          # program to bind symbols from the ruby executable
 | 
					                          # program to bind symbols from the ruby executable
 | 
				
			||||||
                          EXTDLDFLAGS="-bundle_loader '\$(BUILTRUBY)'"
 | 
					                          EXTDLDFLAGS="-bundle_loader '\$(BUILTRUBY)'"
 | 
				
			||||||
                          PREP="$PREP"' $(PROGRAM)'
 | 
					 | 
				
			||||||
			])
 | 
								])
 | 
				
			||||||
			rb_cv_dlopen=yes],
 | 
								rb_cv_dlopen=yes],
 | 
				
			||||||
        [aix*], [	: ${LDSHARED='$(CC)'}
 | 
					        [aix*], [	: ${LDSHARED='$(CC)'}
 | 
				
			||||||
| 
						 | 
					@ -3340,7 +3339,7 @@ AS_IF([test x"$cross_compiling" = xyes], [
 | 
				
			||||||
  AC_SUBST(XRUBY_LIBDIR)
 | 
					  AC_SUBST(XRUBY_LIBDIR)
 | 
				
			||||||
  AC_SUBST(XRUBY_RUBYLIBDIR)
 | 
					  AC_SUBST(XRUBY_RUBYLIBDIR)
 | 
				
			||||||
  AC_SUBST(XRUBY_RUBYHDRDIR)
 | 
					  AC_SUBST(XRUBY_RUBYHDRDIR)
 | 
				
			||||||
  PREP="$PREP "'$(arch)-fake.rb'
 | 
					  PREP='$(arch)-fake.rb'
 | 
				
			||||||
  RUNRUBY_COMMAND='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'
 | 
					  RUNRUBY_COMMAND='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'
 | 
				
			||||||
  RUNRUBY='$(RUNRUBY_COMMAND)'
 | 
					  RUNRUBY='$(RUNRUBY_COMMAND)'
 | 
				
			||||||
  XRUBY='$(MINIRUBY)'
 | 
					  XRUBY='$(MINIRUBY)'
 | 
				
			||||||
| 
						 | 
					@ -3350,7 +3349,7 @@ AS_IF([test x"$cross_compiling" = xyes], [
 | 
				
			||||||
], [
 | 
					], [
 | 
				
			||||||
  MINIRUBY='./miniruby$(EXEEXT) -I$(srcdir)/lib -I.'
 | 
					  MINIRUBY='./miniruby$(EXEEXT) -I$(srcdir)/lib -I.'
 | 
				
			||||||
  MINIRUBY="$MINIRUBY"' -I$(EXTOUT)/common'
 | 
					  MINIRUBY="$MINIRUBY"' -I$(EXTOUT)/common'
 | 
				
			||||||
  PREP="$PREP "'miniruby$(EXEEXT)'
 | 
					  PREP='miniruby$(EXEEXT)'
 | 
				
			||||||
  RUNRUBY_COMMAND='$(MINIRUBY) $(tooldir)/runruby.rb --extout=$(EXTOUT) $(RUNRUBYOPT)'
 | 
					  RUNRUBY_COMMAND='$(MINIRUBY) $(tooldir)/runruby.rb --extout=$(EXTOUT) $(RUNRUBYOPT)'
 | 
				
			||||||
  RUNRUBY='$(RUNRUBY_COMMAND) --'
 | 
					  RUNRUBY='$(RUNRUBY_COMMAND) --'
 | 
				
			||||||
  XRUBY='$(RUNRUBY)'
 | 
					  XRUBY='$(RUNRUBY)'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,7 @@ RUBY_SO_NAME = @RUBY_SO_NAME@
 | 
				
			||||||
LIBRUBY = @LIBRUBY@
 | 
					LIBRUBY = @LIBRUBY@
 | 
				
			||||||
LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
 | 
					LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
 | 
				
			||||||
LIBRUBYARG_STATIC = $(LIBRUBYARG_SHARED)
 | 
					LIBRUBYARG_STATIC = $(LIBRUBYARG_SHARED)
 | 
				
			||||||
BUILTRUBY = $(topdir)/ruby$(EXEEXT)
 | 
					BUILTRUBY = $(topdir)/miniruby$(EXEEXT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
empty =
 | 
					empty =
 | 
				
			||||||
AR = @AR@
 | 
					AR = @AR@
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -427,7 +427,7 @@ end
 | 
				
			||||||
topruby = $ruby
 | 
					topruby = $ruby
 | 
				
			||||||
$ruby = topruby.join(' ')
 | 
					$ruby = topruby.join(' ')
 | 
				
			||||||
$mflags << "ruby=#$ruby"
 | 
					$mflags << "ruby=#$ruby"
 | 
				
			||||||
$builtruby = '$(topdir)/ruby' + EXEEXT # Must be an executable path
 | 
					$builtruby = '$(topdir)/miniruby' + EXEEXT # Must be an executable path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MTIMES = [__FILE__, 'rbconfig.rb', srcdir+'/lib/mkmf.rb'].collect {|f| File.mtime(f)}
 | 
					MTIMES = [__FILE__, 'rbconfig.rb', srcdir+'/lib/mkmf.rb'].collect {|f| File.mtime(f)}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue