Closed wanglan0804 closed 4 months ago
The function Create_Target_Machine_With_ABI is defined under llvm/adainclude/llvm-target_machine.adb. I suspect you have some misconfiguration somewhere, unfortunately I have never seen this error.
Thanks a lot! I re-clone the code, then another error is appeared just below:
/opt/GNAT/2021/bin/../libexec/gcc/x86_64-pc-linux-gnu/10.3.1/ld: /home/wanglan/gnat-llvm/llvm-interface/obj/llvm-target_machine.o: in function llvm__target_machine__create_target_machine_with_abi': /home/wanglan/gnat-llvm/llvm/adainclude/llvm-target_machine.adb:219: undefined reference to
LLVMCreateTargetMachineWithABI'
collect2: error: ld returned 1 exit status
/opt/GNAT/2021/bin/../libexec/gcc/x86_64-pc-linux-gnu/10.3.1/ld: /home/wanglan/gnat-llvm/llvm-interface/obj/llvm-target_machine.o: in function llvm__target_machine__create_target_machine_with_abi': /home/wanglan/gnat-llvm/llvm/adainclude/llvm-target_machine.adb:219: undefined reference to
LLVMCreateTargetMachineWithABI'
collect2: error: ld returned 1 exit status
link of gcc_wrapper.adb failed
link of gnat1drv.adb failed
gprbuild: *** link phase failed
I found the the solution method: At the llvm source code,patch the diff file "LLVMCreateTargetMachineWithABI.diff", then rebuild the llvm source code.
Indeed, this patch is currently needed. It has been upstreamed so starting with LLVM 18 (once GNAT LLVM supports it) the patch won't be needed.
when I build gnat-llvm in cygwin, and after "make llvm" command succeeded.,then "make", there is error messages comes ,just list below: Changing to object directory of "GNAT_LLVM_C": "E:\gnat-llvm\llvm-interface\obj\" d:\strawberry\c\bin\g++.exe -c -x c++ -g -IE:/gnat-llvm/llvm/llvm-project-16.0.6.src/llvm/include -IE:/gnat-llvm/llvm/llvm-obj/include -std=c++17 -fno-exceptions -fno-rtti -DSTDC_CONSTANT_MACROS -DSTDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Ie:/gnat-llvm/llvm/llvm-project-16.0.6.src/clang/include -MMD -MF llvm_wrapper.d -specs=E:\Cygwin64\tmp\GNAT-TEMP-000004.TMP E:\gnat-llvm\llvm-interface\llvm_wrapper.cc Changing to object directory of "Gnat_LLVM": "E:\gnat-llvm\llvm-interface\obj\" d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000006.TMP E:\gnat-llvm\llvm-interface\gnatllvm-codegen.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000007.TMP E:\gnat-llvm\llvm-interface\gnat_src\erroutc.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000008.TMP E:\gnat-llvm\llvm-interface\gnat_src\scans.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000009.TMP E:\gnat-llvm\llvm-interface\gnat_src\err_vars.ads d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000010.TMP E:\gnat-llvm\llvm-interface\gnat_src\exp_dbug.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000011.TMP E:\gnat-llvm\llvm-interface\gnat_src\exp_tss.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000012.TMP E:\gnat-llvm\llvm-interface\obj\g-htable.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000008.TMP E:\gnat-llvm\llvm-interface\gnat_src\krunch.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000008.TMP E:\gnat-llvm\llvm-interface\gnat_src\widechar.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000012.TMP E:\gnat-llvm\llvm-interface\gnat_src\cstand.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000009.TMP E:\gnat-llvm\llvm-interface\gnat_src\exp_ch6.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000008.TMP E:\gnat-llvm\llvm-interface\gnat_src\exp_unst.adb d:\gnat\2021\bin\gcc.exe -c -x ada -gnatA -g -gnatg -gnata -gnateE -gnatec=E:\Cygwin64\tmp\GNAT-TEMP-000005.TMP -gnatec=E:\gnat-llvm\llvm-interface\gnat.adc -gnatem=E:\Cygwin64\tmp\GNAT-TEMP-000011.TMP E:\gnat-llvm\llvm-interface\gnat_src\lib-load.adb gnatllvm-codegen.adb:628:09: error: "Create_Target_Machine_With_ABI" is undefined
compilation of gnatllvm-codegen.adb failed
gprbuild: compilation phase failed make[1]: [makefile:87: build] Error 4 make[1]: Leaving directory 'E:/gnat-llvm/llvm-interface' make: *** [makefile:2: all] Error 2