Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[install] 1.12.2: gumbo.c compilation failure on el6, el7, sles12 #2302

Closed
1 task done
jkschulz opened this issue Aug 5, 2021 · 8 comments
Closed
1 task done

[install] 1.12.2: gumbo.c compilation failure on el6, el7, sles12 #2302

jkschulz opened this issue Aug 5, 2021 · 8 comments
Labels
topic/installation Installation difficulties

Comments

@jkschulz
Copy link

jkschulz commented Aug 5, 2021

Installation fails on CentOS 6, CentOS 7, and SLES 12 for v1.12.0+ with libgumbo errors. Works fine on CentOS 8 and SLES 15.

Have you read and followed the installation tutorial at http://www.nokogiri.org/tutorials/installing_nokogiri.html?

  • Yes!

What is the complete output of gem install or bundle install?

    Building native extensions with: '--use-system-libraries --with-xml2-lib=/opt/google-fluentd/embedded/lib --with-xml2-include=/opt/google-fluentd/embedded/include/libxml2 --with-xslt-lib=/opt/google-fluentd/embedded/lib --with-xslt-include=/opt/google-fluentd/embedded/include/libxslt --without-iconv --with-zlib-dir=/opt/google-fluentd/embedded'
This could take a while...
Successfully installed racc-1.5.2
Successfully installed mini_portile2-2.6.1
Building native extensions with: '--use-system-libraries --with-xml2-lib=/opt/google-fluentd/embedded/lib --with-xml2-include=/opt/google-fluentd/embedded/include/libxml2 --with-xslt-lib=/opt/google-fluentd/embedded/lib --with-xslt-include=/opt/google-fluentd/embedded/include/libxslt --without-iconv --with-zlib-dir=/opt/google-fluentd/embedded'
This could take a while...

Error:

    ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

    current directory: /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri
/opt/google-fluentd/embedded/bin/ruby -I /opt/google-fluentd/embedded/lib/ruby/2.6.0 -r ./siteconf20210805-77719-1i52lpf.rb extconf.rb --use-system-libraries --with-xml2-lib\=/opt/google-fluentd/embedded/lib --with-xml2-include\=/opt/google-fluentd/embedded/include/libxml2 --with-xslt-lib\=/opt/google-fluentd/embedded/lib --with-xslt-include\=/opt/google-fluentd/embedded/include/libxslt --without-iconv --with-zlib-dir\=/opt/google-fluentd/embedded
checking for whether -I/opt/google-fluentd/embedded/include is accepted as CFLAGS... yes
checking for whether -O2 is accepted as CFLAGS... yes
checking for whether -D_FORTIFY_SOURCE=2 is accepted as CFLAGS... yes
checking for whether -fstack-protector is accepted as CFLAGS... yes
checking for whether -I/opt/google-fluentd/embedded/include is accepted as CPPFLAGS... yes
checking for whether -O2 is accepted as CPPFLAGS... yes
checking for whether -D_FORTIFY_SOURCE=2 is accepted as CPPFLAGS... yes
checking for whether -fstack-protector is accepted as CPPFLAGS... yes
checking for whether -Wl,-rpath,/opt/google-fluentd/embedded/lib is accepted as LDFLAGS... yes
checking for whether -L/opt/google-fluentd/embedded/lib is accepted as LDFLAGS... yes
checking for whether -g is accepted as CFLAGS... yes
checking for whether -Winline is accepted as CFLAGS... yes
checking for whether -Wmissing-noreturn is accepted as CFLAGS... yes
Building nokogiri using system libraries.
checking for gzdopen() in -lz... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
Using mini_portile version 2.6.1
---------- IMPORTANT NOTICE ----------
Building Nokogiri with a packaged version of libgumbo-1.0.0-nokogiri.
Configuration options: --enable-shared --disable-static
Copying gumbo-parser files into tmp/x86_64-pc-linux-gnu/ports/libgumbo/1.0.0-nokogiri/gumbo-parser...
Running 'compile' for libgumbo 1.0.0-nokogiri... OK
Activating libgumbo 1.0.0-nokogiri (from ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri)...
checking for whether -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include is accepted as CPPFLAGS... yes
checking for gumbo_parse_with_options() in gumbo.h... yes
checking for xmlHasFeature()... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
checking for vasprintf()... yes
checking for whether -DNOKOGIRI_OTHER_LIBRARY_VERSIONS="\"libgumbo:1.0.0-nokogiri\"" is accepted as CPPFLAGS... yes
creating Makefile

current directory: /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri
make "DESTDIR=" clean

current directory: /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri
make "DESTDIR="
compiling gumbo.c
gumbo.c: In function 'build_tree':
gumbo.c:228:9: error: 'for' loop initial declarations are only allowed in C99 mode
         for (size_t i = 0; i < attrs->length; i++) {
         ^
gumbo.c:228:9: note: use option -std=c99 or -std=gnu99 to compile your code
gumbo.c: In function 'add_errors':
gumbo.c:270:5: error: 'for' loop initial declarations are only allowed in C99 mode
     for (size_t i = 0; i < errors->length; i++) {
     ^
gumbo.c: In function 'fragment':
gumbo.c:485:5: error: 'for' loop initial declarations are only allowed in C99 mode
     for (VALUE node = ctx;
     ^
make: *** [gumbo.o] Error 1

make failed, exit code 2

Gem files will remain installed in /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2 for inspection.
Results logged to /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/nokogiri-1.12.2/gem_make.out

If installation failed during compilation, what are the complete contents of the mkmf.log file generated during the failed installation?

block in append_cflags: checking for whether -I/opt/google-fluentd/embedded/include is accepted as CFLAGS... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib     -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby  -lm   -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

"gcc -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC  -I/opt/google-fluentd/embedded/include -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cflags: checking for whether -O2 is accepted as CFLAGS... -------------------- yes

"gcc -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include  -O2 -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cflags: checking for whether -D_FORTIFY_SOURCE=2 is accepted as CFLAGS... -------------------- yes

"gcc -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2  -D_FORTIFY_SOURCE=2 -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cflags: checking for whether -fstack-protector is accepted as CFLAGS... -------------------- yes

"gcc -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2  -fstack-protector -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cppflags: checking for whether -I/opt/google-fluentd/embedded/include is accepted as CPPFLAGS... -------------------- yes

"gcc -E -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cppflags: checking for whether -O2 is accepted as CPPFLAGS... -------------------- yes

"gcc -E -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O2 conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cppflags: checking for whether -D_FORTIFY_SOURCE=2 is accepted as CPPFLAGS... -------------------- yes

"gcc -E -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -D_FORTIFY_SOURCE=2 conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cppflags: checking for whether -fstack-protector is accepted as CPPFLAGS... -------------------- yes

"gcc -E -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -fstack-protector conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_ldflags: checking for whether -Wl,-rpath,/opt/google-fluentd/embedded/lib is accepted as LDFLAGS... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib     -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -Wl,-rpath,/opt/google-fluentd/embedded/lib -lm   -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_ldflags: checking for whether -L/opt/google-fluentd/embedded/lib is accepted as LDFLAGS... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib     -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -L/opt/google-fluentd/embedded/lib -lm   -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cflags: checking for whether -g is accepted as CFLAGS... -------------------- yes

"gcc -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector  -g -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cflags: checking for whether -Winline is accepted as CFLAGS... -------------------- yes

"gcc -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g  -Winline -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

block in append_cflags: checking for whether -Wmissing-noreturn is accepted as CFLAGS... -------------------- yes

"gcc -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline  -Wmissing-noreturn -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

have_library: checking for gzdopen() in -lz... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib     -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lz  -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <zlib.h>
 4:
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13:
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))gzdopen; return !p; }
/* end */

--------------------

have_library: checking for xmlParseDoc() in -lxml2... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lz  -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lxml2 -lz  -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <libxml/parser.h>
 4:
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13:
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlParseDoc; return !p; }
/* end */

--------------------

have_library: checking for xsltParseStylesheetDoc() in -lxslt... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lxml2 -lz  -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lxslt -lxml2 -lz  -lm   -lc"
conftest.c: In function 't':
conftest.c:16:57: error: 'xsltParseStylesheetDoc' undeclared (first use in this function)
 int t(void) { void ((*volatile p)()); p = (void ((*)()))xsltParseStylesheetDoc; return !p; }
                                                         ^
conftest.c:16:57: note: each undeclared identifier is reported only once for each function it appears in
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <libxslt/xslt.h>
 4:
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13:
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))xsltParseStylesheetDoc; return !p; }
/* end */

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lxml2 -lz  -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lxslt -lxml2 -lz  -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <libxslt/xslt.h>
 4:
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13:
14:   return 0;
15: }
16: extern void xsltParseStylesheetDoc();
17: int t(void) { xsltParseStylesheetDoc(); return 0; }
/* end */

--------------------

have_library: checking for exsltFuncRegister() in -lexslt... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lxslt -lxml2 -lz  -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <libexslt/exslt.h>
 4:
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13:
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))exsltFuncRegister; return !p; }
/* end */

--------------------

"gcc -E -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libxml/xmlversion.h>
4: #if LIBXML_VERSION < 20621
5: #  error libxml2 is older than 2.6.21
6: #endif
/* end */

"gcc -E -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libxml/xmlversion.h>
4: #if LIBXML_VERSION < 20903
5: #  error libxml2 is older than 2.9.3
6: #endif
/* end */

block in append_cppflags: checking for whether -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include is accepted as CPPFLAGS... -------------------- yes

"gcc -E -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

have_func: checking for gumbo_parse_with_options() in gumbo.h... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <gumbo.h>
 4:
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13:
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))gumbo_parse_with_options; return !p; }
/* end */

--------------------

have_func: checking for xmlHasFeature()... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
conftest.c: In function 't':
conftest.c:14:57: error: 'xmlHasFeature' undeclared (first use in this function)
 int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlHasFeature; return !p; }
                                                         ^
conftest.c:14:57: note: each undeclared identifier is reported only once for each function it appears in
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlHasFeature; return !p; }
/* end */

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: extern void xmlHasFeature();
15: int t(void) { xmlHasFeature(); return 0; }
/* end */

--------------------

have_func: checking for xmlFirstElementChild()... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
conftest.c: In function 't':
conftest.c:14:57: error: 'xmlFirstElementChild' undeclared (first use in this function)
 int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlFirstElementChild; return !p; }
                                                         ^
conftest.c:14:57: note: each undeclared identifier is reported only once for each function it appears in
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlFirstElementChild; return !p; }
/* end */

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: extern void xmlFirstElementChild();
15: int t(void) { xmlFirstElementChild(); return 0; }
/* end */

--------------------

have_func: checking for xmlRelaxNGSetParserStructuredErrors()... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
conftest.c: In function 't':
conftest.c:14:57: error: 'xmlRelaxNGSetParserStructuredErrors' undeclared (first use in this function)
 int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlRelaxNGSetParserStructuredErrors; return !p; }
                                                         ^
conftest.c:14:57: note: each undeclared identifier is reported only once for each function it appears in
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlRelaxNGSetParserStructuredErrors; return !p; }
/* end */

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: extern void xmlRelaxNGSetParserStructuredErrors();
15: int t(void) { xmlRelaxNGSetParserStructuredErrors(); return 0; }
/* end */

--------------------

have_func: checking for xmlRelaxNGSetValidStructuredErrors()... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
conftest.c: In function 't':
conftest.c:14:57: error: 'xmlRelaxNGSetValidStructuredErrors' undeclared (first use in this function)
 int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlRelaxNGSetValidStructuredErrors; return !p; }
                                                         ^
conftest.c:14:57: note: each undeclared identifier is reported only once for each function it appears in
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlRelaxNGSetValidStructuredErrors; return !p; }
/* end */

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: extern void xmlRelaxNGSetValidStructuredErrors();
15: int t(void) { xmlRelaxNGSetValidStructuredErrors(); return 0; }
/* end */

--------------------

have_func: checking for xmlSchemaSetValidStructuredErrors()... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
conftest.c: In function 't':
conftest.c:14:57: error: 'xmlSchemaSetValidStructuredErrors' undeclared (first use in this function)
 int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlSchemaSetValidStructuredErrors; return !p; }
                                                         ^
conftest.c:14:57: note: each undeclared identifier is reported only once for each function it appears in
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlSchemaSetValidStructuredErrors; return !p; }
/* end */

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: extern void xmlSchemaSetValidStructuredErrors();
15: int t(void) { xmlSchemaSetValidStructuredErrors(); return 0; }
/* end */

--------------------

have_func: checking for xmlSchemaSetParserStructuredErrors()... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
conftest.c: In function 't':
conftest.c:14:57: error: 'xmlSchemaSetParserStructuredErrors' undeclared (first use in this function)
 int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlSchemaSetParserStructuredErrors; return !p; }
                                                         ^
conftest.c:14:57: note: each undeclared identifier is reported only once for each function it appears in
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlSchemaSetParserStructuredErrors; return !p; }
/* end */

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: extern void xmlSchemaSetParserStructuredErrors();
15: int t(void) { xmlSchemaSetParserStructuredErrors(); return 0; }
/* end */

--------------------

have_func: checking for vasprintf()... -------------------- yes

"gcc -o conftest -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn conftest.c  -L. -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib -L. -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -fstack-protector-strong -rdynamic -Wl,-export-dynamic -L/opt/google-fluentd/embedded/lib  -Wl,-rpath,/opt/google-fluentd/embedded/lib -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib    -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -Wl,-rpath,/opt/google-fluentd/embedded/lib -L/opt/google-fluentd/embedded/lib -lruby -lexslt -lxslt -lxml2 -lz  /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/lib/libgumbo.a -lm   -lc"
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     int (* volatile tp)(void)=(int (*)(void))&t;
 9:     printf("%d", (*tp)());
10:   }
11:
12:   return 0;
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))vasprintf; return !p; }
/* end */

--------------------

block in append_cppflags: checking for whether -DNOKOGIRI_OTHER_LIBRARY_VERSIONS="\"libgumbo:1.0.0-nokogiri\"" is accepted as CPPFLAGS... -------------------- yes

"gcc -E -I/opt/google-fluentd/embedded/include/ruby-2.6.0/x86_64-linux -I/opt/google-fluentd/embedded/include/ruby-2.6.0/ruby/backward -I/opt/google-fluentd/embedded/include/ruby-2.6.0 -I. -I/opt/google-fluentd/embedded/include/libxslt -I/opt/google-fluentd/embedded/include/libxml2 -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -I/opt/google-fluentd/embedded/include   -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -I/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/nokogiri-1.12.2/ext/nokogiri/ports/x86_64-pc-linux-gnu/libgumbo/1.0.0-nokogiri/include -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -O3 -g -pipe -fPIC -I/opt/google-fluentd/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -g -Winline -Wmissing-noreturn -DNOKOGIRI_OTHER_LIBRARY_VERSIONS="\"libgumbo:1.0.0-nokogiri\"" conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

Tell us about your system!

What is the output from ruby -v?

  • ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]

What is the output from gem -v?

  • 3.0.8

What is the output from gem env?

RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.8
  - RUBY VERSION: 2.5.3 (2018-10-18 patchlevel 105) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-2.5.3
  - USER INSTALLATION DIRECTORY: /root/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-2.5.3/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-2.5.3/bin
  - SPEC CACHE DIRECTORY: /root/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/local/rvm/gems/ruby-2.5.3
     - /usr/local/rvm/rubies/ruby-2.5.3/lib/ruby/gems/2.5.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/rvm/gems/ruby-2.5.3/bin
     - /usr/local/rvm/gems/ruby-2.5.3@global/bin
     - /usr/local/rvm/rubies/ruby-2.5.3/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/local/rvm/bin

If Linux or a BSD variant, please note:

  • the distro you're using:
    • CentOS 7 (CentOS Linux release 7.9.2009 (Core))
  • the output of uname -a:
    • Linux 27329c33e888 5.10.40-1rodete2-amd64 #1 SMP Debian 5.10.40-1rodete2 (2021-06-22) x86_64 x86_64 x86_64 GNU/Linux
@jkschulz jkschulz added the topic/installation Installation difficulties label Aug 5, 2021
@flavorjones flavorjones changed the title [install] gumbo.c compilation failure on el6, el7, sles12 [install] 1.12.2: gumbo.c compilation failure on el6, el7, sles12 Aug 5, 2021
@flavorjones
Copy link
Member

@jkschulz Thank you for submitting this report! I will take a look as soon as I can. In the meantime, you may want to work around this by installing v1.11.x which doesn't package libgumbo.

@stevecheckoway
Copy link
Contributor

Looks like we just need to be passing -std=c99.

@flavorjones
Copy link
Member

@stevecheckoway Right, but we are doing that!

https://github.com/sparklemotion/nokogiri/blob/main/gumbo-parser/src/Makefile#L5

So we need to reproduce this and figure out why it's not in effect. I should have time in the next day or so, but if you get to it first 👍

@stevecheckoway
Copy link
Contributor

Ah yes, so we are. I wonder if something is overriding the CFLAGS on centos or possibly filtering it.

I'm unlikely to have time in the next few days, unfortunately.

@jkschulz
Copy link
Author

jkschulz commented Aug 5, 2021

thanks @flavorjones and @stevecheckoway!

@flavorjones
Copy link
Member

@jkschulz OK, I've reproduced this and have a workaround for you.

Diagnosis

The failure is coming from compiling ext/nokogiri/gumbo.c, which is not being compiled with -std=c99 but apparently needs it (depending on the compiler defaults). We're correctly passing this to the compile phase of libgumbo, but not to the compilation of the C extension.

Workaround # 1

You can use the precompiled native gem instead of compiling during installation, as the x86_64-linux platform is supported for Ruby 2.5. Please see the installation guide for help with this. (It's not clear from this issue why (or how) you're opting out of the native gem).

Workaround # 2

Or, if you need to compile at installation time, you can set a CFLAGS enviroment variable, which will be passed to the compiler, like so:

CFLAGS=-std=c99 gem install nokogiri

Next steps

I want to add test coverage for RHEL/Centos and then fix this permanently. Will work on a PR in the next day or two.

@flavorjones
Copy link
Member

#2303 will fix this. It's going through CI now, and assuming it goes green I'll be able to cut a patch release tomorrow.

flavorjones added a commit that referenced this issue Aug 6, 2021
c99 fixes

---

**What problem is this PR intended to solve?**

#2302 reports a compilation failure on RHEL6, RHEL7, and SLES12. These are older distros (RHEL7 is running gcc 4.8) which seem to compile in a C90-ish mode by default that gives errors on C99-isms.

This PR removed the C99isms (which are errors) as well as some C90isms (which generate warnings). Specifically:

- don't declare a variable in a `for` statement (C99-ism)
- don't mix declarations and code (C90-ism)

This PR also cleans up some C casting related to how we're handling `const` qualifiers. Specifically:

- `gumbo.c` is now using `(const xmlChar *)` in place of `BAD_CAST` (which is an alias for `(xmlChar *)`)
- extracted the const-discard hack `(xmlChar *)(uintptr_t)ptr` into a macro `DISCARD_CONST_QUAL`
- introduce use of `DISCARD_CONST_QUAL` in one additional place in `xml_node.c`

As a result, even when using `-Wcast-qual` on older Rubies that support it, we now see no compiler warnings.

**Have you included adequate test coverage?**

I considered setting up CI using a comparable Centos docker image, but I didn't feel like there was much regression value to that test, given the nature of this failure. I could be argued into doing it, if anyone feels strongly.
@flavorjones flavorjones added this to the v1.12.x patch releases milestone Aug 6, 2021
flavorjones added a commit that referenced this issue Aug 6, 2021
@jkschulz
Copy link
Author

jkschulz commented Aug 6, 2021

wow, thanks for handling this so quickly! until the new release is out, we've pinned to 1.11.7 (as suggested) and it does indeed work 🙌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic/installation Installation difficulties
Projects
None yet
Development

No branches or pull requests

3 participants