c3c
c3c copied to clipboard
Linux (Ubuntu) unable to use `c3c run --sanitize=memory`
By default it seems to be using GCC (?)
c3c run --sanitize=memory --reloc=PIE
cc: error: unrecognized argument to ‘-fsanitize=’ option: ‘memory’
Failed to link executable 'build/testing_07' using command 'cc -o build/testing_07 -rdynamic -pthread build/obj/linux-x64/std_collections_list.std.os.backtrace.Backtrace.o build/obj/linux-x64/thread_mgr.testing_v0_7.Arg2.float.o build/obj/linux-x64/thread_mgr.testing_v0_7.Arg.ulong.o build/obj/linux-x64/std_collections_maybe.float.o build/obj/linux-x64/std_collections_maybe.ulong.o build/obj/linux-x64/std.math.o build/obj/linux-x64/std.io.os.o build/obj/linux-x64/std.io.file.o build/obj/linux-x64/std.io.o build/obj/linux-x64/libc.o build/obj/linux-x64/std.atomic.o build/obj/linux-x64/std.ascii.o build/obj/linux-x64/std.core.string.conv.o build/obj/linux-x64/std.core.dstring.o build/obj/linux-x64/std.core.types.o build/obj/linux-x64/std.core.string.o build/obj/linux-x64/std.core.mem.o build/obj/linux-x64/std.core.mem.allocator.o build/obj/linux-x64/std.core.builtin.o build/obj/linux-x64/std.os.process.o build/obj/linux-x64/std.os.backtrace.o build/obj/linux-x64/std.os.linux.o build/obj/linux-x64/std.thread.os.o build/obj/linux-x64/std.os.posix.o build/obj/linux-x64/std.time.o build/obj/linux-x64/std.time.clock.o build/obj/linux-x64/std.time.os.o build/obj/linux-x64/testing_v0_7.o build/obj/linux-x64/fft.o -ldl -lm -fsanitize=memory'.
Forcing c3c to use LLD (ld.lld)
c3c run --sanitize=memory --linker=custom /usr/bin/ld.lld --reloc=PIE
ld.lld: error: unknown argument '-fsanitize=memory'
Failed to link executable 'build/testing_07' using command '/usr/bin/ld.lld -o build/testing_07 -export-dynamic -pie --eh-frame-hdr --gc-sections /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/x86_64-linux-gnu/crtn.o -L/usr/lib/x86_64-linux-gnu/ --dynamic-linker=/lib64/ld-linux-x86-64.so.2 -L/usr/lib/ -L/lib/ -m elf_x86_64 build/obj/linux-x64/std_collections_list.std.os.backtrace.Backtrace.o build/obj/linux-x64/thread_mgr.testing_v0_7.Arg2.float.o build/obj/linux-x64/thread_mgr.testing_v0_7.Arg.ulong.o build/obj/linux-x64/std_collections_maybe.float.o build/obj/linux-x64/std_collections_maybe.ulong.o build/obj/linux-x64/std.math.o build/obj/linux-x64/std.io.os.o build/obj/linux-x64/std.io.file.o build/obj/linux-x64/std.io.o build/obj/linux-x64/libc.o build/obj/linux-x64/std.atomic.o build/obj/linux-x64/std.ascii.o build/obj/linux-x64/std.core.string.conv.o build/obj/linux-x64/std.core.dstring.o build/obj/linux-x64/std.core.types.o build/obj/linux-x64/std.core.string.o build/obj/linux-x64/std.core.mem.o build/obj/linux-x64/std.core.mem.allocator.o build/obj/linux-x64/std.core.builtin.o build/obj/linux-x64/std.os.process.o build/obj/linux-x64/std.os.backtrace.o build/obj/linux-x64/std.os.linux.o build/obj/linux-x64/std.thread.os.o build/obj/linux-x64/std.os.posix.o build/obj/linux-x64/std.time.o build/obj/linux-x64/std.time.clock.o build/obj/linux-x64/std.time.os.o build/obj/linux-x64/testing_v0_7.o build/obj/linux-x64/fft.o -ldl -lm -lpthread -lc -fsanitize=memory'
This is not c3 issue - https://github.com/golang/go/issues/25175 . It is easily circumvented by C3C_CC=/usr/bin/clang c3c run --sanitize=memory --reloc=PIE
https://github.com/c3lang/c3c/issues/2141
can confirm the above fix works on ubuntu
@mr6r4y do you get a crash for it now too?