Opened 3 years ago

Last modified 3 years ago

#64475 accepted defect

rb30-nokogiri, rb31-nokogiri: ERROR: Failed to build gem native extension

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: kimuraw (kimura wataru)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: sierra Cc: judaew (Vadym-Valdis Yudaiev), cooljeanius (Eric Gallager)
Port: rb-nokogiri

Description

rb30-nokogiri and rb31-nokogiri fail to build on macOS Sierra and older.

https://build.macports.org/builders/ports-10.12_x86_64-builder/builds/170379/steps/install-port/logs/stdio
https://build.macports.org/builders/ports-10.12_x86_64-builder/builds/174866/steps/install-port/logs/stdio

ERROR:  Error installing /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_ruby_rb-nokogiri/rb31-nokogiri/work/nokogiri-1.13.1/nokogiri.gem:
	ERROR: Failed to build gem native extension.

    current directory: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_ruby_rb-nokogiri/rb31-nokogiri/work/destroot/opt/local/lib/ruby3.1/gems/3.1.0/gems/nokogiri-1.13.1/ext/nokogiri
/opt/local/bin/ruby3.1 -I /opt/local/lib/ruby3.1/3.1.0 -r ./siteconf20220117-74075-2421b4.rb extconf.rb
checking for whether -std=c99 is accepted as CFLAGS... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/opt/local/bin/$(RUBY_BASE_NAME)3.1
	--help
	--clean
	--prevent-strip
/opt/local/lib/ruby3.1/3.1.0/mkmf.rb:498:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:624:in `block in try_compile'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:571:in `with_werror'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:624:in `try_compile'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:688:in `try_cflags'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:694:in `block (2 levels) in append_cflags'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:1007:in `block in checking_for'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:362:in `block (2 levels) in postpone'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:332:in `open'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:362:in `block in postpone'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:332:in `open'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:358:in `postpone'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:1006:in `checking_for'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:693:in `block in append_cflags'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:692:in `each'
	from /opt/local/lib/ruby3.1/3.1.0/mkmf.rb:692:in `append_cflags'
	from extconf.rb:603:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_ruby_rb-nokogiri/rb31-nokogiri/work/destroot/opt/local/lib/ruby3.1/gems/3.1.0/extensions/x86_64-darwin-16/3.1.0/nokogiri-1.13.1/mkmf.log

extconf failed, exit code 1

Change History (2)

comment:1 Changed 3 years ago by kimuraw (kimura wataru)

Status: assignedaccepted

I reproduced this error. I'll fix this problem in PortGoup ruby.

note:

  • ruby30 or later has "compiler.blacklist { clang < 901 }"
  • ruby try to compile a C-extension with compiler that used compiling "ruby" itself
  • if the compiler does not exist on users' environment, this error occurs.

(OS X 11 El Capitan)

% ruby3.1 --version
ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-darwin15]
% ruby3.1 -rpp -e 'pp RbConfig::CONFIG["CC"]'
"/opt/local/bin/clang-mp-9.0"
% file /opt/local/bin/clang-mp-9.0
/opt/local/bin/clang-mp-9.0: cannot open `/opt/local/bin/clang-mp-9.0' (No such file or directory)

comment:2 Changed 3 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added
Note: See TracTickets for help on using tickets.