Hello,
I'm trying to compile efitools on CentOS but I am running into an issue. This is what the error I get during make:
Code:
# make
make -C lib lib-efi.a
make[1]: Entering directory `/root/efitools/lib'
make[1]: `lib-efi.a' is up to date.
make[1]: Leaving directory `/root/efitools/lib'
cc -I/root/efitools/include/ -I/usr/include/efi -I/usr/include/efi/x86_64 -I/usr/include/efi/protocol -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-stack-protector -ffreestanding -fno-stack-check -DGNU_EFI_USE_MS_ABI -DEFI_FUNCTION_WRAPPER -mno-red-zone -DCONFIG_x86_64 -c HelloWorld.c -o HelloWorld.o
ld -nostdlib -shared -Bsymbolic /usr/lib64/gnuefi/crt0-efi-x86_64.o -L /usr/lib64/gnuefi -T elf_x86_64_efi.lds HelloWorld.o lib/lib-efi.a -o HelloWorld.so -lefi -lgnuefi /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libgcc.a
ld: cannot find -lefi
ld: cannot find -lgnuefi
make: *** [HelloWorld.so] Error 1
rm HelloWorld.o
However it seems I have libefi and libgnuefi:
Code:
# locate libefi
/usr/lib64/libefi.a
/usr/lib64/libefivar.so.0
# locate libgnuefi
/usr/lib64/libgnuefi.a
I'm not sure what I am missing? I installed the gnu-efi-devel package and based on my searches, ld searches for *.a but maybe the files need to be *.so?
Any suggestions would be much appreciated.