diff --git a/OLVASSEL.md b/OLVASSEL.md index c049658..6a8e1c0 100644 --- a/OLVASSEL.md +++ b/OLVASSEL.md @@ -35,8 +35,7 @@ Szigorúan véve csak a **crt0.o** és a **link.ld** fájlokra van szükség, ez "main()" eljárását. Viszont ahhoz, hogy a libc funkciókat (mint pl. memcmp, strcpy, malloc vagy fopen) használhasd, linkelned kell a **libuefi.a** fájllal is. -Egyenlőre ez a metódus csak gcc-vel működik, mivel a Clang úgy van beállítva, hogy direktben PE fájlokat hoz létre, ezért nem tud -statikus ELF .a fájlokat generálni, sem linkelni velük. +Clang úgy van beállítva, hogy direktben PE fájlokat hoz létre, ezért a generált függvénykönyvtár neve **libuefi.dll.a*. Forrásként terjesztve --------------------- diff --git a/README.md b/README.md index ac4cf6d..cdf351a 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,7 @@ the linking and converting. Strictly speaking you'll only need **crt0.o** and **link.ld**, that will get you started and will call your application's "main()", but to get libc functions like memcmp, strcpy, malloc or fopen, you'll have to link with **libuefi.a** too. -For now this only works with gcc, because Clang is configured in a way to directly create PE files, so it cannot create -nor link with static ELF .a files. +Clang is configured in a way to directly create PE files, so the resulting library's name is **libuefi.dll.a*. Distributing as Source ---------------------- diff --git a/uefi/Makefile b/uefi/Makefile index b62e365..c3f617b 100644 --- a/uefi/Makefile +++ b/uefi/Makefile @@ -88,12 +88,8 @@ uefi/libuefi.a: libuefi.lib: $(LIBOBJS) libuefi.a: $(LIBOBJS) -ifneq ($(USE_GCC),) @rm $@ 2>/dev/null || true $(AR) -frsv $@ $(LIBOBJS) >/dev/null -else - @true -endif $(TARGET): $(addprefix $(OUTDIR),$(TARGET).so) ifneq ($(USE_GCC),) @@ -118,7 +114,12 @@ buildlib: @mkdir ../build ../build/uefi 2>/dev/null || true @cp crt_$(ARCH).o ../build/uefi/crt0.o @cp elf_$(ARCH)_efi.lds ../build/uefi/link.ld +ifneq ($(USE_GCC),) @cp libuefi.a uefi.h ../build/uefi +else + @cp uefi.h ../build/uefi + @cp libuefi.a ../build/uefi/libuefi.dll.a +endif clean: @rm $(addprefix $(OUTDIR),$(TARGET)) *.o *.a *.lib *.elf $(LIBOBJS) 2>/dev/null || true