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
[tools/depends] Bump swig 4.2.0 #24552
Conversation
Compiles on my machine for webOS. Maybe the webOS build failure was just a fluke |
Jenkins build this please |
Apparently, the issue seems to arise from this part in
If this part is present the build will i.e. resolve bzip2 from the target sysroot:
Causing a lot of redefinition warnings:
With that part commented in
It's also possible that the root cause for this is that |
The inclusion of bzip was just an example for why it was failing. There's more libraries being pulled in (at least libreadline for pcre2). But there may be more. Why are target sysroot even included in |
On other platforms, they do not point to target locations. they are host locations. The comment is incorrect. So im guessing the webos stuff isnt differentiating somewhere?
Target toolchain is
|
Parts from the webOS cmake config: Native:
Target:
It's not the first two lines that are the problem. The problem is inside the if condition where stuff is appended to |
The if condition is a catch all for every platform that uses it. What path explicitly is a target lib being found in the native list? I cant build webos locally on a mac (at least last time i tried), so really have no way to test/look at this. |
Basically anything inside I'm building for webOS on a mac inside a aarch64 ubuntu-22.04 vm btw. |
Can you PR whatever change you think is relevant and we'll see what breaks/fallout i guess. Whatever the change ends up being isnt exactly relevant to this PR, and should be resolved regardless i imagine. |
Bison 3.5 is a dependency of swig 4.2.0 cmake builds. macos ships bison 2.3. so add as a general native dep
pcre2 is a dependency of swig 4.2.0+
swig 4.2.0 introduced a change that adds a constructor to the generated AddonModuleXbmcaddon.i.cpp file. This causes failures such as build/swig/AddonModuleXbmcaddon.i.cpp: In function 'PyObject* PythonBindings::xbmcaddon_XBMCAddon_xbmcaddon_Settings_New(PyTypeObject*, PyObject*, PyObject*)': build/swig/AddonModuleXbmcaddon.i.cpp:1751:52: error: no matching function for call to 'XBMCAddon::xbmcaddon::Settings::Settings()' 1751 | apiResult = new XBMCAddon::xbmcaddon::Settings(); | ^ In file included from ../xbmc/interfaces/legacy/Addon.h:14, from build/swig/AddonModuleXbmcaddon.i.cpp:30: ../xbmc/interfaces/legacy/Settings.h:58:3: note: candidate: 'XBMCAddon::xbmcaddon::Settings::Settings(std::shared_ptr<CSettingsBase>)' 58 | Settings(std::shared_ptr<CSettingsBase> settings); | ^~~~~~~~ ../xbmc/interfaces/legacy/Settings.h:58:3: note: candidate expects 1 argument, 0 provided If we disable the contructor for Settings, we get the same generated output as swig <=4.1.1
Description
Bump swig to 4.2.0 and fix building with swig 4.2.0
Motivation and context
Fixes #24385
More information can be seen in that issue regarding the end result of the swig compilation
How has this been tested?
@heitbaum
What is the effect on users?
N/A
Screenshots (if appropriate):
Types of change
Checklist: