sparklemotion / nokogiri

Nokogiri (鋸) makes it easy and painless to work with XML and HTML from Ruby.
https://nokogiri.org/
MIT License
6.15k stars 897 forks source link

Nokogiri 1.6.4 won't compile #1188

Closed scalp42 closed 9 years ago

scalp42 commented 10 years ago

Hi there,

We had to rollback to nokogiri 1.6.3.1 with libxml2 (2.9.0 instead of 2.9.2).

Log incoming.

Ubuntu 12.04 LTS

knu commented 10 years ago

You should at least include the platform name in a report. nokogiri --version is handy.

arnaud036 commented 10 years ago

mkmf.log:

root@ip-10-69-42-91:/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4/ext/nokogiri# cat mkmf.log
"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC  conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby  -lpthread -lrt -ldl -lcrypt -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/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC   {:werror=>true} -c conftest.c"
gcc: error: {:werror=: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

have_iconv?: checking for iconv using --with-opt-* flags... -------------------- yes

"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby  -lpthread -lrt -ldl -lcrypt -lm   -lc "
/tmp/ccG76sXi.o: In function `main':
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4/ext/nokogiri/conftest.c:8: undefined reference to `libiconv_open'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4/ext/nokogiri/conftest.c:9: undefined reference to `libiconv'
collect2: ld returned 1 exit status
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <stdlib.h>
 4: #include <iconv.h>
 5:
 6: int main(void)
 7: {
 8:     iconv_t cd = iconv_open("", "");
 9:     iconv(cd, NULL, NULL, NULL, NULL);
10:     return EXIT_SUCCESS;
11: }
/* end */

"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby -liconv -lpthread -lrt -ldl -lcrypt -lm   -lc "
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <stdlib.h>
 4: #include <iconv.h>
 5:
 6: int main(void)
 7: {
 8:     iconv_t cd = iconv_open("", "");
 9:     iconv(cd, NULL, NULL, NULL, NULL);
10:     return EXIT_SUCCESS;
11: }
/* end */

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

That line looks weird:

-fPIC   {:werror=>true} -c conftest.c"
arnaud036 commented 10 years ago

gem_make.out:

root@ip-10-69-42-91:/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4/ext/nokogiri# cat /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4/ext/nokogiri/gem_make.out
/opt/chef/embedded/bin/ruby extconf.rb
checking if the C compiler accepts ... no
Building nokogiri using packaged libraries.
checking for iconv using --with-opt-* flags... yes
************************************************************************
IMPORTANT NOTICE:

Buidling Nokogiri with a packaged version of libxml2-2.9.2
with the following patches applied:
    - 0001-Revert-Missing-initialization-for-the-catalog-module.patch
    - 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch

Team Nokogiri will keep on doing their best to provide security
updates in a timely manner, but if this is a concern for you and want
to use the system library instead; abort this installation process and
reinstall nokogiri as follows:

    gem install nokogiri -- --use-system-libraries
        [--with-xml2-config=/path/to/xml2-config]
        [--with-xslt-config=/path/to/xslt-config]

If you are using Bundler, tell it to use the option:

    bundle config build.nokogiri --use-system-libraries
    bundle install

Note, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2... OK
Running patch with /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch...
Running 'patch' for libxml2 2.9.2... OK
Running patch with /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4/ports/patches/libxml2/0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch...
Running 'patch' for libxml2 2.9.2... OK
Running 'configure' for libxml2 2.9.2... OK
Running 'compile' for libxml2 2.9.2... ERROR, review '/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/compile.log' to see what happened.
*** 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/chef/embedded/bin/ruby
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:279:in `block in execute': Failed to complete compile task (RuntimeError)
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:271:in `chdir'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:271:in `execute'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:70:in `compile'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:110:in `cook'
    from extconf.rb:268:in `block in process_recipe'
    from extconf.rb:167:in `tap'
    from extconf.rb:167:in `process_recipe'
    from extconf.rb:455:in `<main>'
arnaud036 commented 10 years ago

Using nokogiri 1.6.3.1:

root@ip-10-69-42-91:/opt/chef/embedded/bin# ./gem install nokogiri -v 1.6.3.1
Fetching: mini_portile-0.6.0.gem (100%)
Fetching: nokogiri-1.6.3.1.gem (100%)
Building native extensions.  This could take a while...
Building nokogiri using packaged libraries.
Building libxml2-2.8.0 for nokogiri with the following patches applied:
    - 0001-Fix-parser-local-buffers-size-problems.patch
    - 0002-Fix-entities-local-buffers-size-problems.patch
    - 0003-Fix-an-error-in-previous-commit.patch
    - 0004-Fix-potential-out-of-bound-access.patch
    - 0005-Detect-excessive-entities-expansion-upon-replacement.patch
    - 0006-Do-not-fetch-external-parsed-entities.patch
    - 0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch
    - 0008-Improve-handling-of-xmlStopParser.patch
    - 0009-Fix-a-couple-of-return-without-value.patch
    - 0010-Keep-non-significant-blanks-node-in-HTML-parser.patch
    - 0011-Do-not-fetch-external-parameter-entities.patch
************************************************************************
IMPORTANT!  Nokogiri builds and uses a packaged version of libxml2.

If this is a concern for you and you want to use the system library
instead, abort this installation process and reinstall nokogiri as
follows:

    gem install nokogiri -- --use-system-libraries

If you are using Bundler, tell it to use the option:

    bundle config build.nokogiri --use-system-libraries
    bundle install

However, note that nokogiri does not necessarily support all versions
of libxml2.

For example, libxml2-2.9.0 and higher are currently known to be broken
and thus unsupported by nokogiri, due to compatibility problems and
XPath optimization bugs.
************************************************************************
Building libxslt-1.1.28 for nokogiri with the following patches applied:
    - 0001-Adding-doc-update-related-to-1.1.28.patch
    - 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch
    - 0003-Initialize-pseudo-random-number-generator-with-curre.patch
    - 0004-EXSLT-function-str-replace-is-broken-as-is.patch
    - 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch
    - 0007-Separate-function-for-predicate-matching-in-patterns.patch
    - 0008-Fix-direct-pattern-matching.patch
    - 0009-Fix-certain-patterns-with-predicates.patch
    - 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch
    - 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch
    - 0014-Fix-for-bug-436589.patch
    - 0015-Fix-mkdir-for-mingw.patch
************************************************************************
IMPORTANT!  Nokogiri builds and uses a packaged version of libxslt.

If this is a concern for you and you want to use the system library
instead, abort this installation process and reinstall nokogiri as
follows:

    gem install nokogiri -- --use-system-libraries

If you are using Bundler, tell it to use the option:

    bundle config build.nokogiri --use-system-libraries
    bundle install
************************************************************************
Successfully installed mini_portile-0.6.0
Successfully installed nokogiri-1.6.3.1
2 gems installed
arnaud036 commented 10 years ago
root@ip-10-69-42-91:/opt/chef/embedded/bin# ./nokogiri --version
# Nokogiri (1.6.3.1)
    ---
    warnings: []
    nokogiri: 1.6.3.1
    ruby:
      version: 1.9.3
      platform: x86_64-linux
      description: ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]
      engine: ruby
    libxml:
      binding: extension
      source: packaged
      libxml2_path: /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.3.1/ports/x86_64-unknown-linux-gnu/libxml2/2.8.0
      libxslt_path: /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.3.1/ports/x86_64-unknown-linux-gnu/libxslt/1.1.28
      compiled: 2.8.0
      loaded: 2.8.0

Had to use 1.6.3.1 otherwise can't get it installed.

knu commented 10 years ago

OK, I'll look into this. I actually meant ruby -v in the above comment.

scalp42 commented 10 years ago

That would be ruby 1.9.3p429.

knu commented 10 years ago

Thanks, now I see the problem. Because of the wrong option CFLAGS passed in are dropped. The above commit should address it.

knu commented 10 years ago

@scalp42 Could you please test this? https://gems.idaemons.org/gems/nokogiri-1.6.4.1.test1.gem

arnaud036 commented 10 years ago

Using 1.6.4.1.test1:

root@ip-10-69-42-91:/opt/chef/embedded/bin# wget --no-check-certificate  https://gems.idaemons.org/gems/nokogiri-1.6.4.1.test1.gem
--2014-11-06 01:22:53--  https://gems.idaemons.org/gems/nokogiri-1.6.4.1.test1.gem
Resolving gems.idaemons.org (gems.idaemons.org)... 124.155.55.125
Connecting to gems.idaemons.org (gems.idaemons.org)|124.155.55.125|:443... connected.
WARNING: no certificate subject alternative name matches
    requested host name `gems.idaemons.org'.
HTTP request sent, awaiting response... 200 OK
Length: 9243136 (8.8M) [application/octet-stream]
Saving to: `nokogiri-1.6.4.1.test1.gem'

100%[=======================================================================================>] 9,243,136   2.16M/s   in 4.1s

2014-11-06 01:22:58 (2.16 MB/s) - `nokogiri-1.6.4.1.test1.gem' saved [9243136/9243136]

root@ip-10-69-42-91:/opt/chef/embedded/bin# ./gem install --local nokogiri-1.6.4.1.test1.gem
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri-1.6.4.1.test1.gem:
    ERROR: Failed to build gem native extension.

        /opt/chef/embedded/bin/ruby extconf.rb
checking if the C compiler accepts ... yes
Building nokogiri using packaged libraries.
checking for iconv using --with-opt-* flags... yes
************************************************************************
IMPORTANT NOTICE:

Buidling Nokogiri with a packaged version of libxml2-2.9.2
with the following patches applied:
    - 0001-Revert-Missing-initialization-for-the-catalog-module.patch
    - 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch

Team Nokogiri will keep on doing their best to provide security
updates in a timely manner, but if this is a concern for you and want
to use the system library instead; abort this installation process and
reinstall nokogiri as follows:

    gem install nokogiri -- --use-system-libraries
        [--with-xml2-config=/path/to/xml2-config]
        [--with-xslt-config=/path/to/xslt-config]

If you are using Bundler, tell it to use the option:

    bundle config build.nokogiri --use-system-libraries
    bundle install

Note, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2... OK
Running patch with /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch...
Running 'patch' for libxml2 2.9.2... OK
Running patch with /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ports/patches/libxml2/0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch...
Running 'patch' for libxml2 2.9.2... OK
Running 'configure' for libxml2 2.9.2... OK
Running 'compile' for libxml2 2.9.2... ERROR, review '/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/compile.log' to see what happened.
*** 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/chef/embedded/bin/ruby
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:279:in `block in execute': Failed to complete compile task (RuntimeError)
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:271:in `chdir'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:271:in `execute'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:70:in `compile'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.1/lib/mini_portile.rb:110:in `cook'
    from extconf.rb:268:in `block in process_recipe'
    from extconf.rb:167:in `tap'
    from extconf.rb:167:in `process_recipe'
    from extconf.rb:455:in `<main>'

Gem files will remain installed in /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1 for inspection.
Results logged to /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/gem_make.out

mkmf.log:

root@ip-10-69-42-91:/opt/chef/embedded/bin# cat /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/mkmf.log
"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC  conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby  -lpthread -lrt -ldl -lcrypt -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/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC    -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

have_iconv?: checking for iconv using --with-opt-* flags... -------------------- yes

"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC  -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby  -lpthread -lrt -ldl -lcrypt -lm   -lc "
/tmp/ccbXVKKZ.o: In function `main':
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/conftest.c:8: undefined reference to `libiconv_open'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/conftest.c:9: undefined reference to `libiconv'
collect2: ld returned 1 exit status
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <stdlib.h>
 4: #include <iconv.h>
 5:
 6: int main(void)
 7: {
 8:     iconv_t cd = iconv_open("", "");
 9:     iconv(cd, NULL, NULL, NULL, NULL);
10:     return EXIT_SUCCESS;
11: }
/* end */

"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC  -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby -liconv -lpthread -lrt -ldl -lcrypt -lm   -lc "
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <stdlib.h>
 4: #include <iconv.h>
 5:
 6: int main(void)
 7: {
 8:     iconv_t cd = iconv_open("", "");
 9:     iconv(cd, NULL, NULL, NULL, NULL);
10:     return EXIT_SUCCESS;
11: }
/* end */

--------------------
knu commented 10 years ago

@scalp42 Thanks, seems at least it went past the part I fixed. Now we have to look into how libxml2 is failing to build.

scalp42 commented 10 years ago

Yep indeed. We gonna pin it to the previous version of Nokogiri in the meantime but thanks a lot for looking into it @knu !

knu commented 10 years ago

@scalp42 Can you locate .../ports/libxml2/2.9.2/compile.log in the gem directory and check out what's in it?

arnaud036 commented 10 years ago

compile.log:

root@ip-10-69-42-91:/opt/chef/embedded/bin# cat /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/compile.log
make  all-recursive
make[1]: Entering directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2'
Making all in include
make[2]: Entering directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2/include'
Making all in libxml
make[3]: Entering directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2/include/libxml'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2/include/libxml'
make[3]: Entering directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2/include'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2/include'
make[2]: Leaving directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2/include'
Making all in .
make[2]: Entering directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2'
  CC       SAX.lo
  CC       entities.lo
  CC       encoding.lo
  CC       error.lo
  CC       parserInternals.lo
  CC       parser.lo
  CC       tree.lo
  CC       hash.lo
  CC       list.lo
  CC       xmlIO.lo
  CC       xmlmemory.lo
  CC       uri.lo
  CC       valid.lo
  CC       xlink.lo
  CC       HTMLparser.lo
HTMLparser.c: In function ‘htmlParseElementInternal’:
HTMLparser.c:4369:5: warning: missing initializer [-Wmissing-field-initializers]
HTMLparser.c:4369:5: warning: (near initialization for ‘node_info.begin_pos’) [-Wmissing-field-initializers]
  CC       HTMLtree.lo
  CC       debugXML.lo
  CC       xpath.lo
xpath.c: In function ‘xmlXPathRegisterFuncNS’:
xpath.c:4875:5: warning: ISO C forbids passing argument 4 of ‘xmlHashAddEntry2’ between function pointer and ‘void *’ [-pedantic]
./include/libxml/hash.h:128:4: note: expected ‘void *’ but argument is of type ‘xmlXPathFunction’
xpath.c: In function ‘xmlXPathFunctionLookupNS’:
xpath.c:4956:24: warning: ISO C forbids assignment between function pointer and ‘void *’ [-pedantic]
xpath.c: In function ‘xmlXPathCompOpEval’:
xpath.c:13552:41: warning: ISO C forbids assignment between function pointer and ‘void *’ [-pedantic]
xpath.c:13579:31: warning: ISO C forbids assignment between function pointer and ‘void *’ [-pedantic]
xpath.c: At top level:
trionan.c:218:1: warning: ‘trio_is_negative’ defined but not used [-Wunused-function]
  CC       xpointer.lo
  CC       xinclude.lo
  CC       nanohttp.lo
  CC       nanoftp.lo
  CC       catalog.lo
  CC       globals.lo
  CC       threads.lo
threads.c:53:12: warning: redundant redeclaration of ‘pthread_once’ [-Wredundant-decls]
/usr/include/pthread.h:478:12: note: previous declaration of ‘pthread_once’ was here
threads.c:56:14: warning: redundant redeclaration of ‘pthread_getspecific’ [-Wredundant-decls]
/usr/include/pthread.h:1103:14: note: previous declaration of ‘pthread_getspecific’ was here
threads.c:58:12: warning: redundant redeclaration of ‘pthread_setspecific’ [-Wredundant-decls]
/usr/include/pthread.h:1106:12: note: previous declaration of ‘pthread_setspecific’ was here
threads.c:61:12: warning: redundant redeclaration of ‘pthread_key_create’ [-Wredundant-decls]
/usr/include/pthread.h:1095:12: note: previous declaration of ‘pthread_key_create’ was here
threads.c:64:12: warning: redundant redeclaration of ‘pthread_key_delete’ [-Wredundant-decls]
/usr/include/pthread.h:1100:12: note: previous declaration of ‘pthread_key_delete’ was here
threads.c:67:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:66:12: warning: redundant redeclaration of ‘pthread_mutex_init’ [-Wredundant-decls]
/usr/include/pthread.h:733:12: note: previous declaration of ‘pthread_mutex_init’ was here
threads.c:69:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:68:12: warning: redundant redeclaration of ‘pthread_mutex_destroy’ [-Wredundant-decls]
/usr/include/pthread.h:738:12: note: previous declaration of ‘pthread_mutex_destroy’ was here
threads.c:71:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:70:12: warning: redundant redeclaration of ‘pthread_mutex_lock’ [-Wredundant-decls]
/usr/include/pthread.h:746:12: note: previous declaration of ‘pthread_mutex_lock’ was here
threads.c:73:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:72:12: warning: redundant redeclaration of ‘pthread_mutex_unlock’ [-Wredundant-decls]
/usr/include/pthread.h:757:12: note: previous declaration of ‘pthread_mutex_unlock’ was here
threads.c:75:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:74:12: warning: redundant redeclaration of ‘pthread_cond_init’ [-Wredundant-decls]
/usr/include/pthread.h:952:12: note: previous declaration of ‘pthread_cond_init’ was here
threads.c:77:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:76:12: warning: redundant redeclaration of ‘pthread_cond_destroy’ [-Wredundant-decls]
/usr/include/pthread.h:957:12: note: previous declaration of ‘pthread_cond_destroy’ was here
threads.c:79:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:78:12: warning: redundant redeclaration of ‘pthread_cond_wait’ [-Wredundant-decls]
/usr/include/pthread.h:973:12: note: previous declaration of ‘pthread_cond_wait’ was here
threads.c:81:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:80:12: warning: redundant redeclaration of ‘pthread_equal’ [-Wredundant-decls]
/usr/include/pthread.h:270:12: note: previous declaration of ‘pthread_equal’ was here
threads.c:83:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:82:18: warning: redundant redeclaration of ‘pthread_self’ [-Wredundant-decls]
/usr/include/pthread.h:267:18: note: previous declaration of ‘pthread_self’ was here
threads.c:85:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:84:12: warning: redundant redeclaration of ‘pthread_key_create’ [-Wredundant-decls]
/usr/include/pthread.h:1095:12: note: previous declaration of ‘pthread_key_create’ was here
threads.c:87:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:86:12: warning: redundant redeclaration of ‘pthread_key_delete’ [-Wredundant-decls]
/usr/include/pthread.h:1100:12: note: previous declaration of ‘pthread_key_delete’ was here
threads.c:89:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
threads.c:88:12: warning: redundant redeclaration of ‘pthread_cond_signal’ [-Wredundant-decls]
/usr/include/pthread.h:961:12: note: previous declaration of ‘pthread_cond_signal’ was here
  CC       c14n.lo
  CC       xmlstring.lo
  CC       buf.lo
  CC       xmlregexp.lo
  CC       xmlschemas.lo
  CC       xmlschemastypes.lo
  CC       xmlunicode.lo
  CC       xmlreader.lo
  CC       relaxng.lo
  CC       dict.lo
  CC       SAX2.lo
  CC       xmlwriter.lo
  CC       legacy.lo
  CC       chvalid.lo
  CC       pattern.lo
  CC       xmlsave.lo
  CC       xmlmodule.lo
  CC       schematron.lo
  CC       xzlib.lo
  CCLD     libxml2.la
  CC       testdso.lo
  CCLD     testdso.la
  CC       xmllint.o
  CCLD     xmllint
./.libs/libxml2.a(xmlIO.o): In function `xmlGzfileOpen_real':
xmlIO.c:(.text+0xff4): undefined reference to `gzdopen'
xmlIO.c:(.text+0x10ac): undefined reference to `gzopen64'
./.libs/libxml2.a(xmlIO.o): In function `xmlGzfileOpenW':
xmlIO.c:(.text+0x11c6): undefined reference to `gzdopen'
xmlIO.c:(.text+0x1267): undefined reference to `gzopen64'
./.libs/libxml2.a(xmlIO.o): In function `xmlGzfileRead':
xmlIO.c:(.text+0x12ae): undefined reference to `gzread'
./.libs/libxml2.a(xmlIO.o): In function `xmlGzfileWrite':
xmlIO.c:(.text+0x12f6): undefined reference to `gzwrite'
./.libs/libxml2.a(xmlIO.o): In function `xmlGzfileClose':
xmlIO.c:(.text+0x132d): undefined reference to `gzclose'
./.libs/libxml2.a(xmlIO.o): In function `xmlFreeZMemBuff':
xmlIO.c:(.text+0x13e8): undefined reference to `deflateEnd'
./.libs/libxml2.a(xmlIO.o): In function `xmlCreateZMemBuff':
xmlIO.c:(.text+0x15b7): undefined reference to `deflateInit2_'
xmlIO.c:(.text+0x1642): undefined reference to `crc32'
./.libs/libxml2.a(xmlIO.o): In function `xmlZMemBuffAppend':
xmlIO.c:(.text+0x19b9): undefined reference to `deflate'
xmlIO.c:(.text+0x1a58): undefined reference to `crc32'
./.libs/libxml2.a(xmlIO.o): In function `xmlZMemBuffGetContent':
xmlIO.c:(.text+0x1ae7): undefined reference to `deflate'
./.libs/libxml2.a(xmlIO.o): In function `__xmlParserInputBufferCreateFilename':
xmlIO.c:(.text+0x2f43): undefined reference to `gzdirect'
./.libs/libxml2.a(nanohttp.o): In function `xmlNanoHTTPFreeCtxt':
nanohttp.c:(.text+0x83b): undefined reference to `inflateEnd'
./.libs/libxml2.a(nanohttp.o): In function `xmlNanoHTTPScanAnswer':
nanohttp.c:(.text+0x17df): undefined reference to `inflateInit2_'
./.libs/libxml2.a(nanohttp.o): In function `xmlNanoHTTPRead':
nanohttp.c:(.text+0x21b2): undefined reference to `inflate'
collect2: ld returned 1 exit status
make[2]: *** [xmllint] Error 1
make[2]: Leaving directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test1/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/libxml2-2.9.2'
make: *** [all] Error 2
scalp42 commented 10 years ago

My minion @arnaud036 got it for you @knu ! :tada:

arnaud036 commented 10 years ago

lol

knu commented 10 years ago

Thanks for the quick response! It looks like zlib is missing. Do you have zlib-dev or whatever is called in the OS? What if you installed it?

knu commented 10 years ago

Probably nokogiri can check if zlib (libz) is there before kicking the build of libxml2.

scalp42 commented 10 years ago

Worked successfully!

root@ip-10-69-42-91:/opt/chef/embedded/bin# ./gem install --local nokogiri-1.6.4.1.test1.gem
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.4.1.test1
1 gem installed
arnaud036 commented 10 years ago

Package that did it:

apt-get install libghc-zlib-dev

Other possible candidate:

zlib1g-dev on 12.04

scalp42 commented 10 years ago

knu commented 10 years ago

@scalp42 Great! I suppose libghc-zlib-dev might be too much; zlib1g-dev should suffice on your platform.

scalp42 commented 10 years ago

Thanks a lot for jumping on this. Do you have an idea on the timeline to push to rubygems please?

scalp42 commented 10 years ago

knu commented 10 years ago

@scalp42 Hopefully in a couple of days. Thanks much for your feedback!

knu commented 10 years ago

Added a check for zlib.

@scalp42 I'd really appreciate if you could kindly test it:

  1. uninstall zlib1g-dev
  2. gem install https://gems.idaemons.org/gems/nokogiri-1.6.4.1.test2.gem -- should get a failure with a message "zlib is missing; necessary for building libxml2"
  3. reinstall zlib1g-dev
  4. gem install https://gems.idaemons.org/gems/nokogiri-1.6.4.1.test2.gem -- should succeed just as 1.6.4.1.test1 did
FestivalBobcats commented 10 years ago

I want to kiss you all right on the mouth. Many hours spent banging head against wall... installing zlib1g-dev prior to installing the gem resolved it.

jonbca commented 10 years ago

And if you're a CentOS/RHEL user, it's sudo yum install zlib-devel

scalp42 commented 10 years ago

@knu sorry for the delay here, gonna try right now.

scalp42 commented 10 years ago

Without zlib1g-dev:

root@zs-common-scalp-vagrant-vbox-1:/opt/chef/embedded/bin# ./gem install --local nokogiri-1.6.4.1.test2.gem
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri-1.6.4.1.test2.gem:
    ERROR: Failed to build gem native extension.

        /opt/chef/embedded/bin/ruby extconf.rb
checking if the C compiler accepts ... yes
Building nokogiri using packaged libraries.
checking for gzdopen() in -lz... yes
checking for iconv using --with-opt-* flags... yes
************************************************************************
IMPORTANT NOTICE:

Buidling Nokogiri with a packaged version of libxml2-2.9.2
with the following patches applied:
    - 0001-Revert-Missing-initialization-for-the-catalog-module.patch
    - 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch

Team Nokogiri will keep on doing their best to provide security
updates in a timely manner, but if this is a concern for you and want
to use the system library instead; abort this installation process and
reinstall nokogiri as follows:

    gem install nokogiri -- --use-system-libraries
        [--with-xml2-config=/path/to/xml2-config]
        [--with-xslt-config=/path/to/xslt-config]

If you are using Bundler, tell it to use the option:

    bundle config build.nokogiri --use-system-libraries
    bundle install

Note, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2... OK
Running patch with /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test2/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch...
Running 'patch' for libxml2 2.9.2... OK
Running patch with /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test2/ports/patches/libxml2/0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch...
Running 'patch' for libxml2 2.9.2... OK
Running 'configure' for libxml2 2.9.2... OK
Running 'compile' for libxml2 2.9.2... ERROR, review 'tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/compile.log' to see what happened.
*** 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/chef/embedded/bin/ruby
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.0/lib/mini_portile.rb:279:in `block in execute': Failed to complete compile task (RuntimeError)
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.0/lib/mini_portile.rb:271:in `chdir'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.0/lib/mini_portile.rb:271:in `execute'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.0/lib/mini_portile.rb:70:in `compile'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mini_portile-0.6.0/lib/mini_portile.rb:110:in `cook'
    from extconf.rb:268:in `block in process_recipe'
    from extconf.rb:167:in `tap'
    from extconf.rb:167:in `process_recipe'
    from extconf.rb:459:in `<main>'

Gem files will remain installed in /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test2 for inspection.
Results logged to /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test2/ext/nokogiri/gem_make.out
root@zs-common-scalp-vagrant-vbox-1:/opt/chef/embedded/bin# cat /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test2/ext/nokogiri/mkmf.log
"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC  conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby  -lpthread -lrt -ldl -lcrypt -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/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC    -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

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

"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC  -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby -lz  -lpthread -lrt -ldl -lcrypt -lm   -lc "
conftest.c: In function ‘t’:
conftest.c:6:28: warning: variable ‘p’ set but not used [-Wunused-but-set-variable]
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <zlib.h>
 4:
 5: /*top*/
 6: int t() { void ((*volatile p)()); p = (void ((*)()))gzdopen; return 0; }
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     printf("%p", &t);
11:   }
12:
13:   return 0;
14: }
/* end */

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

have_iconv?: checking for iconv using --with-opt-* flags... -------------------- yes

"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC  -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby  -lpthread -lrt -ldl -lcrypt -lm   -lc "
/tmp/ccwKAnUw.o: In function `main':
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test2/ext/nokogiri/conftest.c:8: undefined reference to `libiconv_open'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.4.1.test2/ext/nokogiri/conftest.c:9: undefined reference to `libiconv'
collect2: ld returned 1 exit status
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <stdlib.h>
 4: #include <iconv.h>
 5:
 6: int main(void)
 7: {
 8:     iconv_t cd = iconv_open("", "");
 9:     iconv(cd, NULL, NULL, NULL, NULL);
10:     return EXIT_SUCCESS;
11: }
/* end */

"gcc -o conftest -I/opt/chef/embedded/include/ruby-1.9.1/x86_64-linux -I/opt/chef/embedded/include/ruby-1.9.1/ruby/backward -I/opt/chef/embedded/include/ruby-1.9.1 -I.    -I/opt/chef/embedded/include -I/opt/chef/embedded/include -O3 -g -pipe -fPIC  -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L/opt/chef/embedded/lib -Wl,-R/opt/chef/embedded/lib -L. -Wl,-rpath,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/chef/embedded/lib  -Wl,-R/opt/chef/embedded/lib      -Wl,-R -Wl,/opt/chef/embedded/lib -L/opt/chef/embedded/lib -lruby -liconv -lpthread -lrt -ldl -lcrypt -lm   -lc "
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <stdlib.h>
 4: #include <iconv.h>
 5:
 6: int main(void)
 7: {
 8:     iconv_t cd = iconv_open("", "");
 9:     iconv(cd, NULL, NULL, NULL, NULL);
10:     return EXIT_SUCCESS;
11: }
/* end */

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

I don't see any message related to zlib missing (https://github.com/sparklemotion/nokogiri/commit/e7c47565323ddcc08355fa1aa62432a9881ca706)

jonforums commented 10 years ago

Source builds on 64bit win8.1 mri 2.1.5-p270 32bit also borked due to bad {:werror=>true} arg provided to conftest.c test

http://paste.ubuntu.com/8855338/

knu commented 10 years ago

@scalp42 Thanks for testing! I didn't expect it would find gzdopen() in -lz (which is checked with #include <zlib.h>) without zlib1g-dev installed. I wonder what package is providing zlib.h on your system.

