The Eclipse project offers installers for Linux. Do these installers (or the installed executables) contain any compiled C++ code? If so, how does Eclipse avoid C++ ABI compatibility issues?
I figured that the native libraries for Eclipse (like SWT) must all be written in C. (Let's ignore Windows for now.) While looking over the source for SWT, I noticed that the XPCOM-related code is written in C++.
So what's the trick? If I install Eclipse from an installer, will I get this stuff? If so, will it work regardless of which C++ runtime is on my machine? If so, how do "they" do it?
(To preemptively address the peanut gallery: I realize I could just use a package manager to install Eclipse. I'm asking about the case where a program isn't specifically tailored for my machine.)
I noticed that the SWT FAQ explains, "SWT uses JNI to interact with the native widgets in the operating system. The SWT JNI libraries must be compiled for the windowing system, operating system and hardware architecture of interest."
That makes me think, "Then how is Eclipse able to make a one-size-fits-all installer for Linux?" (Maybe if I simply tried using one of these installers, all would become clear. But sometimes it's better to just ask your betters.)
I'm trying to understand how Java projects that use the JNI deal with C++ ABI compatibility issues. I asked a similar question a few days ago, and haven't heard much yet ( Is the Java Native Interface (JNI) affected by C++ ABI compatibility issues? ). I figured an Eclipse expert might be able to give me some guidance, since Eclipse might have to deal with similar issues.
Just to be clear: It seems like Java processes basically cannot use C++ libraries. The Java process needs a C++ runtime. If a shared library needs an incompatible C++ runtime ... well, you probably get the idea by now.
(Thanks for reading all of this.)