mirror of
https://github.com/ps5-payload-dev/sdk.git
synced 2026-10-22 03:14:55 -05:00
initial support for llvm-20
This commit is contained in:
1 parent
23be0e5765
commit
5305ddf027
7 files changed
+53
-10
No files matched your search
+29
-4
@@ -16,20 +16,27 @@
|
||||
|
||||
DESTDIR ?= /opt/ps5-payload-sdk
|
||||
|
||||
CCS := clang-19 clang-18 clang-17 clang-16 clang-15 clang
|
||||
CCS := clang-20 clang-19 clang-18 clang-17 clang-16 clang-15 clang
|
||||
CCS := $(foreach CC,$(CCS),$(if $(shell command -v $(CC) 2> /dev/null),$(CC)))
|
||||
CC := $(firstword $(CCS))
|
||||
ifndef CC
|
||||
$(error No suitable compiler found)
|
||||
endif
|
||||
|
||||
LDS := ld.lld-19 ld.lld-18 ld.lld-17 ld.lld-16 ld.lld-15 ld.lld ld
|
||||
LDS := ld.lld-20 ld.lld-19 ld.lld-18 ld.lld-17 ld.lld-16 ld.lld-15 ld.lld ld
|
||||
LDS := $(foreach LD,$(LDS),$(if $(shell command -v $(LD) 2> /dev/null),$(LD)))
|
||||
LD := $(firstword $(LDS))
|
||||
ifndef LD
|
||||
$(error No suitable linker found)
|
||||
endif
|
||||
|
||||
ARS := llvm-ar-20 llvm-ar-19 llvm-ar-18 llvm-ar-17 llvm-ar-16 llvm-ar-15 llvm-ar ar
|
||||
ARS := $(foreach AR,$(ARS),$(if $(shell command -v $(AR) 2> /dev/null),$(AR)))
|
||||
AR := $(firstword $(ARS))
|
||||
ifndef AR
|
||||
$(error No suitable archiver found)
|
||||
endif
|
||||
|
||||
CFLAGS += -ffreestanding -fno-builtin -nostdlib -fPIC
|
||||
CFLAGS += -target x86_64-sie-ps5 -fno-plt -fno-stack-protector
|
||||
CFLAGS += -fvisibility-nodllstorageclass=default -Wall -Werror
|
||||
@@ -41,7 +48,25 @@ OBJ := crt.o syscall.o klog.o nid.o kernel.o rtld.o rtld_so.o rtld_sprx.o \
|
||||
|
||||
.PHONY: all clean install
|
||||
|
||||
all: crt1.o
|
||||
all: crt1.o crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o
|
||||
|
||||
crtbeginS.o:
|
||||
$(AR) -rsc $@
|
||||
|
||||
crtendS.o:
|
||||
$(AR) -rsc $@
|
||||
|
||||
crtbegin.o:
|
||||
$(AR) -rsc $@
|
||||
|
||||
crtend.o:
|
||||
$(AR) -rsc $@
|
||||
|
||||
crti.o:
|
||||
$(AR) -rsc $@
|
||||
|
||||
crtn.o:
|
||||
$(AR) -rsc $@
|
||||
|
||||
crt1.o: $(OBJ)
|
||||
$(LD) -m elf_x86_64 -r -o $@ $^
|
||||
@@ -52,6 +77,6 @@ crt1.o: $(OBJ)
|
||||
clean:
|
||||
rm -f *.o *.a
|
||||
|
||||
install: crt1.o
|
||||
install: crt1.o crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o
|
||||
install -d $(DESTDIR)/target/lib
|
||||
install $^ $(DESTDIR)/target/lib
|
||||
@@ -51,6 +51,9 @@ install: install-tools install-symlinks install-ldscripts install-toolchains
|
||||
install-ldscripts: $(LDSCRIPTS)
|
||||
install -d $(DESTDIR)/ldscripts
|
||||
install $^ $(DESTDIR)/ldscripts
|
||||
install -d $(DESTDIR)/target/lib
|
||||
ln -sf ../../ldscripts/elf_x86_64.x $(DESTDIR)/target/lib/main.script
|
||||
ln -sf ../../ldscripts/elf_x86_64.x $(DESTDIR)/target/lib/prx.script
|
||||
|
||||
install-toolchains: $(TOOLCHAINS)
|
||||
install -d $(DESTDIR)/toolchain
|
||||
|
||||
@@ -19,7 +19,8 @@ if [ -x "$(command -v "${LLVM_CONFIG}")" ]; then
|
||||
exec "${LLVM_CONFIG}"
|
||||
fi
|
||||
|
||||
CANDIDATES=("llvm-config-19"
|
||||
CANDIDATES=("llvm-config-20"
|
||||
"llvm-config-19"
|
||||
"llvm-config-18"
|
||||
"llvm-config-17"
|
||||
"llvm-config-16"
|
||||
|
||||
@@ -56,6 +56,13 @@ if [[ "${TU}" == "" ]]; then
|
||||
LIBS_KERN=""
|
||||
fi
|
||||
|
||||
|
||||
# clang-20 started appending crt objects when linking
|
||||
if [[ $($SCRIPT_DIR/llvm-config --version | cut -d. -f1) -ge 20 ]]; then
|
||||
export SCE_PROSPERO_SDK_DIR="${PS5_PAYLOAD_SDK}"
|
||||
LIBS_CRT=""
|
||||
fi
|
||||
|
||||
# ensure clang knows where prospero-lld is at
|
||||
export PATH="${SCRIPT_DIR}:${PATH}"
|
||||
|
||||
|
||||
@@ -62,6 +62,12 @@ if [[ "${TU}" == "" ]]; then
|
||||
LIBS_KERN=""
|
||||
fi
|
||||
|
||||
# clang++-20 started appending crt objects when linking
|
||||
if [[ $($SCRIPT_DIR/llvm-config --version | cut -d. -f1) -ge 20 ]]; then
|
||||
export SCE_PROSPERO_SDK_DIR="${PS5_PAYLOAD_SDK}/"
|
||||
LIBS_CRT=""
|
||||
fi
|
||||
|
||||
# ensure clang++ knows where prospero-lld is at
|
||||
export PATH="${SCRIPT_DIR}:${PATH}"
|
||||
|
||||
|
||||
+2
-3
@@ -16,14 +16,14 @@
|
||||
|
||||
DESTDIR ?= /opt/ps5-payload-sdk
|
||||
|
||||
CCS := clang-19 clang-18 clang-17 clang-16 clang-15 clang
|
||||
CCS := clang-20 clang-19 clang-18 clang-17 clang-16 clang-15 clang
|
||||
CCS := $(foreach CC,$(CCS),$(if $(shell command -v $(CC) 2> /dev/null),$(CC)))
|
||||
CC := $(firstword $(CCS))
|
||||
ifndef CC
|
||||
$(error No suitable compiler found)
|
||||
endif
|
||||
|
||||
ARS := llvm-ar-19 llvm-ar-18 llvm-ar-17 llvm-ar-16 llvm-ar-15 llvm-ar ar
|
||||
ARS := llvm-ar-20 llvm-ar-19 llvm-ar-18 llvm-ar-17 llvm-ar-16 llvm-ar-15 llvm-ar ar
|
||||
ARS := $(foreach AR,$(ARS),$(if $(shell command -v $(AR) 2> /dev/null),$(AR)))
|
||||
AR := $(firstword $(ARS))
|
||||
ifndef AR
|
||||
@@ -53,4 +53,3 @@ clean:
|
||||
install: $(ARCHIVE)
|
||||
install -d $(DESTDIR)/target/lib
|
||||
install $^ $(DESTDIR)/target/lib
|
||||
|
||||
+4
-2
@@ -17,14 +17,14 @@
|
||||
PYTHON ?= python3
|
||||
DESTDIR ?= /opt/ps5-payload-sdk
|
||||
|
||||
CCS := clang-19 clang-18 clang-17 clang-16 clang-15 clang
|
||||
CCS := clang-20 clang-19 clang-18 clang-17 clang-16 clang-15 clang
|
||||
CCS := $(foreach CC,$(CCS),$(if $(shell command -v $(CC) 2> /dev/null),$(CC)))
|
||||
CC := $(firstword $(CCS))
|
||||
ifndef CC
|
||||
$(error No suitable compiler found)
|
||||
endif
|
||||
|
||||
LDS := ld.lld-19 ld.lld-18 ld.lld-17 ld.lld-16 ld.lld-15 ld.lld
|
||||
LDS := ld.lld-20 ld.lld-19 ld.lld-18 ld.lld-17 ld.lld-16 ld.lld-15 ld.lld ld
|
||||
LDS := $(foreach LD,$(LDS),$(if $(shell command -v $(LD) 2> /dev/null),$(LD)))
|
||||
LD := $(firstword $(LDS))
|
||||
ifndef LD
|
||||
@@ -77,3 +77,5 @@ clean:
|
||||
install: $(SHARED)
|
||||
install -d $(DESTDIR)/target/lib
|
||||
install $(SHARED) $(DESTDIR)/target/lib
|
||||
ln -sf libkernel_web.so $(DESTDIR)/target/lib/libkernel_stub_weak.so
|
||||
ln -sf libSceLibcInternal.so $(DESTDIR)/target/lib/libc_stub_weak.so
|
||||
Reference in new issue
Block a user