Skip to content

librdmacm/preload.c: fix duplicate symbol definitions on armhf#1746

Open
hector-cao wants to merge 1 commit into
linux-rdma:masterfrom
hector-cao:fix-preload-build-error
Open

librdmacm/preload.c: fix duplicate symbol definitions on armhf#1746
hector-cao wants to merge 1 commit into
linux-rdma:masterfrom
hector-cao:fix-preload-build-error

Conversation

@hector-cao
Copy link
Copy Markdown

85f9747 introduces the preload of fcntl64 and it fails to build on armhf:

Assembler messages:
Error: symbol __fcntl_time64' is already defined Error: symbol sendfile64' is already defined

On armhf, glibc defines both fcntl64 and fcntl as alias to __fcntl_time64. As a consequence, in preload.c, 2 function definitions of fcntl64 and fcntl are preprocessed to become the same function __fcntl_time64 definition, that cause the double symbol error.

Only define and intercept these functions if they are not already defined.

This fixes the issue both for sendfile64 and fcntl64.

85f9747 introduces the preload of fcntl64 and it fails to build on armhf:

Assembler messages:
 Error: symbol `__fcntl_time64' is already defined
 Error: symbol `sendfile64' is already defined

On armhf, glibc defines both fcntl64 and fcntl as alias to __fcntl_time64.
As a consequence, in preload.c, 2 function definitions of fcntl64 and fcntl
are preprocessed to become the same function __fcntl_time64 definition,
that cause the double symbol error.

Only define and intercept these functions if they are not already defined.

This fixes the issue both for sendfile64 and fcntl64.

Signed-off-by: Hector Cao <hector.cao@canonical.com>
@hector-cao hector-cao force-pushed the fix-preload-build-error branch from 2a4394f to 2e02f00 Compare May 29, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant