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

Fix building for "Windows ia32" on main #5673

Closed
kraenhansen opened this issue Mar 30, 2023 · 8 comments · Fixed by #5703
Closed

Fix building for "Windows ia32" on main #5673

kraenhansen opened this issue Mar 30, 2023 · 8 comments · Fixed by #5703
Assignees

Comments

@kraenhansen
Copy link
Member

kraenhansen commented Mar 30, 2023

It seems building for Windows ia32 broke on main.

I start seeing errors on the merge commit from #5650: https://github.com/realm/realm-js/actions/runs/4541450640/jobs/8003632690

 Checking File Globs
  Checking Build System
  Generating D:/a/realm-js/realm-js/packages/bindgen/generated/spec.schema.json
  Generating D:/a/realm-js/realm-js/packages/realm/generated/ts/native.d.mts, D:/a/realm-js/realm-js/packages/realm/generated/ts/core.ts
  D:\a\realm-js\realm-js\node_modules\@esbuild-kit\core-utils\node_modules\esbuild\lib\main.js:1885
          throw new Error(`The package "${pkg}" could not be found, and is needed by esbuild.

CUSTOMBUILD : error : The package "@esbuild/win32-x64" could not be found, and is needed by esbuild. [D:\a\realm-js\realm-js\packages\bindgen\build\TypeScript.vcxproj]
  If you are installing esbuild with npm, make sure that you don't specify the
  "--no-optional" or "--omit=optional" flags. The "optionalDependencies" feature
  of "package.json" is used by esbuild to install the correct binary executable
  for your current platform.This was most likely related to the rebuild of the package-lock.json that it introduced.

These optional dependencies got added back in with https://github.com/realm/realm-js/pull/5652/files#diff-053150b640a7ce75eff69d1a22cae7f0f94ad64ce9a855db544dda0929316519

But on that commit Windows ia32 started failing with:

D:\a\realm-js\realm-js\vendor\realm-core\src\realm/array.hpp(569,16): warning C4146: unary minus operator applied to unsigned type, result still unsigned [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(695,24): error C2666: 'Napi::CallbackInfo::operator []': 2 overloads have similar conversions [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\node_modules\node-addon-api\napi-inl.h(3477,34): message : could be 'const Napi::Value Napi::CallbackInfo::operator [](size_t) const' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(695,24): message : or       'built-in C++ operator[(napi_callback_info, int)' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(695,24): message : while trying to match the argument list '(const Napi::CallbackInfo, int)' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(695,43): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(696,46): error C3536: 'ctors': cannot be used before it is initialized [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(696,79): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(697,77): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(698,85): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(699,89): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(700,91): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(701,99): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(702,83): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(703,81): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(704,95): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(705,85): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(706,75): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(707,91): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(708,91): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(709,87): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(710,83): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(711,97): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(712,79): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(713,97): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(714,87): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(715,83): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(716,79): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(717,101): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(718,97): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(719,103): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(720,85): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(721,89): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(722,77): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(723,75): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(724,89): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(725,97): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(726,95): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(727,97): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(729,84): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(730,85): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(731,91): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(732,109): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(733,75): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(734,91): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(735,89): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(737,89): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(739,83): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(740,95): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(741,91): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(742,107): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(743,95): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(744,91): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(745,107): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(747,85): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(748,87): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(749,115): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
D:\a\realm-js\realm-js\packages\bindgen\build\node_init.cpp(750,103): error C2059: syntax error: ')' [D:\a\realm-js\realm-js\packages\bindgen\build\realm-js.vcxproj]
....

The diff between the last green build and the first failing commit doesn't show any changes to the bindgen template: e41501e...18140b1

@kneth
Copy link
Contributor

kneth commented Mar 31, 2023

Is it related to #4857?

@kraenhansen
Copy link
Member Author

kraenhansen commented Mar 31, 2023

Most likely not. @RedBeard0531 pointed me to the fact that we're not using windows-latest for the ia32 build: https://github.com/realm/realm-js/blob/main/.github/workflows/pr-realm-js.yml#L57

@kraenhansen
Copy link
Member Author

kraenhansen commented Apr 3, 2023

I've just verified that reverting the package-lock.json does fix the build issue: e0bc44c .. but we can't do that due to the other issues that was fixing. I'd try regenerating the package-lock.json all together in a different PR: #5695

@rossicler-hostalky
Copy link

rossicler-hostalky commented Apr 4, 2023

May I ask if this issue is related to this error:

Uncaught Exception:
Error:
\\?\C:\Users\MyUser\AppData\Local\Programs\electron-react-boilerplace\res...\realm.node is not a valid Win32 application.
\\?\C:\Users\MyUser\AppData\Local\Programs\electron-react-boilerplace\res...\realm.node
    at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1822)
    at Module._extensions..node (node:internal/modules/cjs/loader:1259:18)
    at Object.func [as .node] (node:electron/js2c/asar_bundle:2:2049)
    at Module.load (node:internal/modules/cjs/loader:1044:32)
    at Module._load (node:internal/modules/cjs/loader:885:12)
    at c._load (node:electron/js2c/asar_bundle:5:13330)
    at Module.require (node:internal/modules/cjs/loader:1068:19)
    at require (node:internal/modules/cjs/helpers:103:18)
   ...

I found some previous issues with the same error, but all of them were using a version like 10.20 or 11.0.0-rc.2 and the issue is now closed. Btw, I'm using version 11.7.0

@RedBeard0531
Copy link
Contributor

I'm pretty sure this is caused by nodejs/node-addon-api#1272, which was fixed by nodejs/node-addon-api#1275 / nodejs/node-addon-api@53f7cf1. This was introduced in node-addon-api 5.1.0 and unfortunately only fixed in 6.0.0, so anything using ^5.0.0 may upgrade to a broken version, but will not upgrade to a fixed version.

I'll see if I can find a way to force us to either exactly 5.0.0, or at least 6.0.0

@rossicler-hostalky
Copy link

rossicler-hostalky commented Apr 5, 2023

I checked and the realm version 11.7.0 uses node-addon-api 4.2.0, is my problem related to something different?

Sorry if this is not the right place to ask this, maybe I should create a specific issue for this, but I would really appreciate if you have any suggestions about what should I do.

@kraenhansen
Copy link
Member Author

maybe I should create a specific issue for this

@rossicler-hostalky please do, that's the only way we can keep track of all the moving parts 🙂

@rossicler-hostalky
Copy link

no problem, thanks for the quick response

RalissonMattias pushed a commit to RalissonMattias/realm-js that referenced this issue Apr 10, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants