-
Notifications
You must be signed in to change notification settings - Fork 67
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
Build launcher with older version of debian to limit glibc version required #834
base: master
Are you sure you want to change the base?
Conversation
As with eclipse-platform/eclipse.platform.releng.aggregator#2802, I don't know how to test this on the build machine. I can verify that it works locally. Here is running the build with
And here is using the image from eclipse-platform/eclipse.platform.releng.aggregator#2802:
|
I think there are some ways to modify the pipeline, but I don't thing we need to complicate it, if you have tested it local and confident it works, the best is to merge it and check the next I-Build. |
features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak
Outdated
Show resolved
Hide resolved
I do think that the updated glibc version requirement is going to be disruptive if it stays like it is for the 2025-03 release. But is there a similar effort going on to make SWT also to be able to run with an older glibc? |
There is - I am doing that next. The launcher change was to test the waters. I hadn't made the SWT issue report yet - I will do that now. |
|
FYI, there has already been some negative impact from the lack of backward compatibility, and that's being noticed during the early milestone phases: |
Once we have submitted that change and build and deployed the new docker-image the Jenkins build should pick-up your changes automatically (maybe a committer has to rebuild it since changes from non-committers might not be picked-up from PRs). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change looks good and the latest build with it applied succeeded.
You can get the built Equinox launcher executable and native launcher libraries from Jenkins:
https://ci.eclipse.org/releng/job/equinox/job/PR-834/8/artifact/equinox.binaries/
Since the I-build just started, I'd leave this open for comments until tomorrow Wednesday (European) evening and submit it then, unless there are (major) objections.
@@ -85,6 +85,9 @@ $(EXEC): $(MAIN_OBJS) $(COMMON_OBJS) | |||
$(DLL): $(DLL_OBJS) $(COMMON_OBJS) | |||
$(CC) -bundle -o $(DLL) $(ARCHS) $(DLL_OBJS) $(COMMON_OBJS) $(LIBS) | |||
|
|||
# Are there equivalent checks to what is in make_linux.mk to do for macOS? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I cannot answer that with certainty, but in general each OS is independent and as we didn't change anything there recently I think it's currently fine. Of course it could be interesting for the future.
But I recall there have been issues in the past, which I think is the reason that the binaries for mac on x86_64 and aarch64 are both compiled on the ARM machine.
But unless we can define a suitable check for mac now, this should be converted into a statement.
…quired Doing this allows eclipse launcher to run on older Linux installs than the just the most recent versions. In particular this is important to ensure users who do check for updates end up with a still working eclipse launcher. In addition, this commit introduces a check in the build process that the built eclipse/eclipse.so only contains the expected sets of dependencies. The x86_64 PERMITTED_GLIBC_VERSION value is based on what Eclipse 4.34 used and what is now achieved again with this commit. The check_dependencies.sh script was derived from work I did on CDT [here](/scratch/eclipse/src/cdt/org.eclipse.cdt/releng/scripts/check_glibc_dependencies.shhttps://github.com/eclipse-cdt/cdt/blob/dfdc174b6d972037db2f299457fac9f0dd44c081/releng/scripts/check_glibc_dependencies.sh) Requires eclipse-platform/eclipse.platform.releng.aggregator#2802 Fixes eclipse-equinox#830
I have tested these artifacts on x86-64 against the original use cases in #830. I tested them locally on my Xubuntu 24.04 and with docker on Debian:11. Here are the specific steps I ran on my host machine. (Note I have java located in
I'll now push the comment cleanup. Let me know if there is anything else you think I should write or test. |
Doing this allows eclipse launcher to run on older Linux installs than the just the most recent versions. In particular this is important to ensure users who do check for updates end up with a still working eclipse launcher.
In addition, this commit introduces a check in the build process that the built eclipse/eclipse.so only contains the expected sets of dependencies.
The x86_64 PERMITTED_GLIBC_VERSION value is based on what Eclipse 4.34 used and what is now achieved again with this commit. For other linux platforms we don't enforce versions yet.
The check_dependencies.sh script was derived from work I did on CDT here
Requires eclipse-platform/eclipse.platform.releng.aggregator#2802
Fixes #830