Error reading riscv64-umedium

Hello, I am using clang 11 for creating an ELF executable, that later I convert into a PE file and it’s a freestanding code, which is a UEFI OS loader, a hobbyistic osdev thing. I had compiled this code before and it worked, but now it throws this error:
error: error reading ‘riscv64-umedium’

have no idea what it could be, what should I do to overcome this, am a very beginner in rv64 and not much familiar with clang, honestly. googling made only headache, since found so unrelevant results. thank you for the answers.

clang specific options are

clangflags	= --target=riscv64-unknown-none-eabihf -v \
			/clang:-ffreestanding /clang:-nodefaultlibs \
			/clang:-nostartfiles \
			/clang:-fshort-wchar /clang:-mno-relax \
			/clang:-mcmodel=medany
linkflags	= -nostdlib --nmagic

cl flags are:

cflags	=	/O2 /kernel /X /Zl /GR- /EHs-c- /Gs65536 /GS- /TC /nologo

linkflags	=	/NODEFAULTLIB /SUBSYSTEM:EFI_APPLICATION /SAFESEH:NO \
			/ENTRY:fname /FIXED:NO /GUARD:NO /MACHINE:$(PLATFORM) /NOLOGO

Installed clang 15.0.2, it doesn’t show this error. Plus, it does support -mrelax.

Just a question about code generation. By default, clang uses -mcmodel=medlow and that means use position dependent memory access instructions, whereas -mcmodel=medany makes use PC-relative addressing, lui vs. auipc. Why so? Is lui aproach faster?