Link failed.
`root@4a76e0836a28:/workdir# cat main.c #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/stat.h> #include <sys/types.h>
int main(int argc, char**argv) { char bug[128];
int fd = open(argv[1], O_CREAT);
int bla = 0;
read(fd, &bla, sizeof(bla));
void* d = malloc(bla);
read(fd, d, bla);
memcpy(bug, d, bla);
printf("bug: %s", bug);
}
root@4a76e0836a28:/workdir# polybuild --instrument-target -g -o main_target main.c
Bitcode file extracted to: main_target.bc.
Instrumenting: 89% |██████████████████ | 9/9 [00:00, inf functions/s]
root@4a76e0836a28:/workdir# get-bc -b
.main.c.o .main_instrumented.o.bc .main_target_instrumented.o.bc main.c main_target.bc main_target_instrumented.o
.main.c.o.bc .main_poly.bc.o.bc bla main_target main_target_instrumented.bc nbproject/
root@4a76e0836a28:/workdir# get-bc -b main
main.c main_target main_target.bc main_target_instrumented.bc main_target_instrumented.o
root@4a76e0836a28:/workdir# less main
main: No such file or directory
root@4a76e0836a28:/workdir# less main_target
"main_target" may be a binary file. See it anyway?
root@4a76e0836a28:/workdir# file main_target
main_target: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, with debug_info, not stripped
root@4a76e0836a28:/workdir# get-bc -b main_target
Bitcode file extracted to: main_target.bc.
root@4a76e0836a28:/workdir# polybuild --lower-bitcode -i main_target.bc -o main_poly --libs c
Instrumenting: 100% |████████████████████| 1402/1402 [00:00, inf functions/s]
/usr/bin/ld: internal error ../../ld/ldlang.c 7101
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR:Failed to compile using given arguments:
clang [-pie -L/cxx_libs/clean_build/lib -o main_poly main_poly.o -Wl,--allow-multiple-definition -Wl,--start-group -lc++abi /cxx_libs/poly_build/lib/libc++.a /cxx_libs/poly_build/lib/libc++abi.a /polytracker/build/share/polytracker/lib/libPolytracker.a -lm -ltinfo -lstdc++ -lLLVMWindowsManifest -lLLVMXRay -lLLVMLibDriver -lLLVMDlltoolDriver -lLLVMCoverage -lLLVMLineEditor -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMOrcJIT -lLLVMMCJIT -lLLVMJITLink -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoGSYM -lLLVMOption -lLLVMObjectYAML -lLLVMMCA -lLLVMMCDisassembler -lLLVMLTO -lLLVMPasses -lLLVMCFGuard -lLLVMCoroutines -lLLVMObjCARCOpts -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMInstrumentation -lLLVMFrontendOpenMP -lLLVMFrontendOpenACC -lLLVMExtensions -lLLVMDWARFLinker -lLLVMGlobalISel -lLLVMMIRParser -lLLVMAsmPrinter -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMSelectionDAG -lLLVMCodeGen -lLLVMIRReader -lLLVMAsmParser -lLLVMInterfaceStub -lLLVMFileCheck -lLLVMFuzzMutate -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTableGen -lLLVMSupport -lLLVMDemangle -lc /polytracker_clang/lib/clang/13.0.0/lib/linux/libclang_rt.dfsan-x86_64.a -lpthread -ldl -Wl,--end-group]
exit status: exit status 1
Traceback (most recent call last):
File "/polytracker/build/bin/polybuild_script", line 554, in
Hi, Thanks for your interest in PolyTracker! After running the command
root@4a76e0836a28:/workdir# polybuild --instrument-target -g -o main_target main.c
you get the fully instrumented binary as main_target. There shouldn't be a need to run
root@4a76e0836a28:/workdir# polybuild --lower-bitcode -i main_target.bc -o main_poly --libs c
If you would like to use --lower-bitcode you could have a look at how the build integration is done in the examples dir, e.g. the Dockerfile-file.demo.
At this point I'm not sure about what the root cause for the error you are seeing is. Feel free to provide any additional information that might help us troubleshoot (e.g. version of docker image used).