diff --git a/BUILD-DATASTAX.md b/BUILD-DATASTAX.md index 3567b5ba154..cd6dadf5ebb 100644 --- a/BUILD-DATASTAX.md +++ b/BUILD-DATASTAX.md @@ -1,4 +1,4 @@ -Running the tests requires the following packages: +## Running the tests requires the following packages: ``` sudo apt-get install autoconf automake libtool make tar gcc \ @@ -14,7 +14,7 @@ sudo apt-get install autoconf automake libtool make tar gcc \ a dependency of netty. It's not needed for building the project, but it is required for running the tests. -The release script `./docker-datastax-release.sh` requires docker be installed: +## The release script `./docker-datastax-release.sh` requires docker be installed: * `sudo apt-get install docker.io` to install docker. * `sudo usermod -aG docker $USER` to allow the current user to run docker. @@ -22,5 +22,23 @@ The release script `./docker-datastax-release.sh` requires docker be installed: * Setup the username and password for the artifactory server in `~/.m2/settings.xml`. * Then run `./docker-datastax-release.sh`. -* Follow this by releasing the MacOS specific kqueue library (must be run on MacOS): - `./mvnw clean && JAVA_HOME=$(/usr/libexec/java_home -v 1.8) ./mvnw -B -U -pl transport-native-unix-common,transport-native-kqueue -Partifactory deploy -DskipTests -DaltDeploymentRepository="artifactory::default::https://repo.aws.dsinternal.org/artifactory/datastax-releases-local"` + +## The next steps should each be run from a machine with the specific platform/architecture combinations below: + +### Linux ARM64/aarch_64 Epoll libraries +* The following needs to be run from a Linux ARM64 platform (i.e. Graviton EC2 instance) +``` +./mvnw clean && JAVA_HOME=$(/usr/libexec/java_home -v 1.8) ./mvnw -B -U -pl transport-native-unix-common,transport-native-epoll -Partifactory deploy -DskipTests -DaltDeploymentRepository="artifactory::default::https://repo.aws.dsinternal.org/artifactory/datastax-releases-local" +``` + +### MacOS AMD64/x86_64 KQueue libraries +* The follwoing needs to be run from an Intel based Mac: +``` +./mvnw clean && JAVA_HOME=$(/usr/libexec/java_home -v 1.8) ./mvnw -B -U -pl resolver-dns-native-macos,transport-native-unix-common,transport-native-kqueue -Partifactory deploy -DskipTests -DaltDeploymentRepository="artifactory::default::https://repo.aws.dsinternal.org/artifactory/datastax-releases-local" +``` +### MacOS ARM64/aarch_64 KQueue libraries +* The following needs to be run from an Apple Silicon based Mac (i.e. M1, M2, M3, etc) +``` +./mvnw clean && JAVA_HOME=$(/usr/libexec/java_home -v 1.8) ./mvnw -B -U -Pmac-m1-cross-compile -pl resolver-dns-native-macos,transport-native-unix-common,transport-native-kqueue -Partifactory deploy -DskipTests -DaltDeploymentRepository="artifactory::default::https://repo.aws.dsinternal.org/artifactory/datastax-releases-local" +``` + diff --git a/all/pom.xml b/all/pom.xml index 7fb0ab4fa9b..1fae8e4d258 100644 --- a/all/pom.xml +++ b/all/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-all diff --git a/bom/pom.xml b/bom/pom.xml index fc152fb86a0..66914d524b0 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -25,7 +25,7 @@ io.netty netty-bom - 4.1.100.1.dse + 4.1.100.2.dse pom Netty/BOM diff --git a/buffer/pom.xml b/buffer/pom.xml index dc45db01065..0ce1cc6a52a 100644 --- a/buffer/pom.xml +++ b/buffer/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-buffer diff --git a/codec-dns/pom.xml b/codec-dns/pom.xml index 6cb830d9e11..99731d64125 100644 --- a/codec-dns/pom.xml +++ b/codec-dns/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-dns diff --git a/codec-haproxy/pom.xml b/codec-haproxy/pom.xml index f52312fadc2..10ed8476828 100644 --- a/codec-haproxy/pom.xml +++ b/codec-haproxy/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-haproxy diff --git a/codec-http/pom.xml b/codec-http/pom.xml index 06438fdf038..1a4e7405970 100644 --- a/codec-http/pom.xml +++ b/codec-http/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-http diff --git a/codec-http2/pom.xml b/codec-http2/pom.xml index 309527db06a..17d4e60fc67 100644 --- a/codec-http2/pom.xml +++ b/codec-http2/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-http2 diff --git a/codec-memcache/pom.xml b/codec-memcache/pom.xml index 6cdcba8e94a..1ed67a77cfc 100644 --- a/codec-memcache/pom.xml +++ b/codec-memcache/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-memcache diff --git a/codec-mqtt/pom.xml b/codec-mqtt/pom.xml index 6d1f44dadf8..2a2e83ebe9c 100644 --- a/codec-mqtt/pom.xml +++ b/codec-mqtt/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-mqtt diff --git a/codec-redis/pom.xml b/codec-redis/pom.xml index 05670847c72..024684e0a31 100644 --- a/codec-redis/pom.xml +++ b/codec-redis/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-redis diff --git a/codec-smtp/pom.xml b/codec-smtp/pom.xml index 655d8fce468..bef13caafe0 100644 --- a/codec-smtp/pom.xml +++ b/codec-smtp/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-smtp diff --git a/codec-socks/pom.xml b/codec-socks/pom.xml index b21459c3156..b6516f2bc81 100644 --- a/codec-socks/pom.xml +++ b/codec-socks/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-socks diff --git a/codec-stomp/pom.xml b/codec-stomp/pom.xml index 84ad3ce22f2..5b353cf9309 100644 --- a/codec-stomp/pom.xml +++ b/codec-stomp/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-stomp diff --git a/codec-xml/pom.xml b/codec-xml/pom.xml index c143401b702..8c9884493b4 100644 --- a/codec-xml/pom.xml +++ b/codec-xml/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec-xml diff --git a/codec/pom.xml b/codec/pom.xml index d99643d28ff..3085d0a8b7d 100644 --- a/codec/pom.xml +++ b/codec/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-codec diff --git a/common/pom.xml b/common/pom.xml index e7ae01fc4be..53827cebe9d 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -21,7 +21,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-common diff --git a/example/pom.xml b/example/pom.xml index cdfff7a3567..18612534882 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -21,7 +21,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-example diff --git a/handler-proxy/pom.xml b/handler-proxy/pom.xml index e622e7421ac..0f4078aba5f 100644 --- a/handler-proxy/pom.xml +++ b/handler-proxy/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-handler-proxy diff --git a/handler-ssl-ocsp/pom.xml b/handler-ssl-ocsp/pom.xml index 8f6058ef51d..2d9b94cec50 100644 --- a/handler-ssl-ocsp/pom.xml +++ b/handler-ssl-ocsp/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-handler-ssl-ocsp diff --git a/handler/pom.xml b/handler/pom.xml index f223d92baac..322002aeef6 100644 --- a/handler/pom.xml +++ b/handler/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-handler diff --git a/microbench/pom.xml b/microbench/pom.xml index 458d38ee241..97a07c58909 100644 --- a/microbench/pom.xml +++ b/microbench/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-microbench diff --git a/pom.xml b/pom.xml index 545a5ef5865..d850293fd0c 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ io.netty netty-parent pom - 4.1.100.1.dse + 4.1.100.2.dse Netty https://netty.io/ diff --git a/resolver-dns-classes-macos/pom.xml b/resolver-dns-classes-macos/pom.xml index 4e7eb73b125..143d5c9b3c1 100644 --- a/resolver-dns-classes-macos/pom.xml +++ b/resolver-dns-classes-macos/pom.xml @@ -19,7 +19,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-resolver-dns-classes-macos diff --git a/resolver-dns-native-macos/pom.xml b/resolver-dns-native-macos/pom.xml index dccf52b3413..7d273c55d53 100644 --- a/resolver-dns-native-macos/pom.xml +++ b/resolver-dns-native-macos/pom.xml @@ -19,7 +19,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-resolver-dns-native-macos diff --git a/resolver-dns/pom.xml b/resolver-dns/pom.xml index 75a0fb3cf5d..36e7052a8a1 100644 --- a/resolver-dns/pom.xml +++ b/resolver-dns/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-resolver-dns diff --git a/resolver/pom.xml b/resolver/pom.xml index b8e41fa3065..5630db13c43 100644 --- a/resolver/pom.xml +++ b/resolver/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-resolver diff --git a/testsuite-autobahn/pom.xml b/testsuite-autobahn/pom.xml index 88c13c982a8..cd5278de6cc 100644 --- a/testsuite-autobahn/pom.xml +++ b/testsuite-autobahn/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite-autobahn diff --git a/testsuite-http2/pom.xml b/testsuite-http2/pom.xml index 3300aabe02c..cb54bb1d4fc 100644 --- a/testsuite-http2/pom.xml +++ b/testsuite-http2/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite-http2 diff --git a/testsuite-native-image-client-runtime-init/pom.xml b/testsuite-native-image-client-runtime-init/pom.xml index 0f835fe61cb..89589373967 100644 --- a/testsuite-native-image-client-runtime-init/pom.xml +++ b/testsuite-native-image-client-runtime-init/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite-native-image-client-runtime-init diff --git a/testsuite-native-image-client/pom.xml b/testsuite-native-image-client/pom.xml index 05d2c1c5682..bcdd0b3b697 100644 --- a/testsuite-native-image-client/pom.xml +++ b/testsuite-native-image-client/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite-native-image-client diff --git a/testsuite-native-image/pom.xml b/testsuite-native-image/pom.xml index 67187ee81e1..1380f5fd85e 100644 --- a/testsuite-native-image/pom.xml +++ b/testsuite-native-image/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite-native-image diff --git a/testsuite-native/pom.xml b/testsuite-native/pom.xml index 97cab74e2d2..7139dafaa9e 100644 --- a/testsuite-native/pom.xml +++ b/testsuite-native/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite-native diff --git a/testsuite-osgi/pom.xml b/testsuite-osgi/pom.xml index 10bf5fde865..da033d9432c 100644 --- a/testsuite-osgi/pom.xml +++ b/testsuite-osgi/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite-osgi diff --git a/testsuite-shading/pom.xml b/testsuite-shading/pom.xml index 2ab8daa26a7..89b7985002a 100644 --- a/testsuite-shading/pom.xml +++ b/testsuite-shading/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite-shading diff --git a/testsuite/pom.xml b/testsuite/pom.xml index 743ed1d0676..3abcefcbb34 100644 --- a/testsuite/pom.xml +++ b/testsuite/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-testsuite diff --git a/transport-blockhound-tests/pom.xml b/transport-blockhound-tests/pom.xml index ae3ea36f03c..b6ab9212181 100644 --- a/transport-blockhound-tests/pom.xml +++ b/transport-blockhound-tests/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-blockhound-tests diff --git a/transport-classes-epoll/pom.xml b/transport-classes-epoll/pom.xml index f155ae63eb3..edfe0869542 100644 --- a/transport-classes-epoll/pom.xml +++ b/transport-classes-epoll/pom.xml @@ -19,7 +19,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-classes-epoll diff --git a/transport-classes-kqueue/pom.xml b/transport-classes-kqueue/pom.xml index 1a0170b0c13..ede6d223e46 100644 --- a/transport-classes-kqueue/pom.xml +++ b/transport-classes-kqueue/pom.xml @@ -19,7 +19,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-classes-kqueue diff --git a/transport-native-epoll/pom.xml b/transport-native-epoll/pom.xml index 53d2567f09c..01a5d7d0c55 100644 --- a/transport-native-epoll/pom.xml +++ b/transport-native-epoll/pom.xml @@ -19,7 +19,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-native-epoll @@ -74,39 +74,6 @@ - - - maven-enforcer-plugin - - - enforce-release-environment - - enforce - - - - - - Release process must be performed on linux-x86_64. - - os.detected.classifier - ^linux-x86_64$ - - - - Release process must be performed on RHEL 6.8 or its derivatives. - - - /etc/redhat-release - - release 6.9 - - - - - - - @@ -242,37 +209,6 @@ - - maven-enforcer-plugin - - - enforce-release-environment - - enforce - - - - - - Cross compile and Release process must be performed on linux-x86_64. - - os.detected.classifier - ^linux-x86_64.* - - - - Cross compile and Release process must be performed on RHEL 7.6 or its derivatives. - - - /etc/redhat-release - - release 7.6 - - - - - - maven-dependency-plugin @@ -316,7 +252,7 @@ ${jni.compiler.args.cflags} --libdir=${project.build.directory}/native-build/target/lib --host=aarch64-linux-gnu - CC=aarch64-none-linux-gnu-gcc + CC=gcc diff --git a/transport-native-kqueue/pom.xml b/transport-native-kqueue/pom.xml index fd4ef46eb60..71632b9ac2d 100644 --- a/transport-native-kqueue/pom.xml +++ b/transport-native-kqueue/pom.xml @@ -19,7 +19,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-native-kqueue diff --git a/transport-native-unix-common-tests/pom.xml b/transport-native-unix-common-tests/pom.xml index 69d920642e0..d8ecfb54399 100644 --- a/transport-native-unix-common-tests/pom.xml +++ b/transport-native-unix-common-tests/pom.xml @@ -19,7 +19,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-native-unix-common-tests diff --git a/transport-native-unix-common/pom.xml b/transport-native-unix-common/pom.xml index cc64c310c94..c1c919b634a 100644 --- a/transport-native-unix-common/pom.xml +++ b/transport-native-unix-common/pom.xml @@ -19,7 +19,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-native-unix-common @@ -388,8 +388,8 @@ ${os.detected.name}-aarch_64 linux - aarch64-none-linux-gnu-gcc - aarch64-none-linux-gnu-ar + gcc + ar diff --git a/transport-native-unix-common/src/main/java/io/netty/channel/unix/FileDescriptor.java b/transport-native-unix-common/src/main/java/io/netty/channel/unix/FileDescriptor.java index a3f13ecdd73..7032ac829c2 100644 --- a/transport-native-unix-common/src/main/java/io/netty/channel/unix/FileDescriptor.java +++ b/transport-native-unix-common/src/main/java/io/netty/channel/unix/FileDescriptor.java @@ -26,6 +26,7 @@ import static io.netty.channel.unix.Limits.IOV_MAX; import static io.netty.util.internal.ObjectUtil.checkNotNull; import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero; +import io.netty.util.internal.PlatformDependent; import static java.lang.Math.min; /** @@ -37,12 +38,22 @@ public class FileDescriptor { private static final AtomicIntegerFieldUpdater stateUpdater = AtomicIntegerFieldUpdater.newUpdater(FileDescriptor.class, "state"); + { + String arch = PlatformDependent.normalizedArch(); + if ("x86_64".equals(arch)) { + O_DIRECT = 040000; + } else if ("aarch64".equals(arch)) { + // https://elixir.bootlin.com/linux/latest/source/arch/arm64/include/uapi/asm/fcntl.h#L25 + O_DIRECT = 0200000; + } + } + public static final int O_RDONLY = 00; public static final int O_WRONLY = 01; public static final int O_CREAT = 0100; public static final int O_TRUNC = 01000; public static final int O_APPEND = 02000; - public static final int O_DIRECT = 040000; + public static int O_DIRECT; private static final int STATE_CLOSED_MASK = 1; private static final int STATE_INPUT_SHUTDOWN_MASK = 1 << 1; diff --git a/transport-rxtx/pom.xml b/transport-rxtx/pom.xml index 9c6bf2b8409..dfdb0d9f821 100644 --- a/transport-rxtx/pom.xml +++ b/transport-rxtx/pom.xml @@ -21,7 +21,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-rxtx diff --git a/transport-sctp/pom.xml b/transport-sctp/pom.xml index 40e582ff97f..7e0590db7f7 100644 --- a/transport-sctp/pom.xml +++ b/transport-sctp/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-sctp diff --git a/transport-udt/pom.xml b/transport-udt/pom.xml index 878fe9d4f88..d8966237814 100644 --- a/transport-udt/pom.xml +++ b/transport-udt/pom.xml @@ -21,7 +21,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport-udt diff --git a/transport/pom.xml b/transport/pom.xml index cbde99d17b2..621c53d8497 100644 --- a/transport/pom.xml +++ b/transport/pom.xml @@ -20,7 +20,7 @@ io.netty netty-parent - 4.1.100.1.dse + 4.1.100.2.dse netty-transport