-
Notifications
You must be signed in to change notification settings - Fork 143
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 to Gradle 8; resuscitate CI #238
base: master
Are you sure you want to change the base?
Commits on Sep 5, 2023
-
Linux ARM natives: add FP requirement to arch.
Without this change, compilation on newer versions of GCC fails: cc1: error: ‘-mfloat-abi=hard’: selected architecture lacks an FPU The [GCC 8 ARM changes] note that “`-mfpu=auto` is now the default setting unless the compiler has been configured with an explicit `--with-fpu` option.” We were setting `-mfpu` to something other than `auto`, but one possible interpretation of that sentence is “the value of this option is now ignored unless you pass `--with-fpu`”. And of course, didn't, so on architectures where an FPU is optional (ARMv6 and ARMv7), we were being pushed onto a compile path that assumed the absence. A quick search uncovers a few other people dealing with this. Some distro developers discussing [how to handle the switch] refer to GCC 8, but the general consensus seems to be that the breaking change was introduced [with GCC 11] in Debian/Ubuntu. The GitHub Actions runners for Ubuntu 18.04 are now dead, but the last [installed software list] indicates that they included GCC v7.5.0, v9.4.0, and v10.3.0; presumably v7.5.0 was the default, which is why we didn't run into this before now. (The logs and artifacts from the last successful CI build are long expired.) I expect that this breaks compilation on GCC <v8. [GCC 8 ARM changes]: https://gcc.gnu.org/gcc-8/changes.html#arm [installed software list]: https://github.com/actions/runner-images/blob/425daf97b4452130f0065e4fc58b5c8b34ab1941/images/linux/Ubuntu1804-Readme.md [how to handle the switch]: https://gcc.gnu.org/pipermail/gcc/2021-September/237363.html [with GCC 11]: https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1939379#yui_3_10_3_1_1692749691943_147
Configuration menu - View commit details
-
Copy full SHA for d0e1a27 - Browse repository at this point
Copy the full SHA d0e1a27View commit details -
macOS natives: don't need to link Java framework.
The project doesn't actually use any headers from the JavaVM framework, so we don't need to link against it.
Configuration menu - View commit details
-
Copy full SHA for 64833b7 - Browse repository at this point
Copy the full SHA 64833b7View commit details -
macOS natives: specifically target Mac OS X 10.7.
...rather than accepting whatever default we get for the x86_64 arch. I've chosen 10.7 because that's the lowest requirement I can find for a Java 8 JDK. No sense in building natives for anything older if there's no way to run them there.
Configuration menu - View commit details
-
Copy full SHA for e542631 - Browse repository at this point
Copy the full SHA e542631View commit details -
CI: use evergreen runners; update actions.
GitHub will continue to merrily deprecate and remove old runner environments, as is their prerogative. However, the simplest way to produce a library with a low minimum glibc version requirement is to build in an environment having an old glibc. Not only does Ubuntu 18.04 have a fairly old glibc (v2.27), but the symbol versions our library links against require only glibc v2.7 (on x86_64; somewhat higher for some of the other architectures). Having previously fixed cross-compilation compatibility with GCC 8, we are no longer able to build with GCC 7-based compilers. Thankfully, Ubuntu did package GCC 8 on 18.04; it's just not the default.
Configuration menu - View commit details
-
Copy full SHA for 6179070 - Browse repository at this point
Copy the full SHA 6179070View commit details -
Configuration menu - View commit details
-
Copy full SHA for e10feb7 - Browse repository at this point
Copy the full SHA e10feb7View commit details -
Gradle: apply all of the plugins together.
No need to apply some of plugins outside of the plugins block.
Configuration menu - View commit details
-
Copy full SHA for eef5733 - Browse repository at this point
Copy the full SHA eef5733View commit details -
Configuration menu - View commit details
-
Copy full SHA for 84a4365 - Browse repository at this point
Copy the full SHA 84a4365View commit details -
Configuration menu - View commit details
-
Copy full SHA for 712e484 - Browse repository at this point
Copy the full SHA 712e484View commit details -
Gradle: remove unnecessary JAR configuration.
The archive name is automatically derived from the `archivesBaseName` and the `version`. And we don't have any duplicate archive contents, so we don't benefit from setting a strategy to cope with them.
Configuration menu - View commit details
-
Copy full SHA for a2c9325 - Browse repository at this point
Copy the full SHA a2c9325View commit details -
Gradle: update dependency configurations names.
Some dependency configurations have been renamed as of Gradle 7.
Configuration menu - View commit details
-
Copy full SHA for 4cfddf5 - Browse repository at this point
Copy the full SHA 4cfddf5View commit details -
Gradle: use automatic Javadoc/source archives.
By using the Java plugin's built-in functionality to create these archives, they're automatically created as part of a normal build, and included in publications.
Configuration menu - View commit details
-
Copy full SHA for f5b383d - Browse repository at this point
Copy the full SHA f5b383dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4155d5a - Browse repository at this point
Copy the full SHA 4155d5aView commit details -
Gradle: optionally sign publication artifacts.
Because signing now only happens when publishing the build and only when signatory configuration appears to be available, we can leave the signing block uncommented without getting in the way of people who are just trying to make local builds.
Configuration menu - View commit details
-
Copy full SHA for 63993ca - Browse repository at this point
Copy the full SHA 63993caView commit details -
Configuration menu - View commit details
-
Copy full SHA for 04072c2 - Browse repository at this point
Copy the full SHA 04072c2View commit details -
Gradle: build with a Java 8 toolchain.
Thanks to “toolchains”, introduced in Gradle v6.7, we can now easily ensure that the library is always built with a Java 8 toolchain, even if Gradle is invoked with something else.
Configuration menu - View commit details
-
Copy full SHA for 8200051 - Browse repository at this point
Copy the full SHA 8200051View commit details -
Configuration menu - View commit details
-
Copy full SHA for aa32d8d - Browse repository at this point
Copy the full SHA aa32d8dView commit details -
Gradle: update Bnd plugin to v6.4.0.
Bnd v6 introduces a `bundle` extension to the the Java plugin's `jar` task, which no longer relies on conventions (which are deprecated). This mostly just clears up a deprecation warning. One warning still remains as long as the Bnd plugin is applied, and there doesn't seem to be anything we can do about it.
Configuration menu - View commit details
-
Copy full SHA for f96d469 - Browse repository at this point
Copy the full SHA f96d469View commit details -
Configuration menu - View commit details
-
Copy full SHA for 485d70b - Browse repository at this point
Copy the full SHA 485d70bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 92f2f5c - Browse repository at this point
Copy the full SHA 92f2f5cView commit details -
Configuration menu - View commit details
-
Copy full SHA for bcb0063 - Browse repository at this point
Copy the full SHA bcb0063View commit details