Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[install] 1.18.4 on aarch64-mingw-ucrt #3470

Open
1 task done
nathan-nhm opened this issue Mar 14, 2025 · 7 comments
Open
1 task done

[install] 1.18.4 on aarch64-mingw-ucrt #3470

nathan-nhm opened this issue Mar 14, 2025 · 7 comments
Labels
topic/installation Installation difficulties

Comments

@nathan-nhm
Copy link

nathan-nhm commented Mar 14, 2025

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

  • Yes!

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

c:\NHM\Ruby3421_arm\bin>gem install nokogiri
Building native extensions. This could take a while...
ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

    current directory: c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri
c:/NHM/Ruby3421_arm/bin/ruby.exe extconf.rb
checking for whether -std=c99 is accepted as CFLAGS... yes
checking for whether -Wno-declaration-after-statement is accepted as CFLAGS... yes
checking for whether -O2 is accepted as CFLAGS... yes
checking for whether -g is accepted as CFLAGS... yes
checking for whether -Winline is accepted as CFLAGS... yes
checking for whether -Wmissing-noreturn is accepted as CFLAGS... yes
checking for whether -Wconversion is accepted as CFLAGS... yes
checking for whether  "-Idummypath" is accepted as CPPFLAGS... yes
Building nokogiri using packaged libraries.
Static linking is enabled.
Cross build is disabled.
Using mini_portile version 2.8.8
---------- IMPORTANT NOTICE ----------
Building Nokogiri with a packaged version of zlib-1.3.1.
Configuration options: --host\=aarch64-w64-mingw32 --enable-static --disable-shared --libdir\=c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/lib --disable-shared --enable-static CFLAGS\=-fPIC

The Nokogiri maintainers intend to provide timely security updates, but if
this is a concern for you and want to use your OS/distro system library
instead, then abort this installation process and install nokogiri as
instructed at:

  https://nokogiri.org/tutorials/installing_nokogiri.html#installing-using-standard-system-libraries


Downloading zlib-1.3.1.tar.gz (  0%)
[...]
Downloading zlib-1.3.1.tar.gz ( 99%)
Downloading zlib-1.3.1.tar.gz (100%)
Extracting zlib-1.3.1.tar.gz into tmp/aarch64-w64-mingw32/ports/zlib/1.3.1... OK
Running 'compile' for zlib 1.3.1... OK
Running 'install' for zlib 1.3.1... OK
Activating zlib 1.3.1 (from c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1)...
Using mini_portile version 2.8.8
---------- IMPORTANT NOTICE ----------
Building Nokogiri with a packaged version of libiconv-1.17.
Configuration options: --host\=aarch64-w64-mingw32 --enable-static --disable-shared --libdir\=c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libiconv/1.17/lib --disable-dependency-tracking --disable-shared --enable-static CPPFLAGS\=-Wall CFLAGS\=-O2\ -g\ -fPIC CXXFLAGS\=-O2\ -g LDFLAGS\=

The Nokogiri maintainers intend to provide timely security updates, but if
this is a concern for you and want to use your OS/distro system library
instead, then abort this installation process and install nokogiri as
instructed at:

  https://nokogiri.org/tutorials/installing_nokogiri.html#installing-using-standard-system-libraries


Downloading libiconv-1.17.tar.gz (  0%)
[...]
Downloading libiconv-1.17.tar.gz (100%)
Extracting libiconv-1.17.tar.gz into tmp/aarch64-w64-mingw32/ports/libiconv/1.17... OK
Running 'configure' for libiconv 1.17... OK
Running 'compile' for libiconv 1.17... OK
Running 'install' for libiconv 1.17... OK
Activating libiconv 1.17 (from c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libiconv/1.17)...
checking for whether -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/include is accepted as CPPFLAGS... yes
checking for gzdopen() in -lz... yes
checking for whether -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libiconv/1.17/include is accepted as CPPFLAGS... yes
checking for iconv_open() in -liconv... yes
Using mini_portile version 2.8.8
---------- IMPORTANT NOTICE ----------
Building Nokogiri with a packaged version of libxml2-2.13.6.
Configuration options: --host\=aarch64-w64-mingw32 --enable-static --disable-shared --libdir\=c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libxml2/2.13.6/lib --with-legacy --with-zlib\=c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1 --with-iconv\=c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libiconv/1.17 --disable-dependency-tracking --without-python --without-readline --with-c14n --with-debug --with-threads --disable-shared --enable-static CPPFLAGS\= CFLAGS\=-O2\ -g\ -ULIBXML_STATIC\ -DIN_LIBXML\ -fPIC
The following patches are being applied:
  - 0001-Remove-script-macro-support.patch
  - 0002-Update-entities-to-remove-handling-of-ssi.patch
  - 0009-allow-wildcard-namespaces.patch
  - 0010-update-config.guess-and-config.sub-for-libxml2.patch
  - 0011-rip-out-libxml2-s-libc_single_threaded-support.patch
  - 0019-xpath-Use-separate-static-hash-table-for-standard-fu.patch

The Nokogiri maintainers intend to provide timely security updates, but if
this is a concern for you and want to use your OS/distro system library
instead, then abort this installation process and install nokogiri as
instructed at:

  https://nokogiri.org/tutorials/installing_nokogiri.html#installing-using-standard-system-libraries

Note, however, that nokogiri cannot guarantee compatibility with every
version of libxml2 that may be provided by OS/package vendors.

Extracting libxml2-2.13.6.tar.xz into tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6... OK
Running git apply with c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/patches/libxml2/0001-Remove-script-macro-support.patch... OK
Running git apply with c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/patches/libxml2/0002-Update-entities-to-remove-handling-of-ssi.patch... OK
Running git apply with c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/patches/libxml2/0009-allow-wildcard-namespaces.patch... OK
Running git apply with c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/patches/libxml2/0010-update-config.guess-and-config.sub-for-libxml2.patch... OK
Running git apply with c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/patches/libxml2/0011-rip-out-libxml2-s-libc_single_threaded-support.patch... OK
Running git apply with c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/patches/libxml2/0019-xpath-Use-separate-static-hash-table-for-standard-fu.patch... OK
Running 'configure' for libxml2 2.13.6... OK
Running 'compile' for libxml2 2.13.6... ERROR. Please review logs to see what happened:
----- contents of 'c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/compile.log' -----
make  all-recursive
make[1]: Entering directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6'
Making all in include
make[2]: Entering directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6/include'
Making all in libxml
make[3]: Entering directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6/include/libxml'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6/include/libxml'
Making all in private
make[3]: Entering directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6/include/private'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6/include/private'
make[3]: Entering directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6/include'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6/include'
make[2]: Leaving directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6/include'
Making all in .
make[2]: Entering directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6'
  CC       xmllint-xmllint.o
  CC       libxml2_la-buf.lo
