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

Update MacOS and Windows build instructions and remove old build scripts #69

Merged
merged 7 commits into from
Aug 6, 2024

Conversation

phunkyfish
Copy link
Contributor

@phunkyfish phunkyfish commented Jul 24, 2024

Migrate build instructions to new cmake build system. Include updating the README, adding dependencies and removing obsolete build files.

README.md Outdated Show resolved Hide resolved
@kambala-decapitator
Copy link
Collaborator

please drop everything related to building Qt from source

for Windows you can also reference alternative way to obtain Qt: msys2 packages, see

mingw-w64-x86_64-cmake
mingw-w64-x86_64-gcc
mingw-w64-x86_64-ninja
mingw-w64-x86_64-qt6-base
mingw-w64-x86_64-qt6-tools

@phunkyfish
Copy link
Contributor Author

phunkyfish commented Jul 25, 2024

please drop everything related to building Qt from source

Will this just happen automatically now with the new build system? I.e. QT will get downloaded as part of the cmake build?

if not, what should be the instructions to installl the required QT libs?

@kambala-decapitator
Copy link
Collaborator

Qt isn't downloaded automatically, of course. You should install it in any way you wish: Qt online installer, Homebrew, msys2, your package manager on Linux, Conan, vcpkg, build from source etc. Giving details on this process normally is out of scope of a project.

@phunkyfish
Copy link
Contributor Author

please drop everything related to building Qt from source

for Windows you can also reference alternative way to obtain Qt: msys2 packages, see

mingw-w64-x86_64-cmake
mingw-w64-x86_64-gcc
mingw-w64-x86_64-ninja
mingw-w64-x86_64-qt6-base
mingw-w64-x86_64-qt6-tools

I'll add a separate commit for windows, but I'll need someone to test it. Let's use aqt for everything.

@phunkyfish phunkyfish force-pushed the update-osx-build branch 2 times, most recently from 7ea1613 to 3f78abc Compare July 28, 2024 11:51
README.md Outdated Show resolved Hide resolved
@phunkyfish phunkyfish force-pushed the update-osx-build branch 2 times, most recently from aa50f2d to c5aaa2d Compare July 28, 2024 18:53
@phunkyfish
Copy link
Contributor Author

phunkyfish commented Jul 30, 2024

Since moving to using AQT, building on intel or apple silicon on macOS, writing to SD show a blue bar instead of write progress.
Screenshot 2024-07-28 at 10 21 59

Any idea what causes this? The bar appears using QT 6.6.2 or QT 6.7.2. Note that the bar continues forever and does not stop or complete.

@chewitt
Copy link
Member

chewitt commented Jul 30, 2024

