Hello @JoeWangAMD, this issue should be reported to the linux port maintainers (Feral Interactive) if it hasn't been already.
Hello @kisak-valve , thanks for your reply. I do have different opinion for this issue. APP should not use a libc private API. In this case, consider using public API dlopen( ) directly.
APP should not use a libc private API
I don't think anyone disagrees with that, but the only people who can prevent Dawn of War 3 from using a libc private API are the maintainers of the Linux port of Dawn of War 3, and that's Feral Interactive, not Valve.
Nothing extracted yet.
Your system information
Please describe your issue in as much detail as possible:
Problem:
When run DawnofWar3 with libc version 2.34, it just quit and report "_libc_dlopen_mode" symbol is not available
RootCause:
DawnofWar3 uses a private API __libc_dlopen_mode which is not supported by the libc 2.34 version.
Analysis:
DawnOfWar3 is using API __libc_dlopen_mode
readelf -all ./DawnOfWar3 | grep -i "dlopen"
000006061b70 00b900000007 R_X86_64_JUMP_SLO 0000000000000000 __libc_dlopen_mode@GLIBC_PRIVATE + 0
With 2.31 libc version (used on 5.11 kernel Ubuntu 20.4.3), Private API __libc_dlopen_mode is supported by libc
readelf -all /lib/x86_64-linux-gnu/libc.so.6 | grep dlopen
2269: 0000000000162930 195 FUNC GLOBAL DEFAULT 16 __libc_dlopen_mode@@GLIBC_PRIVATE
With 2.34 libc version (used on 5.13 kernel Ubuntu 20.4.4), Private API __libc_dlopen_mode is NOT supported by libc
readelf -all ./libc.so.6 | grep dlopen
1885: 0000000000094570 154 FUNC GLOBAL DEFAULT 16 dlopen@@GLIBC_2.34
Suggestion:
DawnofWar3 should not use private API __libc_dlopen_mode( )
Steps for reproducing this issue:
Set up ubuntu 20.04.4 system
Ubuntu 20.04.4 Instructions (Using Impish Repos):
Install Ubuntu 20.04.3 from ISO
Update system via:
sudo apt update && sudo apt dist-upgrade
Reboot system via:
sudo reboot
Add Impish repositories:
sudo bash -c "echo 'deb http://archive.ubuntu.com/ubuntu impish main restricted universe multiverse' > /etc/apt/sources.list.d/hirsute.list" && sudo apt update
Update repos via:
sudo apt update
Install 5.13 kernel via:
sudo apt install linux-generic-hwe-20.04-edge linux-headers-generic-hwe-20.04-edge linux-image-generic-hwe-20.04-edge linux-tools-generic-hwe-20.04-edge systemd
Reboot system via:
sudo reboot
install AMDVLK driver from https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-2021.Q4.1
run DawnOfWar3