Skip to content

Running build-aws.ps1 on windows fails with vagrant 2.2.18 #291

@matt-richardson

Description

@matt-richardson

Running build-aws.ps on window 11, using vagrant 2.2.18 fails with a nasty error: conflicting types for 'gettimeofday'

PS > .\build-aws.ps1 -SkipPester
Vagrant installed - good.
AWS CLI installed - good.
Vagrant plugin vagrant-aws not installed.
Installing the 'vagrant-aws' plugin. This can take a few minutes...
Building native extensions. This could take a while...
Vagrant failed to properly resolve required dependencies. These
errors can commonly be caused by misconfigured plugin installations
or transient network issues. The reported error is:

ERROR: Failed to build gem native extension.

    current directory: C:/Users/anon/.vagrant.d/gems/2.7.4/gems/ovirt-engine-sdk-4.4.1/ext/ovirtsdk4c
C:/HashiCorp/Vagrant/embedded/mingw64/bin/ruby.exe -I C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/2.7.0 -r ./siteconf20211028-19688-x6r1d6.rb extconf.rb
checking for xml2-config... no
checking for curl-config... no
creating Makefile

current directory: C:/Users/anon/.vagrant.d/gems/2.7.4/gems/ovirt-engine-sdk-4.4.1/ext/ovirtsdk4c
make "DESTDIR=" clean
bash.exe: warning: could not find /tmp, please create!

current directory: C:/Users/anon/.vagrant.d/gems/2.7.4/gems/ovirt-engine-sdk-4.4.1/ext/ovirtsdk4c
make "DESTDIR="
generating ovirtsdk4c-x64-mingw32.def
bash.exe: warning: could not find /tmp, please create!
compiling ov_error.c
compiling ov_http_client.c
In file included from ov_http_client.c:26:
C:/HashiCorp/Vagrant/embedded/mingw64/x86_64-w64-mingw32/include/sys/time.h:42:13: error: conflicting types for 'gettimeofday'
   42 | int __cdecl gettimeofday(struct timeval *__restrict__,
      |             ^~~~~~~~~~~~
In file included from C:/HashiCorp/Vagrant/embedded/mingw64/include/ruby-2.7.0/ruby/defines.h:371,
                 from C:/HashiCorp/Vagrant/embedded/mingw64/include/ruby-2.7.0/ruby/ruby.h:29,
                 from C:/HashiCorp/Vagrant/embedded/mingw64/include/ruby-2.7.0/ruby.h:33,
                 from ov_http_client.c:17:
C:/HashiCorp/Vagrant/embedded/mingw64/include/ruby-2.7.0/ruby/win32.h:318:12: note: previous declaration of 'gettimeofday' was here
  318 | extern int gettimeofday(struct timeval *, struct timezone *);
      |            ^~~~~~~~~~~~
ov_http_client.c:216:29: warning: excess elements in array initializer
  216 |         .reserved = { NULL, NULL }
      |                             ^~~~
ov_http_client.c:216:29: note: (near initialization for 'ov_http_client_type.function.reserved')
ov_http_client.c: In function 'ov_http_client_prepare_handle':
ov_http_client.c:1001:47: warning: passing argument 2 of 'rb_hash_foreach' from incompatible pointer type [-Wincompatible-pointer-types]
 1001 |         rb_hash_foreach(request_ptr->headers, ov_http_client_add_header, (VALUE) headers);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                               |
      |                                               int (*)(VALUE,  VALUE,  struct curl_slist **) {aka int (*)(long long unsigned int,  long long unsigned int,  struct curl_slist **)}
In file included from C:/HashiCorp/Vagrant/embedded/mingw64/include/ruby-2.7.0/ruby/ruby.h:2148,
                 from C:/HashiCorp/Vagrant/embedded/mingw64/include/ruby-2.7.0/ruby.h:33,
                 from ov_http_client.c:17:
C:/HashiCorp/Vagrant/embedded/mingw64/include/ruby-2.7.0/ruby/intern.h:558:29: note: expected 'int (*)(VALUE,  VALUE,  VALUE)' {aka 'int (*)(long long unsigned int,  long long unsigned int,  long long unsigned int)'} but argument is of type 'int (*)(VALUE,  VALUE,  struct curl_slist **)' {aka 'int (*)(long long unsigned int,  long long unsigned int,  struct curl_slist **)'}
  558 | void rb_hash_foreach(VALUE, int (*)(VALUE, VALUE, VALUE), VALUE);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:245: ov_http_client.o] Error 1

make failed, exit code 2

Gem files will remain installed in C:/Users/anon/.vagrant.d/gems/2.7.4/gems/ovirt-engine-sdk-4.4.1 for inspection.
Results logged to C:/Users/anon/.vagrant.d/gems/2.7.4/extensions/x64-mingw32/2.7.0/ovirt-engine-sdk-4.4.1/gem_make.out

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions