Thanks @mistria@xxxxxxxxxx
for the detailed mail. I was trying out the things mentioned.
Please see the below steps I tried:
- Setup a Fedora38 VM.
- We suspect this commit
https://github.com/eclipse-platform/eclipse.platform.swt/commit/d8e3f297ffde54412d935db7dde31d276b58b635#diff-874667bd88035dc47251befdad240fb5cf39f7db50597060fe17c2ecb6082de5 (which was done to make 3.22 GTK version as minimum), as the cause of the crash
issue we are seeing (not sure, need to confirm). The crash occurs when we are right clicking (when trying to show a pop up menu) - getting
gtk_menu_popup_at_pointer undefined symbol. Since this may not be present in gtk4. Earlier we used to have a separate handling if the gtk version was less than 3.22. I tried to add the removed native call and changes in Menu.java.
And created the .so files with building in Fedora38 VM (Glibc 2.37).
- But when I am using this .so files in the product and trying to launch the product in SUSE12 SP5, the launch itself is failing. When I tried find the root
cause (adding some logs) I got the below error:
/home/testuser/Downloads/testProduct/testProduct -linux.gtk.x86_64/configuration/org.eclipse.osgi/277/0/.cp/libswt-pi3-gtk-4960r6.so: /lib64/libc.so.6: version `GLIBC_2.34'
not found (required by /home/ testuser/Downloads/ testProduct / testProduct -linux.gtk.x86_64/configuration/org.eclipse.osgi/277/0/.cp/libswt-pi3-gtk-4960r6.so)
It’s expecting Glibc version above 2.34 while the SUSE12 is having 2.22 by default.
I am a bit new to this, so could someone please guide me on how to fix this. Is this issue because I am using a wrong platform (with higher version of Glibc 2.37 for building). What is the ideal
platform which we are using to generate swt .so files for linux gtk.
Thanks,
Vishnu
The version of SWT was bumped by +0.1.0 during last cycle, which means it has new APIs and some bundles are probably consuming those new API; so by auditing the version, it seems like the combination you wish to achieve (latest platform
with old SWT) is then not possible.
With the link above and good knowledge of Maven, Tycho and PDE, you may be able to hack something to enforce another locally built version of SWT, but overall it will be annoying and difficult for questionable value. If you can make a PR
that fixes
https://github.com/eclipse-platform/eclipse.platform/issues/212 while still working with supported environments, there are chances that it get merged and than part of the official build. This is IMO the most profitable path forward, although it's not certain
it can work.
Note that if you're stuck in an environment that is not supported anymore, you may consider alternative distributions of Eclipse IDE, such as Flatpak one; with such container-like installations, most libs -including GTK- are supposed to
be included in a compatible way.
https://flathub.org/apps/org.eclipse.Java .