On first use I've selected and downloaded an image which pre-populates the image path details, but then when I try to write the image to a USB drive it fails because the app doesn't have (and hasn't asked for) full disk access:

image

Allowing the permission in settings requires me to restart the app to effect the change:

image

On restart I've lost the pre-populated path so I need to (re)select the downloaded file. Historically I would do this by simply drag/dropping the file on the app window, but this capability hasn't worked for me since we started reworking the app, and when I attempt to browse to my ~/Downloads folder I see nothing:

image

If I go via "Macintosh HD > Users > Christian > Downloads" then I can see the files:

image

Now the image is (re)selected I can finally write the image, which succeeded and the completion bar/percentage was correctly displayed.

I'm using Sonoma 14.5 on an M1 Pro chip.

@kambala-decapitator
Copy link
Collaborator

but this capability hasn't worked for me since we started reworking the app

Then I suggest to try on an older version where it's supposed to work. Could be some Sonoma change for example.

and when I attempt to browse to my ~/Downloads folder I see nothing

Because this is not your folder, it's of the root user.

@chewitt
Copy link
Member

chewitt commented Aug 1, 2024

Then I suggest to try on an older version where it's supposed to work. Could be some Sonoma change for example.

The earlier version I have doesn't run on ARM and I have no Intel HW these days so I'm unable to test. However, when we first started reworking things I was using Intel HW (on whatever macOS was current then) and the difference was before/after we started reworking the code. I'm confident it's not related to the macOS version.

Because this is not your folder, it's of the root user.

That makes complete sense, but it's seriously confusing for users. I guess this has existed since forever, but I never noticed the issue in the past because I was in the habit of using drag/drop to set the path.

@kambala-decapitator
Copy link
Collaborator

The earlier version I have doesn't run on ARM

Intel binaries should run just fine on ARM.

  • what error appears?
  • do you have older version at hand? I have Intel machine

@phunkyfish
Copy link
Contributor Author

Ok, so I tied to build on windows (after finally get a windows PC working) and cmake is failing on finding zlib. I would have thought they comes with QT. I used AQT and installed the 4 windows archives from the github action. Did I miss something?

@phunkyfish
Copy link
Contributor Author

Hmmm, so I installed gnu zlib but then it attempts to open unistd.h that doesn’t exist on windows.

@phunkyfish
Copy link
Contributor Author

phunkyfish commented Aug 4, 2024

Ok, that was with msvc, so I moved to mingw via msys and that worked. Still had to install zlib via msys and provide the paths for cmake, but it worked and tested correctly.

Will add instructions shortly.

@phunkyfish phunkyfish changed the title Update MacOS build instructions and remove old build scripts Update MacOS and Windows build instructions and remove old build scripts Aug 4, 2024
@kambala-decapitator
Copy link
Collaborator

kambala-decapitator commented Aug 4, 2024

Ok, so I tied to build on windows (after finally get a windows PC working) and cmake is failing on finding zlib. I would have thought they comes with QT. I used AQT and installed the 4 windows archives from the github action. Did I miss something?

repo contains prebuilt zlib only for msvc 2019:

if(MSVC_TOOLSET_VERSION EQUAL 142)
list(APPEND CMAKE_PREFIX_PATH "windows/msvc2019/zlib")
endif()

for other msvc toolsets one should build it manually, see https://github.com/madler/zlib/blob/develop/win32/VisualC.txt / https://github.com/madler/zlib/tree/develop/contrib/vstudio

@kambala-decapitator
Copy link
Collaborator

Qt contains only static zlib that is used inside Qt itself

@kambala-decapitator
Copy link
Collaborator

correct spelling is Qt, not QT (the latter traditionally means QuickTime)

@phunkyfish
Copy link
Contributor Author

Ok, so I tied to build on windows (after finally get a windows PC working) and cmake is failing on finding zlib. I would have thought they comes with QT. I used AQT and installed the 4 windows archives from the github action. Did I miss something?

repo contains prebuilt zlib only for msvc 2019:

if(MSVC_TOOLSET_VERSION EQUAL 142)
list(APPEND CMAKE_PREFIX_PATH "windows/msvc2019/zlib")
endif()

for other msvc toolsets one should build it manually, see https://github.com/madler/zlib/blob/develop/win32/VisualC.txt / https://github.com/madler/zlib/tree/develop/contrib/vstudio

Ok, msvc 2022 is the community edition, maybe I'll build that and add it to the repo. What about on mingw, I didn't think I'd need to specify the ZLIB paths but I had to.

@phunkyfish
Copy link
Contributor Author

So the release build works via mingw. But when using msvc it does not, as it tried to use the x86 compiler and not 64 bit.

Any idea why msvc only has this problem with release preset, but debug builds ok?

C:\Users\rossk\usb-sd-creator>cmake --preset release-msvc -D CMAKE_PREFIX_PATH="%UserProfile%/Qt/6.7.2/msvc2019_64" && cmake --build --preset release-msvc
Preset CMake variables:

  CMAKE_BUILD_TYPE="Release"

-- The CXX compiler identification is MSVC 19.40.33813.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.40.33807/bin/Hostx86/x86/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:40 (find_package):
  Could not find a configuration file for package "QT" that is compatible
  with requested version "".

  The following configuration files were considered but not accepted:

    C:/Users/rossk/Qt/6.7.2/msvc2019_64/lib/cmake/Qt6/Qt6Config.cmake, version: 6.7.2 (64bit)
    C:/msys64/mingw64/lib/cmake/Qt6/Qt6Config.cmake, version: 6.7.2 (64bit)



-- Configuring incomplete, errors occurred!

@phunkyfish
Copy link
Contributor Author

I got it to work on msvc using:

cmake --preset release-msvc -G "Visual Studio 17 2022" -A x64 -D CMAKE_PREFIX_PATH="%UserProfile%/Qt/6.7.2/msvc2019_64" && cmake --build --preset release

However, then creating the installer fails using: cpack --preset release

C:\Users\rossk\usb-sd-creator>cpack --preset release
CPack: Enable Verbose
CPack Verbose: Read CPack config file:
CPack Verbose: Read CPack configuration file: C:/Users/rossk/usb-sd-creator/build/CPackConfig.cmake
CPack Verbose: Specified generator: INNOSETUP
CPack Verbose: Test Inno Setup version: "C:\Program Files (x86)\Inno Setup 6\ISCC.exe"/?
CPack Verbose: Use generator: cmCPackInnoSetupGenerator
CPack Verbose: For project: LibreELEC USB-SD Creator
CPack: Create package using INNOSETUP
CPack Verbose: Read description file: C:/Program Files/CMake/share/cmake-3.30/Templates/CPack.GenericDescription.txt
CPack Verbose: [INNOSETUP] requested component grouping = ONE_PER_GROUP
CPack Verbose: Remove toplevel directory: C:/Users/rossk/usb-sd-creator/build/cpack/_CPack_Packages/win64/INNOSETUP
CPack: Install projects
CPack: - Install project: LibreELEC.USB-SD.Creator []
CPack Verbose: Install configuration: "Release"
CMake Error at C:/Users/rossk/usb-sd-creator/build/cmake_install.cmake:39 (file):
  file INSTALL cannot find
  "C:/Users/rossk/usb-sd-creator/build/Release/LibreELEC.USB-SD.Creator.exe":
  File exists.


CPack Verbose: Writing C:/Users/rossk/usb-sd-creator/build/cpack/_CPack_Packages/win64/INNOSETUP/LibreELEC.USB-SD.Creator.x64/./qt.conf
CPack Verbose: Running Qt deploy tool for LibreELEC.USB-SD.Creator.exe in working directory 'C:/Users/rossk/usb-sd-creator/build/cpack/_CPack_Packages/win64/INNOSETUP/LibreELEC.USB-SD.Creator.x64'
'C:/Users/rossk/Qt/6.7.2/msvc2019_64/bin/windeployqt.exe' 'LibreELEC.USB-SD.Creator.exe' '--verbose' '2' '--dir' '.' '--libdir' '.' '--plugindir' 'plugins' '--qml-deploy-dir' 'qml' '--translationdir' 'translations' '--force' '--no-translations' '--no-compiler-runtime' '--qtpaths' 'C:/Users/rossk/Qt/6.7.2/msvc2019_64/bin/qtpaths6.exe'
Running: C:/Users/rossk/Qt/6.7.2/msvc2019_64/bin/qtpaths6.exe -query
Trying to read translation catalogs from "C:/Users/rossk/Qt/6.7.2/msvc2019_64/translations/catalogs.json".
Warning: Translations will not be available due to the following error.
Cannot open C:/Users/rossk/Qt/6.7.2/msvc2019_64/translations/catalogs.json
Found module "Qt6Concurrent".
Found module "Qt6Core".
Found module "Qt6DBus".
Found module "Qt6Designer".
  plugin types: QList("designer")
Found module "Qt6DesignerComponents".
Found module "Qt6DeviceDiscoverySupport".
Found module "Qt6EntryPoint".
Found module "Qt6ExampleIcons".
Found module "Qt6FbSupport".
Found module "Qt6Freetype".
Found module "Qt6Gui".
  plugin types: QList("accessiblebridge", "platforms", "platforms/darwin", "xcbglintegrations", "platformthemes", "platforminputcontexts", "generic", "iconengines", "imageformats", "egldeviceintegrations")
Found module "Qt6Harfbuzz".
Found module "Qt6Help".
Found module "Qt6Jpeg".
Found module "Qt6Linguist".
Found module "Qt6Network".
  plugin types: QList("networkaccess", "networkinformation", "tls")
Found module "Qt6OpenGL".
Found module "Qt6OpenGLWidgets".
Found module "Qt6Png".
Found module "Qt6PrintSupport".
  plugin types: QList("printsupport")
Found module "Qt6QDocCatchConversions".
Found module "Qt6QDocCatchGenerators".
Found module "Qt6QDocCatch".
Found module "Qt6Sql".
  plugin types: QList("sqldrivers")
Found module "Qt6Test".
Found module "Qt6Tools".
Found module "Qt6UiPlugin".
Found module "Qt6UiTools".
Found module "Qt6Widgets".
  plugin types: QList("styles")
Found module "Qt6Xml".
Found module "Qt6Zlib".
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\designer\qaxwidget.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\designer\qaxwidgetd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\designer\qquickwidget.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\designer\qquickwidgetd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\generic\qtuiotouchplugin.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\generic\qtuiotouchplugind.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\imageformats\qgif.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\imageformats\qgifd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\imageformats\qico.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\imageformats\qicod.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\imageformats\qjpeg.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\imageformats\qjpegd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\networkinformation\qnetworklistmanager.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\networkinformation\qnetworklistmanagerd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\platforms\qdirect2d.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\platforms\qdirect2dd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\platforms\qminimal.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\platforms\qminimald.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\platforms\qoffscreen.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\platforms\qoffscreend.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\platforms\qwindows.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\platforms\qwindowsd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\sqldrivers\qsqlite.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\sqldrivers\qsqlited.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\sqldrivers\qsqlmimer.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\sqldrivers\qsqlmimerd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\sqldrivers\qsqlodbc.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\sqldrivers\qsqlodbcd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\sqldrivers\qsqlpsql.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\sqldrivers\qsqlpsqld.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\styles\qmodernwindowsstyle.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\styles\qmodernwindowsstyled.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\tls\qcertonlybackend.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\tls\qcertonlybackendd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\tls\qopensslbackend.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\tls\qopensslbackendd.dll 64 bit, debug
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\tls\qschannelbackend.dll 64 bit, release
readPeExecutable: C:\Users\rossk\Qt\6.7.2\msvc2019_64\plugins\tls\qschannelbackendd.dll 64 bit, debug
"LibreELEC.USB-SD.Creator.exe" does not exist.

CMake Error at C:/Users/rossk/Qt/6.7.2/msvc2019_64/lib/cmake/Qt6Core/Qt6CoreDeploySupport.cmake:533 (message):
  Executing C:/Users/rossk/Qt/6.7.2/msvc2019_64/bin/windeployqt.exe failed: 1
Call Stack (most recent call first):
  C:/Users/rossk/Qt/6.7.2/msvc2019_64/lib/cmake/Qt6Core/Qt6CoreDeploySupport.cmake:541 (qt6_deploy_runtime_dependencies)
  C:/Users/rossk/usb-sd-creator/build/.qt/deploy_LibreELEC_USB_SD_Creator_cf5f16c313-Release.cmake:5 (qt_deploy_runtime_dependencies)
  C:/Users/rossk/usb-sd-creator/build/cmake_install.cmake:51 (include)


CPack Error: Error when generating package: LibreELEC USB-SD Creator

@phunkyfish
Copy link
Contributor Author

phunkyfish commented Aug 4, 2024

Aha, it's building the Release build into Debug for some reason. If I rename the directory the installer builds correctly. No idea why this is happening.

@phunkyfish
Copy link
Contributor Author

phunkyfish commented Aug 4, 2024

So if I run any msvc build the same error always occurs:

IMG_7680

doesn’t matter if it’s a Debug or release build. Same error every time. I already added your patch for the JSON parser @kambala-decapitator

@phunkyfish phunkyfish force-pushed the update-osx-build branch 3 times, most recently from 5171ab0 to f3052a8 Compare August 5, 2024 07:32
@phunkyfish
Copy link
Contributor Author

phunkyfish commented Aug 5, 2024

Current state:

  • MinGW
    • Debug build: builds correctly, cpack creates an installer with Start menu, but hangs on writing to SD
    • Release build: builds correctly, cpack creates an installer with Start menu, and successfully writes to SD
  • MSVC

The error in #69 (comment), present n Debug builds in words:

  • Debug error!

  • Program C:\Program Files\LibreELEC USB-SD Creator 1.5\QT6Cored.dll

  • Module 6.7.2

  • File C:/Users/qt/work/qt/qtbase/src/corelib/tools/qlist.h

  • Line: 434

  • ASSERT failure in QList::at "index out of range", file C:/Users/qt/work/qt/qtbase/src/corelib/tools/qlist.h, line 434

  • Please Retry to debug the application)

@phunkyfish
Copy link
Contributor Author

Added instructions to start an x64 developer command prompt when building with msvc. So we now get a release build for msvc. Updated current state to reflect this.

@phunkyfish
Copy link
Contributor Author

phunkyfish commented Aug 5, 2024

I tested the CI build for msvc and it installs and works most of the time. There is still as issue where it can hang on writing to SD, similar to my local MingW build. So the QT error I get when building MSVC locally must be to do with my env, not sure exactly what it is.

@kambala-decapitator I wanted to do a similar test for the mingw build, but pack is not being run in CI for MinGW, any idea what that is? Maybe it does not detect cpack???

@kambala-decapitator
Copy link
Collaborator

@phunkyfish your crash screenshot indicates that Qt debug version was picked, using it with app release build is incorrect (at least when building with msvc). To know the reason of the crash, run app under debugger from visual studio.

-G "Visual Studio 17 2022" means that you're generating visual studio solution, but this is a multiconfig generator which means that you must pass --config param to cmake --build to select which config (Debug, Release etc.) you want to build.

There is still as issue where it can hang on writing to SD, similar to my local MingW build

sounds like something Windows-specific, no idea where to look

I wanted to do a similar test for the mingw build, but pack is not being run in CI for MinGW, any idea what that is? Maybe it does not detect cpack???

