Skip to content

Commit e54e5cc

Browse files
Tor Didriksendahlerlend
authored andcommitted
Bug #32702860 BROKEN BUILD ON FEDORA 34 UNDEFINED REFERENCE TO SYMBOL 'CRC32_Z@@ZLIB_1.2.9'
Fedora 34 comes with gcc11 and uses -flto for release builds. This fails to build if linked wit plain ld. /usr/bin/ld: crc32.c.o (symbol from plugin): undefined reference to symbol 'crc32_z@@ZLIB_1.2.9' The bug is similar to Bug #29471723 BROKEN BUILD FEDORA 28, UNDEFINED REFERENCE TO SYMBOL '__BSS_START' This time, it is an interference between our bundled zlib, and system zlib. We depend indirectly on system zlib via libcrypto. Link with -Wl,--copy-dt-needed-entries Change-Id: Iab37cc945c834bc52ba435f378fe999ae246fefc
1 parent 3140b9e commit e54e5cc

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -970,7 +970,8 @@ ENDIF()
970970

971971
# Linker/binutils bug in Fedora 28, undefined reference to symbol '__bss_start'
972972
# Similar bug on 32bit Ubuntu.
973-
IF(LINUX_FEDORA_28 OR LINUX_UBUNTU_16_04)
973+
# Fedora 34: undefined reference to symbol 'crc32_z@@ZLIB_1.2.9'
974+
IF(LINUX_FEDORA_28 OR LINUX_FEDORA_34 OR LINUX_UBUNTU_16_04)
974975
IF(NOT CMAKE_CXX_LINK_FLAGS MATCHES "-fuse-ld=lld" AND
975976
NOT CMAKE_CXX_LINK_FLAGS MATCHES "-fuse-ld=gold")
976977
STRING_APPEND(CMAKE_CXX_LINK_FLAGS " -Wl,--copy-dt-needed-entries")

cmake/os/Linux.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ IF(EXISTS "/etc/fedora-release")
4646
FEDORA_RELEASE MATCHES "28")
4747
SET(LINUX_FEDORA_28 1)
4848
ENDIF()
49+
IF(FEDORA_RELEASE MATCHES "Fedora" AND
50+
FEDORA_RELEASE MATCHES "34")
51+
SET(LINUX_FEDORA_34 1)
52+
ENDIF()
4953
ENDIF()
5054

5155
IF(EXISTS "/etc/os-release")

0 commit comments

Comments
 (0)