Skip to content

Conversation

@anastasiyaig
Copy link
Contributor

@anastasiyaig anastasiyaig commented Dec 17, 2025

What does the PR do

experimental, to resolve issues with building app on my windows machine

Fixes #19608

my laptop spec is this

image

i am able to build the app now with this branch, but i cant build master
i wonder what is needed (with evaluation of these changes ofc) to be done to our makefile / build process to allow me to build windows again

@status-im-auto
Copy link
Member

status-im-auto commented Dec 17, 2025

Jenkins Builds

Click to see older builds (30)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 8b869e7 #2 2025-12-17 18:53:22 ~10 min tests/nim 📄log
8b869e7 #2 2025-12-17 18:53:31 ~10 min macos/aarch64-nwaku 📄log
✔️ 8b869e7 #2 2025-12-17 18:54:17 ~11 min android/arm64 🤖apk 📲
✔️ 8b869e7 #2 2025-12-17 18:57:29 ~14 min tests/ui 📄log
✖️ 8b869e7 #2 2025-12-17 18:57:35 ~14 min ios/aarch64 📱ipa
8b869e7 #2 2025-12-17 18:58:04 ~14 min windows/x86_64 📄log
✔️ 8b869e7 #2 2025-12-17 19:01:11 ~17 min macos/aarch64 🍎dmg
✔️ 8b869e7 #2 2025-12-17 19:03:02 ~19 min linux/x86_64 📦tgz
✔️ 8b869e7 #2 2025-12-17 19:06:27 ~23 min linux/x86_64-nwaku 📦tgz
✔️ 8b869e7 pr19605 2025-12-17 19:18:48 ~15 min tests/e2e 📊rpt
✔️ b894d0f #3 2025-12-17 19:53:00 ~9 min android/arm64 🤖apk 📲
b894d0f #3 2025-12-17 19:53:14 ~9 min windows/x86_64 📄log
✔️ b894d0f #3 2025-12-17 19:53:51 ~10 min tests/nim 📄log
✔️ b894d0f #3 2025-12-17 19:56:51 ~13 min macos/aarch64 🍎dmg
✔️ b894d0f #3 2025-12-17 19:58:09 ~14 min tests/ui 📄log
✔️ b894d0f #3 2025-12-17 20:03:15 ~19 min linux/x86_64 📦tgz
✖️ b894d0f #3 2025-12-17 20:04:11 ~20 min ios/aarch64 📱ipa
✔️ b894d0f #3 2025-12-17 20:05:59 ~22 min linux/x86_64-nwaku 📦tgz
✔️ b894d0f #3 2025-12-17 20:08:42 ~25 min macos/aarch64-nwaku 🍎dmg
✔️ b894d0f pr19605 2025-12-17 20:18:55 ~15 min tests/e2e 📊rpt
✔️ c4aa408 #4 2025-12-18 07:36:03 ~10 min tests/nim 📄log
✔️ c4aa408 #4 2025-12-18 07:36:16 ~10 min android/arm64 🤖apk 📲
✔️ c4aa408 #4 2025-12-18 07:38:49 ~12 min macos/aarch64 🍎dmg
✔️ c4aa408 #4 2025-12-18 07:39:52 ~14 min tests/ui 📄log
✖️ c4aa408 #4 2025-12-18 07:41:10 ~15 min ios/aarch64 📱ipa
c4aa408 #4 2025-12-18 07:41:11 ~15 min windows/x86_64 📄log
✔️ c4aa408 #4 2025-12-18 07:46:46 ~20 min macos/aarch64-nwaku 🍎dmg
✔️ c4aa408 #4 2025-12-18 07:47:01 ~21 min linux/x86_64 📦tgz
✔️ c4aa408 #4 2025-12-18 07:49:59 ~24 min linux/x86_64-nwaku 📦tgz
✔️ c4aa408 pr19605 2025-12-18 08:02:13 ~15 min tests/e2e 📊rpt
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ a25584e6 #5 2025-12-19 05:31:24 ~13 min android/arm64 🤖apk 📲
✔️ cf873f08 #6 2025-12-20 05:30:14 ~11 min android/arm64 🤖apk 📲

Copy link
Contributor

@Ivansete-status Ivansete-status left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some nitpick comments so far that I hope you find useful

NIMSDS_IMPORT_LIB := $(NIMSDS_LIBDIR)/libsds.dll.a

$(NIMSDS_DEF): $(NIMSDS_DLL)
@echo -e "\033[92mCreating:\033[39m libsds.def"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can create the libsds.def file in nim-sds repo.
Why is it needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On Windows with MinGW, when you link against a DLL using -lsds, the linker needs an import library (.dll.a file) that contains the list of exported symbols.
libsds.def is a module definition file that tells dlltool which symbols to include in the import library. Without it, dlltool may fail to extract all exports from the DLL automatically.
The .def file simply lists:

EXPORTS
SdsCleanupReliabilityManager
SdsSetEvent

Then dlltool uses it to create libsds.dll.a:
dlltool --dllname libsds.dll --def libsds.def --output-lib libsds.dll.a
Some build failures (undefined reference to 'SdsSetEventCallback') happened because dlltool --output-def didn't reliably extract all symbols from the DLL. Manually specifying them in the .def file ensures they're all included.

$(NIMSDS_IMPORT_LIB): $(NIMSDS_DLL) $(NIMSDS_DEF)
@echo -e "\033[92mCreating:\033[39m libsds.dll.a"
@rm -f $(NIMSDS_IMPORT_LIB)
@cd $(NIMSDS_LIBDIR) && dlltool --dllname libsds.dll --def libsds.def --output-lib libsds.dll.a || \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly, I think we can do that in nim-sds repo, instead :)

@anastasiyaig
Copy link
Contributor Author

@Ivansete-status thats AI freestyle 😂 I am not planning to merge it, just sharing what helped me to bypass building issue i have on my machine

@anastasiyaig
Copy link
Contributor Author

anastasiyaig commented Dec 18, 2025

@alexjba @Ivansete-status @igor-sirotin @siddarthkay asking for your wisdom guys!

added a task to collect details #19608

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Can't build Windows locally

3 participants