because we aren't going to distribute mingw build to end users, so I never cared to test cpack for it. For local development running cpack isn't needed.

@phunkyfish
Copy link
Contributor Author

because we aren't going to distribute mingw build to end users, so I never cared to test cpack for it. For local development running cpack isn't needed.

Ok, this means that CI only uploads a ZIP artifact and not an installer. It would be easier to have both for testing purposes from CI.

@kambala-decapitator
Copy link
Collaborator

currently mingw platform is tested only as a build target (sanity check), CI doesn't pack artifacts for it

@phunkyfish
Copy link
Contributor Author

Ok, but the hanging on write sometimes is happening cross platform. Both Mac (Intel and Apple silicon), my local mingw build and the CI build of msvc. I’ll put one of them on a debugger and see if I can figure out where exactly the hang occurs.

@kambala-decapitator
Copy link
Collaborator

@phunkyfish
Copy link
Contributor Author

please also check if it occurs in the old macOS build: https://chrishewitt.net/drive/d/s/wb9vTYFxHZOM6Jcyik5zP84MX4ErxALi/1pJlW9XyAAu50Xml31KixTIRAWcJGlJU-WLLgcoUSkAs

Will do. I'll look this evening. I assume the old mac build is intel only?

@phunkyfish
Copy link
Contributor Author

phunkyfish commented Aug 5, 2024

Here is a gist of the msvc crash from the VS debugger: https://gist.github.com/phunkyfish/3549999cd329e751ec5a8ef099cf488c

@kambala-decapitator screenshot of debugger window and call stack:
image

Note that I have your JSON improvements cherry-picked on the build:
image

@kambala-decapitator
Copy link
Collaborator

I assume the old mac build is intel only?

I guess so. But it should run on ARM anyway.

screenshot of debugger window and call stack

the error on your previous SS says about out of bounds access, but there's nothing like that here. However, now I see that there's no check for iterator validness like it's done for itUbootsNode.

@phunkyfish
Copy link
Contributor Author

screenshot of debugger window and call stack

the error on your previous SS says about out of bounds access, but there's nothing like that here. However, now I see that there's no check for iterator validness like it's done for itUbootsNode.

let me add it and I’ll see if it makes a difference.

@phunkyfish
Copy link
Contributor Author

screenshot of debugger window and call stack

the error on your previous SS says about out of bounds access, but there's nothing like that here. However, now I see that there's no check for iterator validness like it's done for itUbootsNode.

let me add it and I’ll see if it makes a difference.

Ok, that worked. MSVC now builds and installs and runs correctly.

@phunkyfish
Copy link
Contributor Author

phunkyfish commented Aug 6, 2024

I assume the old mac build is intel only?

I guess so. But it should run on ARM anyway.

Ok, I could not reproduce the hang on write (on intel or apple silicon) with the old build from @chewitt. I reckon we merge these PRs now anyway. I can attach a debugger to the mac build locally and figure out that issue separately but will wait until both PRs are merged first.

@phunkyfish
Copy link
Contributor Author

Please review and merge once you are happy with this @chewitt

@chewitt chewitt merged commit b0b9209 into LibreELEC:master Aug 6, 2024
4 checks passed
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.

4 participants