scalp42 commented 10 years ago

@knu let me try to find which package providing it.

scalp42 commented 10 years ago

Ubuntu 12.04 reports:

http://packages.ubuntu.com/search?searchon=contents&keywords=zlib.h&mode=exactfilename&suite=precise&arch=amd64

I'll look on a box to make sure.

scalp42 commented 10 years ago
#> uname -a
Linux zs-common-scalp-vagrant-vbox-1 3.11.0-26-generic #45~precise1-Ubuntu SMP Tue Jul 15 04:02:35 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
apt-file search zlib.h | awk '{print $1}' | tr -d ':' | xargs -I% -P1 sh -c '{ dpkg -s % 2>&1 | grep -i "status"; }'

Unfortunately, I get no matches.

The only zlib.h is the one coming from the embedded ruby in chef-client:

root@zs-common-scalp-vagrant-vbox-1:~# locate zlib.h
/opt/chef/embedded/include/zlib.h

Which might be why nothing is being triggered ?

root@zs-common-scalp-vagrant-vbox-1:~# /opt/chef/embedded/bin/gem --version
1.8.24

root@zs-common-scalp-vagrant-vbox-1:~# /opt/chef/embedded/bin/ruby --version
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]
flavorjones commented 10 years ago

There appears to be two different issues being discussed here -- one is the need for zlib, the other is for a bug in CFLAGS.

Would someone mind submitting a pull request to https://github.com/sparklemotion/nokogiri.org-tutorials with updated instructions for Ubuntu, Red Hat, etc.?

On Thu, Nov 6, 2014 at 6:48 PM, Anthony Scalisi notifications@github.com wrote:

> uname -a

Linux zs-common-scalp-vagrant-vbox-1 3.11.0-26-generic #45~precise1-Ubuntu SMP Tue Jul 15 04:02:35 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

apt-file search zlib.h | awk '{print $1}' | tr -d ':' | xargs -I% -P1 sh -c '{ dpkg -s % 2>&1 | grep -i "status"; }'

  • use apt-file to seach for that zlib library
  • grab every package matching
  • runs it against dpkg -s which should output the status if installed

Unfortunately, I get no matches.

The only zlib.h is the one coming from the embedded ruby in chef-client:

root@zs-common-scalp-vagrant-vbox-1:~# locate zlib.h /opt/chef/embedded/include/zlib.h

Which might be why nothing is being triggered ?

root@zs-common-scalp-vagrant-vbox-1:~# /opt/chef/embedded/bin/gem --version 1.8.24

root@zs-common-scalp-vagrant-vbox-1:~# /opt/chef/embedded/bin/ruby --version ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]

— Reply to this email directly or view it on GitHub https://github.com/sparklemotion/nokogiri/issues/1188#issuecomment-62073037 .

scalp42 commented 10 years ago

The bug for CFLAGS is fixed in nokogiri-1.6.4.1.test2.gem.

The other one for zlib is related to the actual output.

flavorjones commented 10 years ago

Riiight, I understand what you're saying, but I'd like to make sure that we capture the (new) requirement that zlib is present for nokogiri installation in the installation documentation.

On Thu, Nov 6, 2014 at 7:46 PM, Anthony Scalisi notifications@github.com wrote:

The bug for CFLAGS is fixed in nokogiri-1.6.4.1.test2.gem.

The other one for zlib is related to the actual output.

— Reply to this email directly or view it on GitHub https://github.com/sparklemotion/nokogiri/issues/1188#issuecomment-62078567 .

flavorjones commented 10 years ago

Also, I'd like to try to capture errors in the build process during our pre-release tests. We've had build problems with a couple of recent releases and I'd like to get better about spotting these problems before release.

@knu, any ideas on what we could have done better in this instance? Do we need better platform coverage?

flavorjones commented 10 years ago

@knu, your commit breaks the windows build process. I'll poke you on Slack.

flavorjones commented 10 years ago

I've released v1.6.4.1 addressing the :werror compilation issue.

On Thu, Nov 6, 2014 at 8:21 PM, Mike Dalessio mike.dalessio@gmail.com wrote:

Riiight, I understand what you're saying, but I'd like to make sure that we capture the (new) requirement that zlib is present for nokogiri installation in the installation documentation.

On Thu, Nov 6, 2014 at 7:46 PM, Anthony Scalisi notifications@github.com wrote:

The bug for CFLAGS is fixed in nokogiri-1.6.4.1.test2.gem.

The other one for zlib is related to the actual output.

— Reply to this email directly or view it on GitHub https://github.com/sparklemotion/nokogiri/issues/1188#issuecomment-62078567 .

ain commented 10 years ago

1.6.4.1 is still failing for me on Bundler:

libxml2 is missing.  Please locate mkmf.log to investigate how it is failing.

Installing with NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install of course worked, but it's a requirement that one would rather not have (in a team, on CI, etc.).

flavorjones commented 10 years ago

@ain can you please attach the contents of your mkmf.log? Do you have zlib dev libraries installed as mentioned above in this thread? What platform are you on (ruby and OS/distro)?

ain commented 10 years ago

mkmf.log:

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64   -lruby-static -framework CoreFoundation  -lpthread -ldl -lobjc  "
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

"gcc -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe   -arch x86_64  -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main() {return 0;}
/* end */

"gcc -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wno-error=unused-command-line-argument-hard-error-in-future  -arch x86_64  -Werror -c conftest.c"
error: unknown warning option '-Werror=unused-command-line-argument-hard-error-in-future'; did you mean '-Werror=unused-command-line-argument'? [-Werror,-Wunknown-warning-option]
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main() {return 0;}
/* end */

have_iconv?: checking for iconv... -------------------- yes

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64   -lruby-static -framework CoreFoundation  -lpthread -ldl -lobjc  "
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
Undefined symbols for architecture x86_64:
  "_iconv", referenced from:
      _main in conftest-418aa9.o
  "_iconv_open", referenced from:
      _main in conftest-418aa9.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <stdlib.h>
 4: #include <iconv.h>
 5: 
 6: int main(void)
 7: {
 8:     iconv_t cd = iconv_open("", "");
 9:     iconv(cd, NULL, NULL, NULL, NULL);
10:     return EXIT_SUCCESS;
11: }
/* end */

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64   -lruby-static -framework CoreFoundation -liconv -lpthread -ldl -lobjc  "
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <stdlib.h>
 4: #include <iconv.h>
 5: 
 6: int main(void)
 7: {
 8:     iconv_t cd = iconv_open("", "");
 9:     iconv(cd, NULL, NULL, NULL, NULL);
10:     return EXIT_SUCCESS;
11: }
/* end */

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

have_library: checking for main() in -llzma... -------------------- yes

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64   -lruby-static -framework CoreFoundation -llzma  -lpthread -ldl -lobjc  "
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
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:     printf("%p", &t);
 9:   }
10: 
11:   return 0;
12: }
13: int t(void) { void ((*volatile p)()); p = (void ((*)()))main; return 0; }
/* end */

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

have_func: checking for xmlParseDoc() in libxml/parser.h... -------------------- no

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/include -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -DNOKOGIRI_LIBXML2_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2\" -DNOKOGIRI_LIBXML2_PATCHES\=\"0001-Revert-Missing-initialization-for-the-catalog-module.patch\ 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch\" -DNOKOGIRI_LIBXSLT_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28\" -DNOKOGIRI_LIBXSLT_PATCHES\=\"0001-Adding-doc-update-related-to-1.1.28.patch\ 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch\ 0003-Initialize-pseudo-random-number-generator-with-curre.patch\ 0004-EXSLT-function-str-replace-is-broken-as-is.patch\ 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch\ 0007-Separate-function-for-predicate-matching-in-patterns.patch\ 0008-Fix-direct-pattern-matching.patch\ 0009-Fix-certain-patterns-with-predicates.patch\ 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch\ 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch\ 0014-Fix-for-bug-436589.patch\ 0015-Fix-mkdir-for-mingw.patch\" -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64  /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lruby-static -framework CoreFoundation /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lpthread -ldl -lobjc  "
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
Undefined symbols for architecture x86_64:
  "_libiconv", referenced from:
      _xmlIconvWrapper in libxml2.a(encoding.o)
  "_libiconv_close", referenced from:
      _xmlFindCharEncodingHandler in libxml2.a(encoding.o)
      _xmlCharEncCloseFunc in libxml2.a(encoding.o)
  "_libiconv_open", referenced from:
      _xmlFindCharEncodingHandler in libxml2.a(encoding.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
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:     printf("%p", &t);
11:   }
12: 
13:   return 0;
14: }
15: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlParseDoc; return 0; }
/* end */

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/include -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -DNOKOGIRI_LIBXML2_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2\" -DNOKOGIRI_LIBXML2_PATCHES\=\"0001-Revert-Missing-initialization-for-the-catalog-module.patch\ 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch\" -DNOKOGIRI_LIBXSLT_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28\" -DNOKOGIRI_LIBXSLT_PATCHES\=\"0001-Adding-doc-update-related-to-1.1.28.patch\ 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch\ 0003-Initialize-pseudo-random-number-generator-with-curre.patch\ 0004-EXSLT-function-str-replace-is-broken-as-is.patch\ 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch\ 0007-Separate-function-for-predicate-matching-in-patterns.patch\ 0008-Fix-direct-pattern-matching.patch\ 0009-Fix-certain-patterns-with-predicates.patch\ 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch\ 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch\ 0014-Fix-for-bug-436589.patch\ 0015-Fix-mkdir-for-mingw.patch\" -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64  /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lruby-static -framework CoreFoundation /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lpthread -ldl -lobjc  "
conftest.c:15:27: error: too few arguments to function call, single argument 'cur' was not specified
int t(void) { xmlParseDoc(); return 0; }
              ~~~~~~~~~~~ ^
/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2/libxml/parser.h:841:11: note: 'xmlParseDoc' declared here
XMLPUBFUN xmlDocPtr XMLCALL
          ^
1 error generated.
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:     printf("%p", &t);
11:   }
12: 
13:   return 0;
14: }
15: int t(void) { xmlParseDoc(); return 0; }
/* end */

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

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

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/include -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -DNOKOGIRI_LIBXML2_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2\" -DNOKOGIRI_LIBXML2_PATCHES\=\"0001-Revert-Missing-initialization-for-the-catalog-module.patch\ 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch\" -DNOKOGIRI_LIBXSLT_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28\" -DNOKOGIRI_LIBXSLT_PATCHES\=\"0001-Adding-doc-update-related-to-1.1.28.patch\ 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch\ 0003-Initialize-pseudo-random-number-generator-with-curre.patch\ 0004-EXSLT-function-str-replace-is-broken-as-is.patch\ 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch\ 0007-Separate-function-for-predicate-matching-in-patterns.patch\ 0008-Fix-direct-pattern-matching.patch\ 0009-Fix-certain-patterns-with-predicates.patch\ 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch\ 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch\ 0014-Fix-for-bug-436589.patch\ 0015-Fix-mkdir-for-mingw.patch\" -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64  /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lruby-static -framework CoreFoundation -lxml2 /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lpthread -ldl -lobjc  "
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
Undefined symbols for architecture x86_64:
  "_libiconv", referenced from:
      _xmlIconvWrapper in libxml2.a(encoding.o)
  "_libiconv_close", referenced from:
      _xmlFindCharEncodingHandler in libxml2.a(encoding.o)
      _xmlCharEncCloseFunc in libxml2.a(encoding.o)
  "_libiconv_open", referenced from:
      _xmlFindCharEncodingHandler in libxml2.a(encoding.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
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:     printf("%p", &t);
11:   }
12: 
13:   return 0;
14: }
15: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlParseDoc; return 0; }
/* end */

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/include -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -DNOKOGIRI_LIBXML2_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2\" -DNOKOGIRI_LIBXML2_PATCHES\=\"0001-Revert-Missing-initialization-for-the-catalog-module.patch\ 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch\" -DNOKOGIRI_LIBXSLT_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28\" -DNOKOGIRI_LIBXSLT_PATCHES\=\"0001-Adding-doc-update-related-to-1.1.28.patch\ 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch\ 0003-Initialize-pseudo-random-number-generator-with-curre.patch\ 0004-EXSLT-function-str-replace-is-broken-as-is.patch\ 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch\ 0007-Separate-function-for-predicate-matching-in-patterns.patch\ 0008-Fix-direct-pattern-matching.patch\ 0009-Fix-certain-patterns-with-predicates.patch\ 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch\ 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch\ 0014-Fix-for-bug-436589.patch\ 0015-Fix-mkdir-for-mingw.patch\" -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64  /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lruby-static -framework CoreFoundation -lxml2 /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lpthread -ldl -lobjc  "
conftest.c:15:27: error: too few arguments to function call, single argument 'cur' was not specified
int t(void) { xmlParseDoc(); return 0; }
              ~~~~~~~~~~~ ^
/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2/libxml/parser.h:841:11: note: 'xmlParseDoc' declared here
XMLPUBFUN xmlDocPtr XMLCALL
          ^
1 error generated.
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:     printf("%p", &t);
11:   }
12: 
13:   return 0;
14: }
15: int t(void) { xmlParseDoc(); return 0; }
/* end */

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

have_library: checking for xmlParseDoc() in -llibxml2... -------------------- no

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/include -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -DNOKOGIRI_LIBXML2_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2\" -DNOKOGIRI_LIBXML2_PATCHES\=\"0001-Revert-Missing-initialization-for-the-catalog-module.patch\ 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch\" -DNOKOGIRI_LIBXSLT_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28\" -DNOKOGIRI_LIBXSLT_PATCHES\=\"0001-Adding-doc-update-related-to-1.1.28.patch\ 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch\ 0003-Initialize-pseudo-random-number-generator-with-curre.patch\ 0004-EXSLT-function-str-replace-is-broken-as-is.patch\ 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch\ 0007-Separate-function-for-predicate-matching-in-patterns.patch\ 0008-Fix-direct-pattern-matching.patch\ 0009-Fix-certain-patterns-with-predicates.patch\ 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch\ 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch\ 0014-Fix-for-bug-436589.patch\ 0015-Fix-mkdir-for-mingw.patch\" -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64  /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lruby-static -framework CoreFoundation -llibxml2 /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lpthread -ldl -lobjc  "
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
ld: library not found for -llibxml2
clang: error: linker command failed with exit code 1 (use -v to see invocation)
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:     printf("%p", &t);
11:   }
12: 
13:   return 0;
14: }
15: int t(void) { void ((*volatile p)()); p = (void ((*)()))xmlParseDoc; return 0; }
/* end */

"gcc -o conftest -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/ain/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0 -I. -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/include -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -I/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -DNOKOGIRI_LIBXML2_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2\" -DNOKOGIRI_LIBXML2_PATCHES\=\"0001-Revert-Missing-initialization-for-the-catalog-module.patch\ 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch\" -DNOKOGIRI_LIBXSLT_PATH\=\"/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28\" -DNOKOGIRI_LIBXSLT_PATCHES\=\"0001-Adding-doc-update-related-to-1.1.28.patch\ 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch\ 0003-Initialize-pseudo-random-number-generator-with-curre.patch\ 0004-EXSLT-function-str-replace-is-broken-as-is.patch\ 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch\ 0007-Separate-function-for-predicate-matching-in-patterns.patch\ 0008-Fix-direct-pattern-matching.patch\ 0009-Fix-certain-patterns-with-predicates.patch\ 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch\ 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch\ 0014-Fix-for-bug-436589.patch\ 0015-Fix-mkdir-for-mingw.patch\" -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 -pipe  -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES conftest.c  -L. -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib -L/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector   -arch x86_64  /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lruby-static -framework CoreFoundation -llibxml2 /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libexslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxslt/1.1.28/lib/libxslt.a -lm -liconv -lpthread -lz /Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/lib/libxml2.a -llzma -lpthread -ldl -lobjc  "
conftest.c:15:27: error: too few arguments to function call, single argument 'cur' was not specified
int t(void) { xmlParseDoc(); return 0; }
              ~~~~~~~~~~~ ^
/Users/ain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.9.2/include/libxml2/libxml/parser.h:841:11: note: 'xmlParseDoc' declared here
XMLPUBFUN xmlDocPtr XMLCALL
          ^
1 error generated.
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:     printf("%p", &t);
11:   }
12: 
13:   return 0;
14: }
15: int t(void) { xmlParseDoc(); return 0; }
/* end */

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

Update: upgrading Ruby to 2.1.4 resolved 1.6.4.1 installation problems. Update: back at the issue on 2.1.5, resolved by NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install

natevick commented 9 years ago

I'm getting the following error while building 1.6.4.1 on Mac OS X 10.9.5 Xcode 6.1 with Ruby 2.1.3, 2.1.4, 2.1.5.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /Users/nvick/.rbenv/versions/2.1.4/bin/ruby extconf.rb --use-system-libraries:false
checking if the C compiler accepts ... yes
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... no
Building nokogiri using packaged libraries.
checking for iconv... yes
************************************************************************
IMPORTANT NOTICE:

Buidling Nokogiri with a packaged version of libxml2-2.9.2
with the following patches applied:
    - 0001-Revert-Missing-initialization-for-the-catalog-module.patch
    - 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch

Team Nokogiri will keep on doing their best to provide security
updates in a timely manner, but if this is a concern for you and want
to use the system library instead; abort this installation process and
reinstall nokogiri as follows:

    gem install nokogiri -- --use-system-libraries
        [--with-xml2-config=/path/to/xml2-config]
        [--with-xslt-config=/path/to/xslt-config]

If you are using Bundler, tell it to use the option:

    bundle config build.nokogiri --use-system-libraries
    bundle install

Note, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-apple-darwin13.4.0/ports/libxml2/2.9.2... OK
Running patch with /Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch...
Running 'patch' for libxml2 2.9.2... OK
Running patch with /Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/patches/libxml2/0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch...
Running 'patch' for libxml2 2.9.2... OK
Running 'configure' for libxml2 2.9.2... OK
Running 'compile' for libxml2 2.9.2... ERROR, review '/Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ext/nokogiri/tmp/x86_64-apple-darwin13.4.0/ports/libxml2/2.9.2/compile.log' to see what happened.
*** 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
    --without-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=/Users/nvick/.rbenv/versions/2.1.4/bin/ruby
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build
/Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/mini_portile-0.6.1/lib/mini_portile.rb:279:in `block in execute': Failed to complete compile task (RuntimeError)
    from /Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/mini_portile-0.6.1/lib/mini_portile.rb:271:in `chdir'
    from /Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/mini_portile-0.6.1/lib/mini_portile.rb:271:in `execute'
    from /Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/mini_portile-0.6.1/lib/mini_portile.rb:70:in `compile'
    from /Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/mini_portile-0.6.1/lib/mini_portile.rb:110:in `cook'
    from extconf.rb:268:in `block in process_recipe'
    from extconf.rb:167:in `tap'
    from extconf.rb:167:in `process_recipe'
    from extconf.rb:455:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1 for inspection.
Results logged to /Users/nvick/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.4.1/gem_make.out
An error occurred while installing nokogiri (1.6.4.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.4.1'` succeeds before bundling.

I have tried building against system libs and I get different errors.

natevick commented 9 years ago

Here is the libxml2 compile.log file:

/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in include
Making all in libxml
make[3]: Nothing to be done for `all'.
make[3]: Nothing to be done for `all-am'.
Making all in .
  CC       SAX.lo
  CC       entities.lo
  CC       encoding.lo
encoding.c:491:26: warning: cast from 'const unsigned char *' to 'unsigned short *' increases required alignment from 1 to 2 [-Wcast-align]
    unsigned short* in = (unsigned short*) inb;
                         ^~~~~~~~~~~~~~~~~~~~~
encoding.c:573:27: warning: cast from 'unsigned char *' to 'unsigned short *' increases required alignment from 1 to 2 [-Wcast-align]
    unsigned short* out = (unsigned short*) outb;
                          ^~~~~~~~~~~~~~~~~~~~~~
encoding.c:729:26: warning: cast from 'const unsigned char *' to 'unsigned short *' increases required alignment from 1 to 2 [-Wcast-align]
    unsigned short* in = (unsigned short*) inb;
                         ^~~~~~~~~~~~~~~~~~~~~
encoding.c:815:27: warning: cast from 'unsigned char *' to 'unsigned short *' increases required alignment from 1 to 2 [-Wcast-align]
    unsigned short* out = (unsigned short*) outb;
                          ^~~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
  CC       error.lo
  CC       parserInternals.lo
  CC       parser.lo
  CC       tree.lo
  CC       hash.lo
  CC       list.lo
  CC       xmlIO.lo
  CC       xmlmemory.lo
xmlmemory.c:328:9: warning: cast from 'char *' to 'MEMHDR *' (aka 'struct memnod *') increases required alignment from 1 to 8 [-Wcast-align]
    p = CLIENT_2_HDR(ptr);
        ^~~~~~~~~~~~~~~~~
xmlmemory.c:113:26: note: expanded from macro 'CLIENT_2_HDR'
#define CLIENT_2_HDR(a) ((MEMHDR *) (((char *) (a)) - RESERVE_SIZE))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlmemory.c:436:9: warning: cast from 'char *' to 'MEMHDR *' (aka 'struct memnod *') increases required alignment from 1 to 8 [-Wcast-align]
    p = CLIENT_2_HDR(ptr);
        ^~~~~~~~~~~~~~~~~
xmlmemory.c:113:26: note: expanded from macro 'CLIENT_2_HDR'
#define CLIENT_2_HDR(a) ((MEMHDR *) (((char *) (a)) - RESERVE_SIZE))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.
  CC       uri.lo
  CC       valid.lo
  CC       xlink.lo
  CC       HTMLparser.lo
HTMLparser.c:4369:41: warning: missing field 'begin_pos' initializer [-Wmissing-field-initializers]
    htmlParserNodeInfo node_info = { 0, };
                                        ^
1 warning generated.
  CC       HTMLtree.lo
  CC       debugXML.lo
  CC       xpath.lo
xpath.c:4875:73: warning: passing 'xmlXPathFunction' (aka 'void (*)(xmlXPathParserContextPtr, int)') to parameter of type 'void *' converts between void pointer and function pointer [-Wpedantic]
    return(xmlHashAddEntry2(ctxt->funcHash, name, ns_uri, XML_CAST_FPTR(f)));
                                                                        ^
./include/libxml/hash.h:56:29: note: expanded from macro 'XML_CAST_FPTR'
#define XML_CAST_FPTR(fptr) fptr
                            ^
./include/libxml/hash.h:131:34: note: passing argument to parameter 'userdata' here
                                         void *userdata);
                                               ^
xpath.c:4956:24: warning: assigning to 'xmlXPathFunction' (aka 'void (*)(xmlXPathParserContextPtr, int)') from 'void *' converts between void pointer and function pointer [-Wpedantic]
    XML_CAST_FPTR(ret) = xmlHashLookup2(ctxt->funcHash, name, ns_uri);
                       ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xpath.c:13552:41: warning: assigning to 'xmlXPathFunction' (aka 'void (*)(xmlXPathParserContextPtr, int)') from 'void *' converts between void pointer and function pointer [-Wpedantic]
                    XML_CAST_FPTR(func) = op->cache;
                                        ^ ~~~~~~~~~
xpath.c:13579:31: warning: assigning to 'void *' from 'xmlXPathFunction' (aka 'void (*)(xmlXPathParserContextPtr, int)') converts between void pointer and function pointer [-Wpedantic]
                    op->cache = XML_CAST_FPTR(func);
                              ^               ~~~~
In file included from xpath.c:476:
./trionan.c:194:1: warning: unused function 'trio_is_special_quantity' [-Wunused-function]
trio_is_special_quantity
^
./trionan.c:218:1: warning: unused function 'trio_is_negative' [-Wunused-function]
trio_is_negative
^
6 warnings generated.
  CC       xpointer.lo
  CC       xinclude.lo
  CC       nanohttp.lo
nanohttp.c:1537:38: warning: while loop has empty body [-Wempty-body]
        while ( xmlNanoHTTPRecv(ctxt) > 0 ) ;
                                            ^
nanohttp.c:1537:38: note: put the semicolon on a separate line to silence this warning
1 warning generated.
  CC       nanoftp.lo
  CC       catalog.lo
  CC       globals.lo
  CC       threads.lo
  CC       c14n.lo
  CC       xmlstring.lo
  CC       buf.lo
  CC       xmlregexp.lo
  CC       xmlschemas.lo
xmlschemas.c:1177:25: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
            if (WXS_IS_COMPLEX(WXS_TYPE_CAST item))
                ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:224:8: note: expanded from macro 'WXS_IS_COMPLEX'
    (((i)->type == XML_SCHEMA_TYPE_COMPLEX) || \
       ^
xmlschemas.c:1177:25: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
            if (WXS_IS_COMPLEX(WXS_TYPE_CAST item))
                ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:225:8: note: expanded from macro 'WXS_IS_COMPLEX'
     ((i)->builtInType == XML_SCHEMAS_ANYTYPE))
       ^
xmlschemas.c:1201:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaElementPtr' (aka 'struct _xmlSchemaElement *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaElementPtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1203:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributePtr' (aka 'struct _xmlSchemaAttribute *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaAttributePtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1206:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaTypePtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1209:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaWildcardPtr' (aka 'struct _xmlSchemaWildcard *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaWildcardPtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1211:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaParticlePtr' (aka 'struct _xmlSchemaParticle *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaParticlePtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1215:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupPtr' (aka 'struct _xmlSchemaModelGroup *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaModelGroupPtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1217:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaModelGroupDefPtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1219:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaAttributeGroupPtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1223:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaIDCPtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1225:14: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaQNameRefPtr' (aka 'struct _xmlSchemaQNameRef *') increases required alignment from 4 to 8 [-Wcast-align]
            return(((xmlSchemaQNameRefPtr) item)->node);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1231:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeUsePtr' (aka 'struct _xmlSchemaAttributeUse *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaAttributeUsePtr) item)->node);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1326:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaElementPtr' (aka 'struct _xmlSchemaElement *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaElementPtr) item)->name);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1328:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributePtr' (aka 'struct _xmlSchemaAttribute *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaAttributePtr) item)->name);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1330:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaAttributeGroupPtr) item)->name);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1334:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaTypePtr) item)->name);
                     ^~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1336:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaModelGroupDefPtr) item)->name);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1340:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaIDCPtr) item)->name);
                     ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1342:10: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeUsePtr' (aka 'struct _xmlSchemaAttributeUse *') increases required alignment from 4 to 8 [-Wcast-align]
            if (WXS_ATTRUSE_DECL(item) != NULL) {
                ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:169:45: note: expanded from macro 'WXS_ATTRUSE_DECL'
#define WXS_ATTRUSE_DECL(au) WXS_ATTR_CAST (WXS_ATTR_USE_CAST (au))->attrDecl
                                            ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:142:27: note: expanded from macro 'WXS_ATTR_USE_CAST'
#define WXS_ATTR_USE_CAST (xmlSchemaAttributeUsePtr)
                          ^
xmlschemas.c:1344:22: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeUsePtr' (aka 'struct _xmlSchemaAttributeUse *') increases required alignment from 4 to 8 [-Wcast-align]
                    WXS_BASIC_CAST WXS_ATTRUSE_DECL(item)));
                                   ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:169:45: note: expanded from macro 'WXS_ATTRUSE_DECL'
#define WXS_ATTRUSE_DECL(au) WXS_ATTR_CAST (WXS_ATTR_USE_CAST (au))->attrDecl
                                            ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:142:27: note: expanded from macro 'WXS_ATTR_USE_CAST'
#define WXS_ATTR_USE_CAST (xmlSchemaAttributeUsePtr)
                          ^
xmlschemas.c:1348:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaQNameRefPtr' (aka 'struct _xmlSchemaQNameRef *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaQNameRefPtr) item)->name);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1350:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaNotationPtr' (aka 'struct _xmlSchemaNotation *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaNotationPtr) item)->name);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1381:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaElementPtr' (aka 'struct _xmlSchemaElement *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaElementPtr) item)->targetNamespace);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1383:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributePtr' (aka 'struct _xmlSchemaAttribute *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaAttributePtr) item)->targetNamespace);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1385:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaAttributeGroupPtr) item)->targetNamespace);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1390:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaTypePtr) item)->targetNamespace);
                     ^~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1392:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaModelGroupDefPtr) item)->targetNamespace);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1396:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaIDCPtr) item)->targetNamespace);
                     ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1398:10: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeUsePtr' (aka 'struct _xmlSchemaAttributeUse *') increases required alignment from 4 to 8 [-Wcast-align]
            if (WXS_ATTRUSE_DECL(item) != NULL) {
                ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:169:45: note: expanded from macro 'WXS_ATTRUSE_DECL'
#define WXS_ATTRUSE_DECL(au) WXS_ATTR_CAST (WXS_ATTR_USE_CAST (au))->attrDecl
                                            ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:142:27: note: expanded from macro 'WXS_ATTR_USE_CAST'
#define WXS_ATTR_USE_CAST (xmlSchemaAttributeUsePtr)
                          ^
xmlschemas.c:1400:22: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeUsePtr' (aka 'struct _xmlSchemaAttributeUse *') increases required alignment from 4 to 8 [-Wcast-align]
                    WXS_BASIC_CAST WXS_ATTRUSE_DECL(item)));
                                   ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:169:45: note: expanded from macro 'WXS_ATTRUSE_DECL'
#define WXS_ATTRUSE_DECL(au) WXS_ATTR_CAST (WXS_ATTR_USE_CAST (au))->attrDecl
                                            ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:142:27: note: expanded from macro 'WXS_ATTR_USE_CAST'
#define WXS_ATTR_USE_CAST (xmlSchemaAttributeUsePtr)
                          ^
xmlschemas.c:1405:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaQNameRefPtr' (aka 'struct _xmlSchemaQNameRef *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaQNameRefPtr) item)->targetNamespace);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1407:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaNotationPtr' (aka 'struct _xmlSchemaNotation *') increases required alignment from 4 to 8 [-Wcast-align]
            return (((xmlSchemaNotationPtr) item)->targetNamespace);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1588:30: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
            xmlSchemaTypePtr type = WXS_TYPE_CAST item;
                                    ^~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:1603:30: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
            xmlSchemaTypePtr type = WXS_TYPE_CAST item;
                                    ^~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:1626:30: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
            xmlSchemaTypePtr type = WXS_TYPE_CAST item;
                                    ^~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:1643:10: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeUsePtr' (aka 'struct _xmlSchemaAttributeUse *') increases required alignment from 4 to 8 [-Wcast-align]
                ause = WXS_ATTR_USE_CAST item;
                       ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:142:27: note: expanded from macro 'WXS_ATTR_USE_CAST'
#define WXS_ATTR_USE_CAST (xmlSchemaAttributeUsePtr)
                          ^
xmlschemas.c:1659:10: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributePtr' (aka 'struct _xmlSchemaAttribute *') increases required alignment from 4 to 8 [-Wcast-align]
                attr = (xmlSchemaAttributePtr) item;
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1674:10: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaElementPtr' (aka 'struct _xmlSchemaElement *') increases required alignment from 4 to 8 [-Wcast-align]
                elem = (xmlSchemaElementPtr) item;
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1691:30: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
            *buf = xmlStrcat(*buf, ((xmlSchemaIDCPtr) item)->name);
                                    ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:1697:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaWildcardPtr' (aka 'struct _xmlSchemaWildcard *') increases required alignment from 4 to 8 [-Wcast-align]
                    ((xmlSchemaWildcardPtr) item)->processContents));
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:2040:36: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaValidCtxtPtr' (aka 'struct _xmlSchemaValidCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
            xmlSchemaValidCtxtPtr vctxt = (xmlSchemaValidCtxtPtr) ctxt;
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:2109:37: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaParserCtxtPtr' (aka 'struct _xmlSchemaParserCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
            xmlSchemaParserCtxtPtr pctxt = (xmlSchemaParserCtxtPtr) ctxt;
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:2218:32: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaValidCtxtPtr' (aka 'struct _xmlSchemaValidCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
        xmlSchemaValidCtxtPtr vctxt = (xmlSchemaValidCtxtPtr) actxt;
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:2410:4: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaValidCtxtPtr' (aka 'struct _xmlSchemaValidCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
        (((xmlSchemaValidCtxtPtr) actxt)->inode != NULL))
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:2411:12: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaValidCtxtPtr' (aka 'struct _xmlSchemaValidCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
        return ( ((xmlSchemaValidCtxtPtr) actxt)->inode->nodeType);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:5057:12: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                    if ((WXS_COMP_NAME(ret, xmlSchemaTypePtr) == name) &&
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:5028:30: note: expanded from macro 'WXS_COMP_NAME'
#define WXS_COMP_NAME(c, t) ((t) (c))->name
                             ^~~~~~~
xmlschemas.c:5058:5: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                        (WXS_COMP_TNS(ret, xmlSchemaTypePtr) ==
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:5029:29: note: expanded from macro 'WXS_COMP_TNS'
#define WXS_COMP_TNS(c, t) ((t) (c))->targetNamespace
                            ^~~~~~~
xmlschemas.c:5065:12: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
                    if ((WXS_COMP_NAME(ret,
                         ^~~~~~~~~~~~~~~~~~
xmlschemas.c:5028:30: note: expanded from macro 'WXS_COMP_NAME'
#define WXS_COMP_NAME(c, t) ((t) (c))->name
                             ^~~~~~~
xmlschemas.c:5067:5: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
                        (WXS_COMP_TNS(ret,
                         ^~~~~~~~~~~~~~~~~
xmlschemas.c:5029:29: note: expanded from macro 'WXS_COMP_TNS'
#define WXS_COMP_TNS(c, t) ((t) (c))->targetNamespace
                            ^~~~~~~
xmlschemas.c:5074:12: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                    if ((WXS_COMP_NAME(ret,
                         ^~~~~~~~~~~~~~~~~~
xmlschemas.c:5028:30: note: expanded from macro 'WXS_COMP_NAME'
#define WXS_COMP_NAME(c, t) ((t) (c))->name
                             ^~~~~~~
xmlschemas.c:5076:5: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                        (WXS_COMP_TNS(ret,
                         ^~~~~~~~~~~~~~~~~
xmlschemas.c:5029:29: note: expanded from macro 'WXS_COMP_TNS'
#define WXS_COMP_TNS(c, t) ((t) (c))->targetNamespace
                            ^~~~~~~
xmlschemas.c:7469:7: warning: cast from 'const xmlChar *' (aka 'const unsigned char *') to 'xmlSchemaAttributePtr' (aka 'struct _xmlSchemaAttribute *') increases required alignment from 1 to 8 [-Wcast-align]
                if (WXS_ATTRUSE_DECL(use)->typeName != NULL) {
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:169:30: note: expanded from macro 'WXS_ATTRUSE_DECL'
#define WXS_ATTRUSE_DECL(au) WXS_ATTR_CAST (WXS_ATTR_USE_CAST (au))->attrDecl
                             ^
xmlschemas.c:141:23: note: expanded from macro 'WXS_ATTR_CAST'
#define WXS_ATTR_CAST (xmlSchemaAttributePtr)
                      ^
xmlschemas.c:11303:13: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaParticlePtr' (aka 'struct _xmlSchemaParticle *') increases required alignment from 4 to 8 [-Wcast-align]
            part = (xmlSchemaParticlePtr) xmlSchemaParseElement(ctxt,
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:11356:10: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTreeItemPtr' (aka 'struct _xmlSchemaTreeItem *') increases required alignment from 4 to 8 [-Wcast-align]
                part = (xmlSchemaTreeItemPtr)
                       ^~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:14372:9: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
        if ((! WXS_IS_ANYTYPE(baseItem)) &&
               ^~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:221:10: note: expanded from macro 'WXS_IS_ANYTYPE'
      ( (WXS_TYPE_CAST (i))->builtInType == XML_SCHEMAS_ANYTYPE))
         ^~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:15097:6: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
            WXS_MODEL_GROUPDEF_CAST xmlSchemaGetNamedComponent(ctxt->schema,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:144:33: note: expanded from macro 'WXS_MODEL_GROUPDEF_CAST'
#define WXS_MODEL_GROUPDEF_CAST (xmlSchemaModelGroupDefPtr)
                                ^
xmlschemas.c:18611:35: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaParserCtxtPtr' (aka 'struct _xmlSchemaParserCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
        return(xmlSchemaFixupComplexType(PCTXT_CAST actxt, type));
                                         ^~~~~~~~~~~~~~~~
xmlschemas.c:133:20: note: expanded from macro 'PCTXT_CAST'
#define PCTXT_CAST (xmlSchemaParserCtxtPtr)
                   ^
xmlschemas.c:18613:42: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaParserCtxtPtr' (aka 'struct _xmlSchemaParserCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
        return(xmlSchemaFixupSimpleTypeStageTwo(PCTXT_CAST actxt, type));
                                                ^~~~~~~~~~~~~~~~
xmlschemas.c:133:20: note: expanded from macro 'PCTXT_CAST'
#define PCTXT_CAST (xmlSchemaParserCtxtPtr)
                   ^
xmlschemas.c:19056:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
            gr = WXS_ATTR_GROUP_CAST ref->item;
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:19203:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
            gr = WXS_ATTR_GROUP_CAST (WXS_QNAME_CAST use)->item;
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:20053:10: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupPtr' (aka 'struct _xmlSchemaModelGroup *') increases required alignment from 4 to 8 [-Wcast-align]
            if (WXS_MODELGROUPDEF_MODEL(refItem) == NULL)
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:194:39: note: expanded from macro 'WXS_MODELGROUPDEF_MODEL'
#define WXS_MODELGROUPDEF_MODEL(mgd) (WXS_MODEL_GROUP_CAST (mgd))->children
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:145:30: note: expanded from macro 'WXS_MODEL_GROUP_CAST'
#define WXS_MODEL_GROUP_CAST (xmlSchemaModelGroupPtr)
                             ^
xmlschemas.c:20063:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupPtr' (aka 'struct _xmlSchemaModelGroup *') increases required alignment from 4 to 8 [-Wcast-align]
            if ((WXS_MODELGROUPDEF_MODEL(refItem))->type ==
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:194:39: note: expanded from macro 'WXS_MODELGROUPDEF_MODEL'
#define WXS_MODELGROUPDEF_MODEL(mgd) (WXS_MODEL_GROUP_CAST (mgd))->children
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:145:30: note: expanded from macro 'WXS_MODEL_GROUP_CAST'
#define WXS_MODEL_GROUP_CAST (xmlSchemaModelGroupPtr)
                             ^
xmlschemas.c:20086:27: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTreeItemPtr' (aka 'struct _xmlSchemaTreeItem *') increases required alignment from 4 to 8 [-Wcast-align]
            particle->children = (xmlSchemaTreeItemPtr) refItem;
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20092:27: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTreeItemPtr' (aka 'struct _xmlSchemaTreeItem *') increases required alignment from 4 to 8 [-Wcast-align]
            particle->children = (xmlSchemaTreeItemPtr) refItem;
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20398:4: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
                ((xmlSchemaIDCPtr) idc->ref->item)->nbFields) {
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20402:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
                refer = (xmlSchemaIDCPtr) idc->ref->item;
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20528:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                if ((WXS_TYPE_CAST prev)->flags &
                     ^~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:20535:4: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                (WXS_TYPE_CAST prev)->flags |= XML_SCHEMAS_TYPE_REDEFINED;
                 ^~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:20541:4: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                ((xmlSchemaTypePtr) item)->baseType =
                 ^~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20542:7: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                    (xmlSchemaTypePtr) prev;
                    ^~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20545:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
                if ((WXS_MODEL_GROUPDEF_CAST prev)->flags &
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:144:33: note: expanded from macro 'WXS_MODEL_GROUPDEF_CAST'
#define WXS_MODEL_GROUPDEF_CAST (xmlSchemaModelGroupDefPtr)
                                ^
xmlschemas.c:20552:4: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
                (WXS_MODEL_GROUPDEF_CAST prev)->flags |=
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:144:33: note: expanded from macro 'WXS_MODEL_GROUPDEF_CAST'
#define WXS_MODEL_GROUPDEF_CAST (xmlSchemaModelGroupDefPtr)
                                ^
xmlschemas.c:20559:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaParticlePtr' (aka 'struct _xmlSchemaParticle *') increases required alignment from 4 to 8 [-Wcast-align]
                    (WXS_PTC_CAST redef->reference)->children =
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:137:22: note: expanded from macro 'WXS_PTC_CAST'
#define WXS_PTC_CAST (xmlSchemaParticlePtr)
                     ^
xmlschemas.c:20560:4: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTreeItemPtr' (aka 'struct _xmlSchemaTreeItem *') increases required alignment from 4 to 8 [-Wcast-align]
                        WXS_TREE_CAST prev;
                        ^~~~~~~~~~~~~~~~~~
xmlschemas.c:136:23: note: expanded from macro 'WXS_TREE_CAST'
#define WXS_TREE_CAST (xmlSchemaTreeItemPtr)
                      ^
xmlschemas.c:20565:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                if ((WXS_ATTR_GROUP_CAST prev)->flags &
                     ^~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:20571:4: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                (WXS_ATTR_GROUP_CAST prev)->flags |=
                 ^~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:20580:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaQNameRefPtr' (aka 'struct _xmlSchemaQNameRef *') increases required alignment from 4 to 8 [-Wcast-align]
                    (WXS_QNAME_CAST redef->reference)->item = prev;
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:147:24: note: expanded from macro 'WXS_QNAME_CAST'
#define WXS_QNAME_CAST (xmlSchemaQNameRefPtr)
                       ^
xmlschemas.c:20650:4: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                (WXS_TYPE_CAST redef->target)->name = NULL;
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:20686:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                    (WXS_ATTR_GROUP_CAST item)->attrUses,
                     ^~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:20687:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                    (WXS_ATTR_GROUP_CAST redef->target)->attrUses,
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:20688:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                    (WXS_ATTR_GROUP_CAST item)->attributeWildcard,
                     ^~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:20689:8: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                    (WXS_ATTR_GROUP_CAST redef->target)->attributeWildcard);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:20742:7: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                if (WXS_REDEFINED_TYPE(item))
                    ^~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20443:3: note: expanded from macro 'WXS_REDEFINED_TYPE'
(((xmlSchemaTypePtr) item)->flags & XML_SCHEMAS_TYPE_REDEFINED)
  ^~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20744:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaTypePtr' (aka 'struct _xmlSchemaType *') increases required alignment from 4 to 8 [-Wcast-align]
                name = (WXS_TYPE_CAST item)->name;
                        ^~~~~~~~~~~~~~~~~~
xmlschemas.c:138:23: note: expanded from macro 'WXS_TYPE_CAST'
#define WXS_TYPE_CAST (xmlSchemaTypePtr)
                      ^
xmlschemas.c:20748:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaElementPtr' (aka 'struct _xmlSchemaElement *') increases required alignment from 4 to 8 [-Wcast-align]
                name = (WXS_ELEM_CAST item)->name;
                        ^~~~~~~~~~~~~~~~~~
xmlschemas.c:139:23: note: expanded from macro 'WXS_ELEM_CAST'
#define WXS_ELEM_CAST (xmlSchemaElementPtr)
                      ^
xmlschemas.c:20752:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributePtr' (aka 'struct _xmlSchemaAttribute *') increases required alignment from 4 to 8 [-Wcast-align]
                name = (WXS_ATTR_CAST item)->name;
                        ^~~~~~~~~~~~~~~~~~
xmlschemas.c:141:23: note: expanded from macro 'WXS_ATTR_CAST'
#define WXS_ATTR_CAST (xmlSchemaAttributePtr)
                      ^
xmlschemas.c:20756:7: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
                if (WXS_REDEFINED_MODEL_GROUP_DEF(item))
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20446:3: note: expanded from macro 'WXS_REDEFINED_MODEL_GROUP_DEF'
(((xmlSchemaModelGroupDefPtr) item)->flags & XML_SCHEMA_MODEL_GROUP_DEF_REDEFINED)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20758:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaModelGroupDefPtr' (aka 'struct _xmlSchemaModelGroupDef *') increases required alignment from 4 to 8 [-Wcast-align]
                name = (WXS_MODEL_GROUPDEF_CAST item)->name;
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:144:33: note: expanded from macro 'WXS_MODEL_GROUPDEF_CAST'
#define WXS_MODEL_GROUPDEF_CAST (xmlSchemaModelGroupDefPtr)
                                ^
xmlschemas.c:20762:7: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                if (WXS_REDEFINED_ATTR_GROUP(item))
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20449:3: note: expanded from macro 'WXS_REDEFINED_ATTR_GROUP'
(((xmlSchemaAttributeGroupPtr) item)->flags & XML_SCHEMAS_ATTRGROUP_REDEFINED)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:20764:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaAttributeGroupPtr' (aka 'struct _xmlSchemaAttributeGroup *') increases required alignment from 4 to 8 [-Wcast-align]
                name = (WXS_ATTR_GROUP_CAST item)->name;
                        ^~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:140:29: note: expanded from macro 'WXS_ATTR_GROUP_CAST'
#define WXS_ATTR_GROUP_CAST (xmlSchemaAttributeGroupPtr)
                            ^
xmlschemas.c:20770:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
                name = (WXS_IDC_CAST item)->name;
                        ^~~~~~~~~~~~~~~~~
xmlschemas.c:146:22: note: expanded from macro 'WXS_IDC_CAST'
#define WXS_IDC_CAST (xmlSchemaIDCPtr)
                     ^
xmlschemas.c:20774:11: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaNotationPtr' (aka 'struct _xmlSchemaNotation *') increases required alignment from 4 to 8 [-Wcast-align]
                name = ((xmlSchemaNotationPtr) item)->name;
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:23206:15: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
            refIdc = (xmlSchemaIDCPtr) idc->ref->item;
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:23808:7: warning: cast from 'xmlSchemaBasicItemPtr' (aka 'struct _xmlSchemaBasicItem *') to 'xmlSchemaIDCPtr' (aka 'struct _xmlSchemaIDC *') increases required alignment from 4 to 8 [-Wcast-align]
                if ((xmlSchemaIDCPtr) matcher->aidc->def->ref->item ==
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:24554:4: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaValidCtxtPtr' (aka 'struct _xmlSchemaValidCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
                        (xmlSchemaValidCtxtPtr) actxt,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:24555:5: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaValidCtxtPtr' (aka 'struct _xmlSchemaValidCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
                        ((xmlSchemaValidCtxtPtr) actxt)->schema,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:24559:36: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaValidCtxtPtr' (aka 'struct _xmlSchemaValidCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
                    ret = xmlSchemaValidateQName((xmlSchemaValidCtxtPtr) actxt,
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmlschemas.c:24576:5: warning: cast from 'xmlSchemaAbstractCtxtPtr' (aka 'struct _xmlSchemaAbstractCtxt *') to 'xmlSchemaParserCtxtPtr' (aka 'struct _xmlSchemaParserCtxt *') increases required alignment from 4 to 8 [-Wcast-align]
                        ((xmlSchemaParserCtxtPtr) actxt)->schema, node,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
99 warnings generated.
  CC       xmlschemastypes.lo
  CC       xmlunicode.lo
  CC       xmlreader.lo
  CC       relaxng.lo
  CC       dict.lo
  CC       SAX2.lo
  CC       xmlwriter.lo
  CC       legacy.lo
  CC       chvalid.lo
  CC       pattern.lo
  CC       xmlsave.lo
  CC       xmlmodule.lo
  CC       schematron.lo
  CC       xzlib.lo
  CCLD     libxml2.la
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libxml2.a(xzlib.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libxml2.a(xzlib.o) has no symbols
  CC       testdso.lo
  CCLD     testdso.la
  CC       xmllint.o
  CCLD     xmllint
Undefined symbols for architecture x86_64:
  "_iconv", referenced from:
      _xmlIconvWrapper in libxml2.a(encoding.o)
  "_iconv_close", referenced from:
      _xmlFindCharEncodingHandler in libxml2.a(encoding.o)
      _xmlCharEncCloseFunc in libxml2.a(encoding.o)
  "_iconv_open", referenced from:
      _xmlFindCharEncodingHandler in libxml2.a(encoding.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [xmllint] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
flavorjones commented 9 years ago

Hi @nvick, your problem is different from the one that generated this ticket. Can you please open a new issue for this? I apologize for the hassle and appreciate your help organizing the Nokogiri backlog.

plentz commented 8 years ago

@jonbca thanks, your solution worked (centos 7.1) :)

rgraterol commented 8 years ago

@arnaud036 Thanks bro

flavorjones commented 8 years ago

The original two problems described in this ticket have been fixed, one by updating compiler flags, and the other by documenting the zlib requirement in the nokogiri.org installation tutorial.

Locking ticket, please open a new one if you're experiencing problems.