pg.ddx.io pgsql-bugs@postgresql.org mailing list archive
help / color / mirror / Atom feed From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: mat999@gmail.com
Subject: BUG #18839: ARMv7 builds fail due to missing __crc32cw and similar
Date: Wed, 12 Mar 2025 05:40:28 +0000
Message-ID: <18839-7615d0f8267dc015@postgresql.org> (raw )
The following bug has been logged on the website:
Bug reference: 18839
Logged by: Mathew
Email address: mat999@gmail.com
PostgreSQL version: 14.17
Operating system: Debian
Description:
Changes made to support hardware CRC seem to have broken ARMv7 builds for
us.
When building we are now getting:
```
pg_crc32c_armv8.c:(.text+0x40): undefined reference to `__crc32cw'
/usr/bin/ld: pg_crc32c_armv8.c:(.text+0x6c): undefined reference to
`__crc32cw'
/usr/bin/ld: pg_crc32c_armv8.c:(.text+0x7a): undefined reference to
`__crc32ch'
/usr/bin/ld: pg_crc32c_armv8.c:(.text+0x92): undefined reference to
`__crc32cd'
/usr/bin/ld: pg_crc32c_armv8.c:(.text+0x8a): undefined reference to
`__crc32cb'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:66: postgres] Error 1
make[1]: *** [Makefile:42: all-backend-recurse] Error 2
make: *** [GNUmakefile:11: all-src-recurse] Error 2", "stderr_lines":
["pg_crc32c_armv8.c: In function ‘pg_comp_crc32c_armv8’:",
"pg_crc32c_armv8.c:35:23: warning: implicit declaration of function
‘__crc32cb’ [-Wimplicit-function-declaration]", " 35 | crc
= __crc32cb(crc, *p);", " | ^~~~~~~~~",
"pg_crc32c_armv8.c:41:23: warning: implicit declaration of function
‘__crc32ch’ [-Wimplicit-function-declaration]", " 41 | crc
= __crc32ch(crc, *(uint16 *) p);", " |
^~~~~~~~~", "pg_crc32c_armv8.c:47:23: warning: implicit declaration of
function ‘__crc32cw’ [-Wimplicit-function-declaration]", " 47 |
crc = __crc32cw(crc, *(uint32 *) p);", " |
^~~~~~~~~", "pg_crc32c_armv8.c:54:23: warning: implicit declaration of
function ‘__crc32cd’ [-Wimplicit-function-declaration]", " 54 |
crc = __crc32cd(crc, *(uint64 *) p);", " |
^~~~~~~~~", "pg_crc32c_armv8.c: In function ‘pg_comp_crc32c_armv8’:",
"pg_crc32c_armv8.c:35:23: warning: implicit declaration of function
‘__crc32cb’ [-Wimplicit-function-declaration]", " 35 | crc
= __crc32cb(crc, *p);", " | ^~~~~~~~~",
"pg_crc32c_armv8.c:41:23: warning: implicit declaration of function
‘__crc32ch’ [-Wimplicit-function-declaration]", " 41 | crc
= __crc32ch(crc, *(uint16 *) p);", " |
^~~~~~~~~", "pg_crc32c_armv8.c:47:23: warning: implicit declaration of
function ‘__crc32cw’ [-Wimplicit-function-declaration]", " 47 |
crc = __crc32cw(crc, *(uint32 *) p);", " |
^~~~~~~~~", "pg_crc32c_armv8.c:54:23: warning: implicit declaration of
function ‘__crc32cd’ [-Wimplicit-function-declaration]", " 54 |
crc = __crc32cd(crc, *(uint64 *) p);", " |
^~~~~~~~~", "pg_crc32c_armv8.c: In function ‘pg_comp_crc32c_armv8’:",
"pg_crc32c_armv8.c:35:23: warning: implicit declaration of function
‘__crc32cb’ [-Wimplicit-function-declaration]", " 35 | crc
= __crc32cb(crc, *p);", " | ^~~~~~~~~",
"pg_crc32c_armv8.c:41:23: warning: implicit declaration of function
‘__crc32ch’ [-Wimplicit-function-declaration]", " 41 | crc
= __crc32ch(crc, *(uint16 *) p);", " |
^~~~~~~~~", "pg_crc32c_armv8.c:47:23: warning: implicit declaration of
function ‘__crc32cw’ [-Wimplicit-function-declaration]", " 47 |
crc = __crc32cw(crc, *(uint32 *) p);", " |
^~~~~~~~~", "pg_crc32c_armv8.c:54:23: warning: implicit declaration of
function ‘__crc32cd’ [-Wimplicit-function-declaration]", " 54 |
crc = __crc32cd(crc, *(uint64 *) p);", " |
^~~~~~~~~", "/usr/bin/ld:
../../src/port/libpgport_srv.a(pg_crc32c_armv8_srv.o): in function
`pg_comp_crc32c_armv8':", "pg_crc32c_armv8.c:(.text+0x16): undefined
reference to `__crc32cb'", "/usr/bin/ld: pg_crc32c_armv8.c:(.text+0x2a):
undefined reference to `__crc32ch'", "/usr/bin/ld:
pg_crc32c_armv8.c:(.text+0x40): undefined reference to `__crc32cw'",
"/usr/bin/ld: pg_crc32c_armv8.c:(.text+0x6c): undefined reference to
`__crc32cw'", "/usr/bin/ld: pg_crc32c_armv8.c:(.text+0x7a): undefined
reference to `__crc32ch'", "/usr/bin/ld: pg_crc32c_armv8.c:(.text+0x92):
undefined reference to `__crc32cd'", "/usr/bin/ld:
pg_crc32c_armv8.c:(.text+0x8a): undefined reference to `__crc32cb'",
"collect2: error: ld returned 1 exit status"
```
It seems like the configure test is passing when it shouldnt. This CPU does
not support hardware CRC32.
view thread (11+ messages) latest in thread
Message-ID: <18839-7615d0f8267dc015@postgresql.org>
Permalink: ../18839-7615d0f8267dc015@postgresql.org/
Also on: postgresql.org/message-id/18839-7615d0f8267dc015@postgresql.org
copy link · copy postgr.es
reply Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-bugs@postgresql.org
Cc: noreply@postgresql.org, pgsql-bugs@lists.postgresql.org, mat999@gmail.com
Subject: Re: BUG #18839: ARMv7 builds fail due to missing __crc32cw and similar
In-Reply-To: <18839-7615d0f8267dc015@postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox