summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2020-09-07 14:01:58 +0100
committerWim Taymans <wim.taymans@gmail.com>2020-09-07 15:21:17 +0000
commita652edce0afc80916a87ebccca319d517989a128 (patch)
tree72900e62fe7a1c79db6cebcaf4725fb3cee91039 /src
parentb8c58c74d835ee2918f9e391abd65f9e0132bdb4 (diff)
Only assert about x86_64 struct sizes if ABI is LP64, not x32
The __x86_64__ macro identifies a CPU family, and is unfortunately not enough to identify a concrete ABI. The normal x86_64 ABI that is used by practical Linux distributions is LP64 (i.e. 32-bit int, and 64-bit long and pointer), and defines __x86_64__ and __LP64__. x32 is a niche ILP32 ABI (i.e. 32-bit int, long and pointer) for x86_64 CPUs, which has different struct sizes due to sizeof(long) and sizeof(void *) being smaller. It defines __x86_64__ and __ILP32__. Signed-off-by: Simon McVittie <smcv@debian.org>
Diffstat (limited to 'src')
-rw-r--r--src/tests/test-array.c2
-rw-r--r--src/tests/test-properties.c2
-rw-r--r--src/tests/test-stream.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/tests/test-array.c b/src/tests/test-array.c
index f65de6d3..16702aac 100644
--- a/src/tests/test-array.c
+++ b/src/tests/test-array.c
@@ -27,7 +27,7 @@
static void test_abi(void)
{
/* array */
-#if defined(__x86_64__)
+#if defined(__x86_64__) && defined(__LP64__)
spa_assert(sizeof(struct pw_array) == 32);
#else
fprintf(stderr, "%zd\n", sizeof(struct pw_array));
diff --git a/src/tests/test-properties.c b/src/tests/test-properties.c
index 9b246cb6..3b257498 100644
--- a/src/tests/test-properties.c
+++ b/src/tests/test-properties.c
@@ -26,7 +26,7 @@
static void test_abi(void)
{
-#if defined(__x86_64__)
+#if defined(__x86_64__) && defined(__LP64__)
spa_assert(sizeof(struct pw_properties) == 24);
#else
fprintf(stderr, "%zd\n", sizeof(struct pw_properties));
diff --git a/src/tests/test-stream.c b/src/tests/test-stream.c
index f9edfd3b..86497bcb 100644
--- a/src/tests/test-stream.c
+++ b/src/tests/test-stream.c
@@ -59,7 +59,7 @@ static void test_abi(void)
TEST_FUNC(ev, test, process);
TEST_FUNC(ev, test, drained);
-#if defined(__x86_64__)
+#if defined(__x86_64__) && defined(__LP64__)
spa_assert(sizeof(struct pw_buffer) == 24);
spa_assert(sizeof(struct pw_time) == 40);
#else