buf.c:15:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   15 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-chvalid.lo
chvalid.c:13:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   13 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-dict.lo
dict.c:19:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   19 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-entities.lo
entities.c:14:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   14 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
entities.c:542:68: warning: unused parameter 'attr' [-Wunused-parameter]
  542 | xmlEncodeEntitiesInternal(xmlDocPtr doc, const xmlChar *input, int attr) {
      |                                                                    ^
2 warnings generated.
  CC       libxml2_la-encoding.lo
encoding.c:23:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   23 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-error.lo
error.c:9:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
    9 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-globals.lo
globals.c:11:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   11 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-hash.lo
hash.c:10:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   10 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-list.lo
list.c:18:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   18 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-parser.lo
parser.c:38:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   38 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-parserInternals.lo
parserInternals.c:10:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   10 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-SAX2.lo
SAX2.c:10:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   10 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-threads.lo
threads.c:10:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   10 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-tree.lo
tree.c:18:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   18 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-uri.lo
uri.c:11:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   11 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-valid.lo
valid.c:10:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   10 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlIO.lo
xmlIO.c:9:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
    9 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlmemory.lo
xmlmemory.c:7:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
    7 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlstring.lo
xmlstring.c:16:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   16 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-c14n.lo
c14n.c:12:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   12 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-catalog.lo
catalog.c:15:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   15 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-debugXML.lo
debugXML.c:10:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   10 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-HTMLparser.lo
HTMLparser.c:9:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
    9 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-HTMLtree.lo
HTMLtree.c:10:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   10 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-nanohttp.lo
nanohttp.c:14:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   14 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-legacy.lo
legacy.c:10:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   10 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-SAX.lo
SAX.c:11:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   11 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xzlib.lo
xzlib.c:9:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
    9 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlmodule.lo
xmlmodule.c:16:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   16 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlsave.lo
xmlsave.c:9:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
    9 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-pattern.lo
pattern.c:26:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   26 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlreader.lo
xmlreader.c:17:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   17 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlregexp.lo
xmlregexp.c:17:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   17 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlunicode.lo
xmlunicode.c:14:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   14 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-relaxng.lo
relaxng.c:16:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   16 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlschemas.lo
xmlschemas.c:53:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   53 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlschemastypes.lo
xmlschemastypes.c:15:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   15 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-schematron.lo
schematron.c:23:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   23 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xmlwriter.lo
xmlwriter.c:11:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   11 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xinclude.lo
xinclude.c:12:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   12 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xpath.lo
xpath.c:22:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   22 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xlink.lo
xlink.c:11:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   11 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CC       libxml2_la-xpointer.lo
xpointer.c:22:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   22 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.
  CCLD     libxml2.la
./libtool: line 7746: cd: c:NHMRuby3421_armlibrubygems3.4.0gemsnokogiri-1.18.4portsaarch64-mingw-ucrtlibiconv1.17lib: No such file or directory
libtool:   error: cannot determine absolute directory name of 'c:NHMRuby3421_armlibrubygems3.4.0gemsnokogiri-1.18.4portsaarch64-mingw-ucrtlibiconv1.17lib'
make[2]: *** [Makefile:935: libxml2.la] Error 1
make[2]: Leaving directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6'
make[1]: *** [Makefile:1534: all-recursive] Error 1
make[1]: Leaving directory '/c/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ext/nokogiri/tmp/aarch64-w64-mingw32/ports/libxml2/2.13.6/libxml2-2.13.6'
make: *** [Makefile:769: all] Error 2
----- end of file -----
*** 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=${opt-dir}/include
        --without-opt-include
        --with-opt-lib=${opt-dir}/lib
        --without-opt-lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=c:/NHM/Ruby3421_arm/bin/$(RUBY_BASE_NAME)
        --help
        --clean
        --prevent-strip
        --enable-system-libraries
        --disable-system-libraries
        --use-system-libraries
        --enable-system-libraries
        --disable-system-libraries
        --use-system-libraries
        --enable-static
        --disable-static
        --enable-cross-build
        --disable-cross-build
        --enable-cross-build
        --disable-cross-build
        --enable-xml2-legacy
        --disable-xml2-legacy
        --with-zlib-dir
        --without-zlib-dir
        --with-zlib-include=${zlib-dir}/include
        --without-zlib-include
        --with-zlib-lib=${zlib-dir}/lib
        --without-zlib-lib
        --enable-xml2-legacy
        --disable-xml2-legacy
        --with-z-dir
        --without-z-dir
        --with-z-include=${z-dir}/include
        --without-z-include
        --with-z-lib=${z-dir}/lib
        --without-z-lib
        --with-zlib
        --without-zlib
        --with-iconv-dir
        --without-iconv-dir
        --with-iconv-include=${iconv-dir}/include
        --without-iconv-include
        --with-iconv-lib=${iconv-dir}/lib
        --without-iconv-lib
        --with-iconvlib
        --without-iconvlib
        --with-xml2-source-dir
        --enable-xml2-legacy
        --disable-xml2-legacy
c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/mini_portile2-2.8.8/lib/mini_portile2/mini_portile.rb:627:in 'block in MiniPortile#execute': Failed to complete compile task (RuntimeError)
        from c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/mini_portile2-2.8.8/lib/mini_portile2/mini_portile.rb:593:in 'Dir.chdir'
        from c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/mini_portile2-2.8.8/lib/mini_portile2/mini_portile.rb:593:in 'MiniPortile#execute'
        from c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/mini_portile2-2.8.8/lib/mini_portile2/mini_portile.rb:194:in 'MiniPortile#compile'
        from c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/mini_portile2-2.8.8/lib/mini_portile2/mini_portile.rb:237:in 'MiniPortile#cook'
        from extconf.rb:550:in 'block (2 levels) in Object#process_recipe'
        from extconf.rb:329:in 'Dir.chdir'
        from extconf.rb:329:in 'Object#chdir_for_build'
        from extconf.rb:550:in 'block in Object#process_recipe'
        from <internal:kernel>:91:in 'Kernel#tap'
        from extconf.rb:448:in 'Object#process_recipe'
        from extconf.rb:892:in '<main>'

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

  c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/extensions/aarch64-mingw-ucrt/3.4.0/nokogiri-1.18.4/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4 for inspection.
Results logged to c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/extensions/aarch64-mingw-ucrt/3.4.0/nokogiri-1.18.4/gem_make.out

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

append_cflags: checking for whether -std=c99 is accepted as CFLAGS... -------------------- yes

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -o conftest.exe -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef conftest.c -L. -Lc:/NHM/Ruby3421_arm/lib -L. -pipe -s -fstack-protector-strong     -laarch64-ucrt-ruby340  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi -lbcrypt  "
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef  -std=c99 -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

append_cflags: checking for whether -Wno-declaration-after-statement is accepted as CFLAGS... -------------------- yes

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99  -Wno-declaration-after-statement -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

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

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement  -O2 -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

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

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2  -g -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

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

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2 -g  -Winline -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

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

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2 -g -Winline  -Wmissing-noreturn -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

append_cflags: checking for whether -Wconversion is accepted as CFLAGS... -------------------- yes

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2 -g -Winline -Wmissing-noreturn  -Wconversion -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

append_cppflags: checking for whether  "-Idummypath" is accepted as CPPFLAGS... -------------------- yes

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2 -g -Winline -Wmissing-noreturn -Wconversion   "-Idummypath" -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

append_cppflags: checking for whether -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/include is accepted as CPPFLAGS... -------------------- yes

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\lib\ruby\gems\3.4.0\gems\nokogiri-1.18.4\ports\aarch64-mingw-ucrt\libiconv\1.17\bin;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   "-Idummypath" -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2 -g -Winline -Wmissing-noreturn -Wconversion  -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/include -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

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

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\lib\ruby\gems\3.4.0\gems\nokogiri-1.18.4\ports\aarch64-mingw-ucrt\libiconv\1.17\bin;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -o conftest.exe -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   "-Idummypath" -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/include -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2 -g -Winline -Wmissing-noreturn -Wconversion conftest.c -L. -Lc:/NHM/Ruby3421_arm/lib -Lc:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/lib -L. -pipe -s -fstack-protector-strong     -laarch64-ucrt-ruby340 -lz  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi -lbcrypt  "
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <winsock2.h>
 4: #include <windows.h>
 5: #include <zlib.h>
 6: 
 7: /*top*/
 8: extern int t(void);
 9: int main(int argc, char **argv)
10: {
11:   if (argc > 1000000) {
12:     int (* volatile tp)(void)=(int (*)(void))&t;
13:     printf("%d", (*tp)());
14:   }
15: 
16:   return !!argv[argc];
17: }
18: int t(void) { void ((*volatile p)()); p = (void ((*)()))gzdopen; return !p; }
/* end */

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

append_cppflags: checking for whether -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libiconv/1.17/include is accepted as CPPFLAGS... -------------------- yes

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\lib\ruby\gems\3.4.0\gems\nokogiri-1.18.4\ports\aarch64-mingw-ucrt\libiconv\1.17\bin;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   "-Idummypath" -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/include -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2 -g -Winline -Wmissing-noreturn -Wconversion  -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libiconv/1.17/include -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return !!argv[argc];
8: }
/* end */

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

have_library: checking for iconv_open() in -liconv... -------------------- yes

PATH=".;c:/NHM/Ruby3421_arm/lib;c:\NHM\Ruby3421_arm\lib\ruby\gems\3.4.0\gems\nokogiri-1.18.4\ports\aarch64-mingw-ucrt\libiconv\1.17\bin;c:\NHM\Ruby3421_arm\bin;c:\NHM\msys64\clangarm64\bin;c:\NHM\msys64\usr\bin;C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Users\example\AppData\Local\Microsoft\WindowsApps;C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\Git\cmd;" ASAN_OPTIONS=detect_leaks=0 "clang -o conftest.exe -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/aarch64-mingw-ucrt -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0/ruby/backward -Ic:/NHM/Ruby3421_arm/include/ruby-3.4.0 -I. -D_WIN32_WINNT=0x0600 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   "-Idummypath" -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/include -Ic:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libiconv/1.17/include -O3 -fstack-protector-strong -fstack-protector-strong -fdeclspec  -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wno-shorten-64-to-32 -Wno-dll-attribute-on-redeclaration -Wmisleading-indentation -Wundef -std=c99 -Wno-declaration-after-statement -O2 -g -Winline -Wmissing-noreturn -Wconversion conftest.c -L. -Lc:/NHM/Ruby3421_arm/lib -Lc:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/libiconv/1.17/lib -Lc:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0/gems/nokogiri-1.18.4/ports/aarch64-mingw-ucrt/zlib/1.3.1/lib -L. -pipe -s -fstack-protector-strong    -lz  -laarch64-ucrt-ruby340 -liconv -lz  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi -lbcrypt  "
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <winsock2.h>
 4: #include <windows.h>
 5: #include <iconv.h>
 6: 
 7: /*top*/
 8: extern int t(void);
 9: int main(int argc, char **argv)
10: {
11:   if (argc > 1000000) {
12:     int (* volatile tp)(void)=(int (*)(void))&t;
13:     printf("%d", (*tp)());
14:   }
15: 
16:   return !!argv[argc];
17: }
18: int t(void) { void ((*volatile p)()); p = (void ((*)()))iconv_open; return !p; }
/* end */

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


Tell us about your system!

What is the output from ruby -v?

ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [aarch64-mingw-ucrt]

What is the output from gem env?


RubyGems Environment:
  - RUBYGEMS VERSION: 3.6.6
  - RUBY VERSION: 3.4.2 (2025-02-15 patchlevel 28) [aarch64-mingw-ucrt]
  - INSTALLATION DIRECTORY: c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0
  - USER INSTALLATION DIRECTORY: C:/Users/example/.local/share/gem/ruby/3.4.0
  - CREDENTIALS FILE: C:/Users/example/.local/share/gem/credentials
  - RUBY EXECUTABLE: c:/NHM/Ruby3421_arm/bin/ruby.exe
  - GIT EXECUTABLE: C:\Program Files\Git\cmd/git.EXE
  - EXECUTABLE DIRECTORY: c:/NHM/Ruby3421_arm/bin
  - SPEC CACHE DIRECTORY: C:/Users/example/.cache/gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: C:/ProgramData
  - RUBYGEMS PLATFORMS:
     - ruby
     - aarch64-mingw-ucrt
  - GEM PATHS:
     - c:/NHM/Ruby3421_arm/lib/ruby/gems/3.4.0
     - C:/Users/example/.local/share/gem/ruby/3.4.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => false
     - :backtrace => true
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
     - :ssl_verify_mode => 0
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI
     - C:\WINDOWS\system32
     - C:\WINDOWS
     - C:\WINDOWS\System32\Wbem
     - C:\WINDOWS\System32\WindowsPowerShell\v1.0
     - C:\WINDOWS\System32\OpenSSH
     - C:\Users\example\AppData\Local\Microsoft\WindowsApps
     - C:\Program Files\gs\gs10.03.1\bin
     - C:\Program Files\Git\cmd

Windows on Arm, Running as a Virtual machine on a M4 Mac.

DevKit is up to date with ridk. No precompiled gem is yet available for this platform. Other gems, like pg, have successfully compiled.

https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.2-1/rubyinstaller-3.4.2-1-arm.7z

Extracted with the Arm64 version or the 7z Windows installer. Ruby is not in the shell paths to prevent mixing versions, which is why all commands were run from Ruby's bin dir

@nathan-nhm nathan-nhm added the topic/installation Installation difficulties label Mar 14, 2025
@nathan-nhm nathan-nhm changed the title [install] [install] 1.18.4 on aarch64-mingw-ucrt Mar 14, 2025
@flavorjones
Copy link
Member

flavorjones commented Mar 14, 2025

Sorry you're having a problem, I'll try to help though I should say I don't have the hardware to try to reproduce what you're seeing.

I see the error is from libtool, which based on the error message seems like it may not understand backslashes in windows paths. Do you know where libtool is in your PATH? Is it possible that you have more than one installed?

@larskanis does this ring any bells for you?

@larskanis
Copy link
Member

Nokogiri currently doesn't install out of the box on ARM64 on Windows. But the workaround is simple:

ridk enable
pacman -S %MINGW_PACKAGE_PREFIX%-libxml2 %MINGW_PACKAGE_PREFIX%-libxslt
bundle config build.nokogiri --use-system-libraries
gem install nokogiri -- --use-system-libraries

I'm working on a patch for nokogiri souce gem and precompiled binary gem. And to support aarch64-mingw-ucrt in rake-compiler-dock: rake-compiler/rake-compiler-dock#152

The above error comes from a bad relationship between libtool and the clang linker lld. Many libtool based projects currently fail to build on/for this platform. It is described here and not so easy to fix.

@nathan-nhm
Copy link
Author

Ok. So this sounds like the what I needed to do with the pg gem, so that I'll point out what they recommended

https://github.com/ged/ruby-pg/blob/1f0db7bca38fff58b91cb71d6ffa55f2bc45bbc4/ext/extconf.rb#L230

So,

ridk exec sh -c "pacman -S ${MINGW_PACKAGE_PREFIX}-libxml2 ${MINGW_PACKAGE_PREFIX}-libxslt"
bundle config build.nokogiri --use-system-libraries
gem install nokogiri -- --use-system-libraries

Will confirm once I'm in front of the right keyboard.

@nwellnhof
Copy link

Off-topic, but

  CC       libxml2_la-buf.lo
buf.c:15:9: warning: 'IN_LIBXML' macro redefined [-Wmacro-redefined]
   15 | #define IN_LIBXML
      |         ^
<command line>:5:9: note: previous definition is here
    5 | #define IN_LIBXML 1
      |         ^
1 warning generated.

You should not mess with IN_LIBXML, IN_LIBXSLT or IN_LIBEXSLT when building libxml2 and libxslt. I'm surprised that this even works.

@nathan-nhm
Copy link
Author

I have build the gem successfully with system libraries now, thank you.

Is it worth adding this to the compile error messages for MinGW? I' would think it might be useful even after @larskanis finishes a patch.

@flavorjones
Copy link
Member

re: IN_LIBXML, see #3475 for progress on removing them.

@flavorjones
Copy link
Member

@nathan-nhm re: your question:

Is it worth adding this to the compile error messages for MinGW

Do you mean in the troubleshooting section of the installation docs? If so, I would definitely welcome a pull request adding to that section. 🙏

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

No branches or pull requests

4 participants