On Mon, 25 Mar 2024, Tobias Burnus wrote: > Richard Biener wrote: > > I'll follow up with the libgomp testing test summary for archival > > purposes. I still see linker errors for testcases using -g > > (the ld: ^[[0;31merror: ^[[0mincompatible mach: > > /tmp/ccr0oDpD.mkoffload.dbg.o^M kind) > > Hmm, odd ? can you try compile with -save-temp and look at the relevant files > with, e.g., readelf -h on the GCN files (e.g. 'readelf -h > *.xamdgcn-amdhsa.mkoffload.*o') ? that should show under "Flags" what the > program was compiled for. > > We did encounter this issue with LLVM 18 and the solution was explicitly set > the version both in the compiler via gcc/config/gcn/gcn-hsa.h's > > #define ABI_VERSION_SPEC "march=fiji:--amdhsa-code-object-version=3;" \ > "!march=*|march=*:--amdhsa-code-object-version=4" > > and for the debugging data in mkoffload.cc's > > ehdr.e_ident[8] = (elf_arch == EF_AMDGPU_MACH_AMDGCN_GFX803 > ? ELFABIVERSION_AMDGPU_HSA_V3 > : ELFABIVERSION_AMDGPU_HSA_V4); > > But I fail to see why this doesn't work for you - you should get V4 for your > gfx1036 target. > > Here, ELFABIVERSION_AMDGPU_HSA_V4 2 (V1 did not have a number and V2 started > with 0, hence V3 = 1 etc.)
So just for the record it was --with-arch=gfx1036 not passed through to mkoffload, using explicit -foffload-options=-march=gfx1036 fixes that problem. > What LLVM version did you use for the assembler (llvm-mc)? I've used llvm15 but lld from llvm14 (don't ask ...) Richard.