diff --git a/.github/actions/test/action.yml b/.github/actions/test/action.yml
index 371f0baeb3f..b9f6a9c029c 100644
--- a/.github/actions/test/action.yml
+++ b/.github/actions/test/action.yml
@@ -17,7 +17,15 @@ runs:
working-directory: ${{ inputs.working_directory }}
run: python3 allTests.py --debug --all --continue --workers=4 --export-xml=test-report.xml ${{ inputs.flags }}
shell: bash
- if: runner.os == 'macOS' || runner.os == 'Linux'
+ if: runner.os == 'macOS'
+
+ - name: Test
+ working-directory: ${{ inputs.working_directory }}
+ run: |
+ ulimit -c unlimited
+ python3 allTests.py --debug --all --continue --workers=4 --export-xml=test-report.xml ${{ inputs.flags }}
+ shell: bash
+ if: runner.os == 'Linux'
- name: Test
working-directory: ${{ inputs.working_directory }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9e0cd7db24f..37edfb050f5 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -128,6 +128,14 @@ jobs:
if-no-files-found: ignore
if: always()
+ - name: Upload Linux core dumps
+ uses: actions/upload-artifact@v4
+ with:
+ name: core-dumps-${{ matrix.config }}-${{ matrix.os }}
+ path: /var/lib/apport/coredump/*
+ if-no-files-found: ignore
+ if: runner.os == 'Linux' && always()
+
- name: Upload macOS crash diagnostics
uses: actions/upload-artifact@v4
with:
diff --git a/.vscode/cspell.json b/.vscode/cspell.json
index 6a522128ce2..9d96f79179f 100644
--- a/.vscode/cspell.json
+++ b/.vscode/cspell.json
@@ -34,6 +34,9 @@
"upcalls",
"zeroc"
],
+ "flagWords": [
+ "wether"
+ ],
"dictionaries": [
"csharp",
"softwareTerms",
diff --git a/config/Make.rules.Linux b/config/Make.rules.Linux
index feaef93f754..ffc383670d8 100644
--- a/config/Make.rules.Linux
+++ b/config/Make.rules.Linux
@@ -35,19 +35,28 @@ else ifneq ($(and $(filter centos rhel fedora,$(linux_id)),$(filter x86_64 i%86,
supported-platforms = x64 x86
multilib-platform = yes
+# We filter out -m32, -m64, because Slice compilers are always build as 64bit executables, and we set
+# the correct value for each arch build below. We also filter out -march setting to ensure our x86 builds
+# target x86-64 capable processor.
+
ifeq ($(OPTIMIZE),yes)
# Use default system packaging flags if building with OPTIMIZE and CXXFLAGS/LDFLAGS aren't defined.
-# NOTE: We remove the -m32/-m64 flags since we'll add them below.
-opt-cppflags = $(if $(CXXFLAGS),,$(filter-out -m32 -m64,$(shell setarch $1 rpm --eval %optflags)))
+opt-cppflags = $(if $(CXXFLAGS),,$(filter-out -m32 -m64 -march=%,$(shell setarch $1 rpm --eval %optflags)))
opt-ldflags = $(if $(LDFLAGS),,$(shell setarch $1 rpm --eval %?__global_ldflags))
endif
-x64_cppflags := $(call opt-cppflags,x86_64) -m64
+CXXFLAGS := $(filter-out -m32 -m64 -march=%, $(CXXFLAGS))
+LDFLAGS := $(filter-out -m32 -m64, $(LDFLAGS))
+
+# Targeting x86-64-v2, compatible with most x86-64 processors. This matches the defaults in RHEL 9 x86-64 builds.
+# https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level
+
+x64_cppflags := $(call opt-cppflags,x86_64) -m64 -march=x86-64-v2
x64_ldflags := $(call opt-ldflags,x86_64) -m64
x64_targetdir = $(if $(filter %/build,$5),/x64,$(if $(filter-out $($1_target),program),64))
x64_installdir = $(if $(and $(filter-out $($1_target),program),$(if $5,$(filter-out %64,$5),true)),64)
-x86_cppflags := $(call opt-cppflags,i386) -m32
+x86_cppflags := $(call opt-cppflags,i386) -m32 -march=x86-64-v2
x86_ldflags := $(call opt-ldflags,i386) -m32
x86_targetdir = $(if $(filter %/build,$5),/x86)
x86_targetname = $(if $(is-bin-program),32)
diff --git a/config/PropertyNames.xml b/config/PropertyNames.xml
index a0dd7e84b73..7836f952aad 100644
--- a/config/PropertyNames.xml
+++ b/config/PropertyNames.xml
@@ -409,6 +409,11 @@
+
+
+
+
+
diff --git a/cpp/include/DataStorm/DataStorm.h b/cpp/include/DataStorm/DataStorm.h
index 1580eee74aa..19c5ae5fb82 100644
--- a/cpp/include/DataStorm/DataStorm.h
+++ b/cpp/include/DataStorm/DataStorm.h
@@ -272,7 +272,7 @@ namespace DataStorm
void waitForUnread(unsigned int count = 1) const;
/**
- * Returns wether or not unread samples are available.
+ * Returns whether or not unread samples are available.
*
* @return True if there unread samples are queued, false otherwise.
*/
diff --git a/cpp/include/Ice/Connection.h b/cpp/include/Ice/Connection.h
index fdf38d71070..3f6940386e8 100644
--- a/cpp/include/Ice/Connection.h
+++ b/cpp/include/Ice/Connection.h
@@ -17,14 +17,6 @@
#include