muon icon indicating copy to clipboard operation
muon copied to clipboard

Muon with clang fails to link with ubsan if b_sanitize is set to either undefined or address,undefined on shared libraries

Open SRAZKVT opened this issue 3 months ago • 0 comments

I hit this issue when trying to make a project have a library instead of just going straight to an executable, it works otherwise. After that, i tested with meson, and it works there too.

Here is a small project that reproduces the issue:

add.c:

int add(int a, int b) {
	return a + b;
}

main.c:

int add(int a, int b);

int main(void) {
	add(1, 2);
	return 0;
}

meson.build:

project(
	'bug_muon',
	'c',
	version : '0.1',
	default_options : ['warning_level=3']
)

lib_add = shared_library(
	'add',
	'add.c',
)

exe = executable(
	'main',
	'main.c',
	link_with : lib_add,
)

test('test', exe)

the commands i run are then

CC=clang muon setup -Db_sanitize=undefined -Db_lundef=false build

and

muon -C build test

this only happens with clang as far as i can see, not with GCC, and happens regardless of whether -Db_lundef is present or not

SRAZKVT avatar Sep 18 '25 07:09 SRAZKVT