Skip to content

Windows: Fix build error incompatible pointer types#81

Merged
ioquatix merged 2 commits intosocketry:masterfrom
daipom:windows-fix-build-error-incompatible-pointer-types
May 17, 2024
Merged

Windows: Fix build error incompatible pointer types#81
ioquatix merged 2 commits intosocketry:masterfrom
daipom:windows-fix-build-error-incompatible-pointer-types

Conversation

@daipom
Copy link
Copy Markdown
Contributor

@daipom daipom commented May 13, 2024

On GitHub workflows, building the native extensions for cool.io fails as follows:

../libev/ev.c: In function 'evpipe_write':
../libev/ev.c:2484:19: error: assignment to 'char *' from incompatible pointer
type 'WSABUF *' [-Wincompatible-pointer-types]
 2484 |           buf.buf = &buf;
      |                   ^

I have tested this by enabling Windows CI on my fork.
You can see this error occurs on Windows:

In addition, I have made the test repository that depends on cool.io.
You can check this error here too:

About this fix

The type of buf member of WSABUF is char *:

On libev upstream, this was already fixed on v4.25:

http://cvs.schmorp.de/libev/ev.c?r1=1.484&r2=1.485&pathrev=rel-4_25

Maybe we should try to update the overall libev version, but that could be difficult.
This PR intends to fix this error first.

Types of Changes

  • Bug fix.

Contribution

On GitHub workflows, building the native extensions for `cool.io` fails
as follows:

    ../libev/ev.c: In function 'evpipe_write':
    ../libev/ev.c:2484:19: error: assignment to 'char *' from incompatible pointer
    type 'WSABUF *' [-Wincompatible-pointer-types]
     2484 |           buf.buf = &buf;
          |                   ^

* Runner: windows-2022 (20240421.1.0)
* Use `ruby/setup-ruby v1` to set up Ruby
  * https://github.com/actions/setup-ruby
* Dependency: `cool.io` v1.8.0

The type of `buf` member of `WSABUF` is `char *`:

* https://learn.microsoft.com/en-us/windows/win32/api/ws2def/ns-ws2def-wsabuf

On `libev` upstream, this was already fixed on v4.25:

http://cvs.schmorp.de/libev/ev.c?r1=1.484&r2=1.485&pathrev=rel-4_25

Maybe we should try to update the overall `libev` version, but that
could be difficult.
So, this commit intends to fix this error first.
In addition, add `fail-fast: false` to ensure that all jobs are executed.
@daipom
Copy link
Copy Markdown
Contributor Author

daipom commented May 17, 2024

@ioquatix Could you please see this?

@ioquatix ioquatix merged commit 3537338 into socketry:master May 17, 2024
@ioquatix ioquatix added this to the v1.8.0 milestone May 17, 2024
@daipom
Copy link
Copy Markdown
Contributor Author

daipom commented May 17, 2024

Thanks for your review!

@ioquatix
Copy link
Copy Markdown
Member

I released it in version 1.8.1. Please let me know how you get on.

@daipom daipom deleted the windows-fix-build-error-incompatible-pointer-types branch May 17, 2024 04:17
@daipom
Copy link
Copy Markdown
Contributor Author

daipom commented May 17, 2024

I released it in version 1.8.1. Please let me know how you get on.

Thanks! Sure!

@ioquatix ioquatix modified the milestones: v1.8.0, v1.8.1 May 17, 2024
@daipom
Copy link
Copy Markdown
Contributor Author

daipom commented May 17, 2024

@ioquatix I have confirmed this issue is completely resolved!
Thanks so much for your quick response!

@ioquatix
Copy link
Copy Markdown
Member

Thanks for your pull request and additions to CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants