diff options
author | Simon McVittie <smcv@debian.org> | 2020-09-07 14:01:58 +0100 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2020-09-07 15:21:17 +0000 |
commit | a652edce0afc80916a87ebccca319d517989a128 (patch) | |
tree | 72900e62fe7a1c79db6cebcaf4725fb3cee91039 /src | |
parent | b8c58c74d835ee2918f9e391abd65f9e0132bdb4 (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.c | 2 | ||||
-rw-r--r-- | src/tests/test-properties.c | 2 | ||||
-rw-r--r-- | src/tests/test-stream.c | 2 |
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 |