-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linker errors on using C compilers apart from zig cc
#10
Comments
Would it be possible to remove the dependency on compiler_rt? |
@Shinyzenith to my knowledge "compiler_rt" is necessary for Zig, executables just happen to automatically build it in while it doesn't when you build a library. You should be able to add '-fcompiler_rt' to zig build in order to resolve those symbols |
Ok, I tried |
Edited the build.zig to add |
See
What is your minimal c program and what is your target system? |
Hi!
First of all, this is a really cool project and I'd love to contribute!
(Commit hash of ziglibc: d6b6959)
I was wondering if it'd be possible to make ziglibc work in contexts outside of zig such as with clang or any system
$CC
?Currently on attempting to link with
clang
I get the following linker errors:clang -nostdlib -I ../../inc/libc -I ../../inc/posix/ -I ../../inc/linux/ -L. -static -lstart -lcguana main.c
/usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `target.Target.Cpu.Feature.feature_set_fns(target.x86.Feature).featureSet': /usr/lib/zig/std/target.zig:774: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/target.zig:778: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `target.Target.Cpu.Feature.Set.empty_workaround': /usr/lib/zig/std/target.zig:698: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.panicExtra__anon_1050': /usr/lib/zig/std/debug.zig:294: undefined reference to `__zig_probe_stack' /usr/bin/ld: /usr/lib/zig/std/debug.zig:299: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.resetSegfaultHandler': /usr/lib/zig/std/debug.zig:1888: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `os.linux.tls.initTLS': /usr/lib/zig/std/os/linux/tls.zig:200: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/os/linux/tls.zig:201: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/os/linux/tls.zig:202: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.attachSegfaultHandler': /usr/lib/zig/std/debug.zig:1869: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.getSelfDebugInfo': /usr/lib/zig/std/debug.zig:107: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:107: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.openSelfDebugInfo': /usr/lib/zig/std/debug.zig:815: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:815: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.DebugInfo.lookupModuleDl': /usr/lib/zig/std/debug.zig:1381: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/debug.zig:1381: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/debug.zig:1438: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `dwarf.DwarfInfo.parseAbbrevTable': /usr/lib/zig/std/dwarf.zig:1015: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1024: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1025: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1025: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/dwarf.zig:1028: more undefined references to `memcpy' follow /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `dwarf.DwarfInfo.scanAllFunctions': /usr/lib/zig/std/dwarf.zig:727: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:735: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:736: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:761: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:784: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:795: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:806: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `array_list.ArrayListAlignedUnmanaged(dwarf.Func,null).append': /usr/lib/zig/std/array_list.zig:562: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `dwarf.DwarfInfo.parseDie__anon_5615': /usr/lib/zig/std/dwarf.zig:1056: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/dwarf.zig:1057: more undefined references to `memcpy' follow /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `dwarf.DwarfInfo.scanAllCompileUnits': /usr/lib/zig/std/dwarf.zig:868: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:876: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:877: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:902: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `array_list.ArrayListAlignedUnmanaged(dwarf.CompileUnit,null).append': /usr/lib/zig/std/array_list.zig:562: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.readElfDebugInfo': /usr/lib/zig/std/debug.zig:911: undefined reference to `__zig_probe_stack' /usr/bin/ld: /usr/lib/zig/std/debug.zig:913: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:915: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:916: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:921: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:929: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/debug.zig:955: more undefined references to `memcpy' follow /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `os.dl_iterate_phdr__anon_4931': /usr/lib/zig/std/os.zig:5387: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/os.zig:5388: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `fs.Dir.openFile': /usr/lib/zig/std/fs.zig:1093: undefined reference to `__zig_probe_stack' /usr/bin/ld: /usr/lib/zig/std/fs.zig:1101: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.printLineFromFileAnyOs__anon_5636': /usr/lib/zig/std/debug.zig:1131: undefined reference to `__zig_probe_stack' /usr/bin/ld: /usr/lib/zig/std/debug.zig:1138: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.printLineInfo__anon_5626': /usr/lib/zig/std/debug.zig:756: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.ModuleDebugInfo__struct_4249.getSymbolAtAddress': /usr/lib/zig/std/debug.zig:1777: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.getSymbolFromDwarf': /usr/lib/zig/std/debug.zig:1803: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:1805: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:1803: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/debug.zig:1812: more undefined references to `memcpy' follow /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `dwarf.DwarfInfo.getLineNumberInfo': /usr/lib/zig/std/dwarf.zig:1090: undefined reference to `__zig_probe_stack' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1095: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1096: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1096: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1100: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1101: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1103: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1107: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1108: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1113: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/dwarf.zig:1114: more undefined references to `memcpy' follow /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `dwarf.DwarfInfo.getLineNumberInfo': /usr/lib/zig/std/dwarf.zig:1181: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1154: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1157: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1159: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1163: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1165: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/dwarf.zig:1166: more undefined references to `memcpy' follow /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `dwarf.DwarfInfo.getLineNumberInfo': /usr/lib/zig/std/dwarf.zig:1219: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1220: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1221: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1224: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1225: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:1229: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/dwarf.zig:1230: more undefined references to `memcpy' follow /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.free__anon_5660': /usr/lib/zig/std/mem/Allocator.zig:494: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `array_list.ArrayListAligned(dwarf.FileEntry,null).append': /usr/lib/zig/std/array_list.zig:168: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `array_list.ArrayListAligned(dwarf.FileEntry,null).appendAssumeCapacity': /usr/lib/zig/std/array_list.zig:176: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `dwarf.LineNumberProgram.init': /usr/lib/zig/std/dwarf.zig:438: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:438: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:438: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:438: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/dwarf.zig:438: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/dwarf.zig:438: more undefined references to `memset' follow /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.SymbolInfo.deinit': /usr/lib/zig/std/debug.zig:66: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `Thread.Futex.LinuxImpl.wait': /usr/lib/zig/std/Thread/Futex.zig:246: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.handleSegfaultPosix': /usr/lib/zig/std/debug.zig:1933: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/debug.zig:1940: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `fmt.formatInt__anon_6086': /usr/lib/zig/std/fmt.zig:1428: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `fmt.formatInt__anon_6198': /usr/lib/zig/std/fmt.zig:1428: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `os.linux.sigaction': /usr/lib/zig/std/os/linux.zig:1149: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/os/linux.zig:1150: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/os/linux.zig:1157: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.panicExtra__anon_6214': /usr/lib/zig/std/debug.zig:294: undefined reference to `__zig_probe_stack' /usr/bin/ld: /usr/lib/zig/std/debug.zig:299: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.allocAdvancedWithRetAddr__anon_6376': /usr/lib/zig/std/mem/Allocator.zig:308: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `os.toPosixPath': /usr/lib/zig/std/os.zig:5494: undefined reference to `__zig_probe_stack' /usr/bin/ld: /usr/lib/zig/std/os.zig:5496: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/os.zig:5498: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/os.zig:5501: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/os.zig:5501: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `fs.file.File.stat': /usr/lib/zig/std/fs/file.zig:344: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `array_list.ArrayListAligned(dwarf.AbbrevAttr,null).allocatedSlice': /usr/lib/zig/std/array_list.zig:436: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.free__anon_6438': /usr/lib/zig/std/mem/Allocator.zig:494: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `array_list.ArrayListAligned(dwarf.AbbrevTableEntry,null).allocatedSlice': /usr/lib/zig/std/array_list.zig:436: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.free__anon_6439': /usr/lib/zig/std/mem/Allocator.zig:494: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.allocAdvancedWithRetAddr__anon_6468': /usr/lib/zig/std/mem/Allocator.zig:308: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.allocAdvancedWithRetAddr__anon_6481': /usr/lib/zig/std/mem/Allocator.zig:308: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `array_list.ArrayListAligned(u8,null).allocatedSlice': /usr/lib/zig/std/array_list.zig:436: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `debug.panicExtra__anon_6644': /usr/lib/zig/std/debug.zig:294: undefined reference to `__zig_probe_stack' /usr/bin/ld: /usr/lib/zig/std/debug.zig:299: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `os.fstat': /usr/lib/zig/std/os.zig:4142: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/os.zig:4137: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/os.zig:4137: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/os.zig:4140: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/os.zig:4141: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `io.reader.Reader(*io.fixed_buffer_stream.FixedBufferStream([]const u8),error{},(function 'read')).readVarInt__anon_7010': /usr/lib/zig/std/io/reader.zig:300: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `fmt.formatInt__anon_7060': /usr/lib/zig/std/fmt.zig:1428: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.alignedShrinkWithRetAddr__anon_7071': /usr/lib/zig/std/mem/Allocator.zig:480: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.free__anon_7077': /usr/lib/zig/std/mem/Allocator.zig:494: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `hash.wyhash.WyhashStateless.hash': /usr/lib/zig/std/hash/wyhash.zig:120: undefined reference to `__zig_probe_stack' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.zeroes__anon_7210': /usr/lib/zig/std/mem.zig:274: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `array_list.ArrayListAligned(dwarf.FileEntry,null).allocatedSlice': /usr/lib/zig/std/array_list.zig:436: undefined reference to `memcpy' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.reallocAdvancedWithRetAddr__anon_7526': /usr/lib/zig/std/mem/Allocator.zig:407: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:417: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:419: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `hash_map.HashMapUnmanaged(usize,*debug.ModuleDebugInfo__struct_4249,hash_map.AutoContext(usize),80).deinit': /usr/lib/zig/std/hash_map.zig:890: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `hash_map.HashMapUnmanaged(usize,*debug.ModuleDebugInfo__struct_4249,hash_map.AutoContext(usize),80).initMetadatas': /usr/lib/zig/std/hash_map.zig:1444: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.reallocAdvancedWithRetAddr__anon_7551': /usr/lib/zig/std/mem/Allocator.zig:407: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:417: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:419: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `fmt.formatInt__anon_7558': /usr/lib/zig/std/fmt.zig:1428: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `fmt.formatInt__anon_7575': /usr/lib/zig/std/fmt.zig:1428: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.reallocAdvancedWithRetAddr__anon_7672': /usr/lib/zig/std/mem/Allocator.zig:407: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:417: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:419: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.reallocAdvancedWithRetAddr__anon_7673': /usr/lib/zig/std/mem/Allocator.zig:407: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:417: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:419: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.reallocAdvancedWithRetAddr__anon_7674': /usr/lib/zig/std/mem/Allocator.zig:407: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:417: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:419: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.free__anon_7676': /usr/lib/zig/std/mem/Allocator.zig:494: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.reallocAdvancedWithRetAddr__anon_7687': /usr/lib/zig/std/mem/Allocator.zig:407: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:417: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:419: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.reallocAdvancedWithRetAddr__anon_7688': /usr/lib/zig/std/mem/Allocator.zig:407: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:417: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:419: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.reallocAdvancedWithRetAddr__anon_7710': /usr/lib/zig/std/mem/Allocator.zig:407: undefined reference to `memset' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:417: undefined reference to `memcpy' /usr/bin/ld: /usr/lib/zig/std/mem/Allocator.zig:419: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.free__anon_7712': /usr/lib/zig/std/mem/Allocator.zig:494: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.free__anon_7725': /usr/lib/zig/std/mem/Allocator.zig:494: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.allocAdvancedWithRetAddr__anon_7754': /usr/lib/zig/std/mem/Allocator.zig:308: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o): in function `mem.Allocator.free__anon_7761': /usr/lib/zig/std/mem/Allocator.zig:494: undefined reference to `memset' /usr/bin/ld: ./libstart.a(/home/aakash/compilers/ziglibc/zig-cache/o/a79729c21a815cb7337aa0e37699b441/libstart.a.o):/usr/lib/zig/std/mem/Allocator.zig:494: more undefined references to `memset' follow /usr/bin/ld: /tmp/main-e17d34.o: in function `main': main.c:(.text+0xe): undefined reference to `printf' clang: error: linker command failed with exit code 1 (use -v to see invocation)
On closer inspection of the linker calls in zig cc I noticed the following:
Naturally I assumed the above errors with clang introduced due to not linking with compiler_rt and attempted to compile a simple hello world
main.c
intomain.o
and then used a zig compiled libcompiler_rt.o file and it indeed reduced my errors with clang significantly to the following:EDIT:
After some experimentation, linking with
libcompiler_rt.a
using-fuse-ld=lld
/-fuse-ld=mold
while using the above command fixes the issues but I'm still intrigued as to why that's the case.The text was updated successfully, but these errors were encountered: