misc: symlink ld.so -> libc.so
Signed-off-by: Anhad Singh <andypython@protonmail.com>
This commit is contained in:
@@ -79,20 +79,19 @@ libs: \
|
||||
$(BUILD)/$(PROFILE)/libc.so \
|
||||
$(BUILD)/$(PROFILE)/crt0.o \
|
||||
$(BUILD)/$(PROFILE)/crti.o \
|
||||
$(BUILD)/$(PROFILE)/crtn.o \
|
||||
$(BUILD)/$(PROFILE)/ld.so
|
||||
$(BUILD)/$(PROFILE)/crtn.o
|
||||
|
||||
install-libs: headers libs
|
||||
mkdir -pv "$(DESTDIR)/lib"
|
||||
cp -v "$(BUILD)/$(PROFILE)/libc.a" "$(DESTDIR)/lib"
|
||||
cp -v "$(BUILD)/$(PROFILE)/libc.so" "$(DESTDIR)/lib"
|
||||
ln -vnfs libc.so "$(DESTDIR)/lib/libc.so.6"
|
||||
ln -vnfs libc.so "$(DESTDIR)/lib/$(LD_SONAME)"
|
||||
cp -v "$(BUILD)/$(PROFILE)/crt0.o" "$(DESTDIR)/lib"
|
||||
ln -vnfs crt0.o "$(DESTDIR)/lib/crt1.o"
|
||||
ln -vnfs crt0.o "$(DESTDIR)/lib/Scrt1.o"
|
||||
cp -v "$(BUILD)/$(PROFILE)/crti.o" "$(DESTDIR)/lib"
|
||||
cp -v "$(BUILD)/$(PROFILE)/crtn.o" "$(DESTDIR)/lib"
|
||||
cp -v "$(BUILD)/$(PROFILE)/ld.so" "$(DESTDIR)/$(LD_SO_PATH)"
|
||||
ifeq ($(USE_RUST_LIBM),)
|
||||
cp -v "$(BUILD)/openlibm/libopenlibm.a" "$(DESTDIR)/lib/libm.a"
|
||||
else
|
||||
@@ -135,10 +134,16 @@ test-once: sysroot/$(TARGET)
|
||||
$(MAKE) -C tests run-once TESTBIN=$(TESTBIN)
|
||||
|
||||
|
||||
$(BUILD)/$(PROFILE)/libc.so: $(BUILD)/$(PROFILE)/libc.a
|
||||
$(BUILD)/$(PROFILE)/libc.so: $(BUILD)/$(PROFILE)/ld_so.o $(BUILD)/$(PROFILE)/libc.a
|
||||
# Specifying a dynamic list makes all non-local `STV_DEFAULT`
|
||||
# definitions non-preemptible, except for the symbols listed in
|
||||
# `dynlst.txt`. So, the symbols defined in `dynlst.txt` may be
|
||||
# interposed by other definitions at runtime (either from the
|
||||
# executable or some shared library).
|
||||
$(CC) -nostdlib \
|
||||
-shared \
|
||||
-Wl,--gc-sections \
|
||||
-Wl,--dynamic-list=dynlst.txt \
|
||||
-Wl,-z,pack-relative-relocs \
|
||||
-Wl,--sort-common \
|
||||
-Wl,--whole-archive $^ -Wl,--no-whole-archive \
|
||||
@@ -146,14 +151,6 @@ $(BUILD)/$(PROFILE)/libc.so: $(BUILD)/$(PROFILE)/libc.a
|
||||
$(LINKFLAGS) \
|
||||
-o $@
|
||||
|
||||
$(BUILD)/$(PROFILE)/ld.so: $(BUILD)/$(PROFILE)/ld_so.o $(BUILD)/$(PROFILE)/libc.a
|
||||
# Specifying a dynamic list makes all non-local `STV_DEFAULT`
|
||||
# definitions non-preemptible, except for the symbols listed in
|
||||
# `dynlst.txt`. So, the symbols defined in `dynlst.txt` may be
|
||||
# interposed by other definitions at runtime (either from the
|
||||
# executable or some shared library).
|
||||
$(LD) --shared --whole-archive --dynamic-list=dynlst.txt $^ -o $@
|
||||
|
||||
$(BUILD)/$(PROFILE)/libc.a: $(BUILD)/$(PROFILE)/librelibc.a $(BUILD)/openlibm/libopenlibm.a
|
||||
echo "create $@" > "$@.mri"
|
||||
for lib in $^; do\
|
||||
|
||||
@@ -9,7 +9,7 @@ ifeq ($(TARGET),aarch64-unknown-linux-gnu)
|
||||
export NM=aarch64-linux-gnu-nm
|
||||
export OBJCOPY=aarch64-linux-gnu-objcopy
|
||||
export CPPFLAGS=
|
||||
LD_SO_PATH=lib/ld.so.1
|
||||
LD_SONAME=ld.so.1
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),aarch64-unknown-linux-relibc)
|
||||
@@ -19,7 +19,7 @@ ifeq ($(TARGET),aarch64-unknown-linux-relibc)
|
||||
export NM=aarch64-linux-relibc-nm
|
||||
export OBJCOPY=aarch64-linux-relibc-objcopy
|
||||
export CPPFLAGS=
|
||||
LD_SO_PATH=lib/ld.so.1
|
||||
LD_SONAME=ld.so.1
|
||||
endif
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ ifeq ($(TARGET),aarch64-unknown-redox)
|
||||
export NM=aarch64-unknown-redox-nm
|
||||
export OBJCOPY=aarch64-unknown-redox-objcopy
|
||||
export CPPFLAGS=
|
||||
LD_SO_PATH=lib/ld.so.1
|
||||
LD_SONAME=ld.so.1
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),i586-unknown-redox)
|
||||
@@ -40,7 +40,7 @@ ifeq ($(TARGET),i586-unknown-redox)
|
||||
export NM=i586-unknown-redox-nm
|
||||
export OBJCOPY=i586-unknown-redox-objcopy
|
||||
export CPPFLAGS=
|
||||
LD_SO_PATH=lib/libc.so.1
|
||||
LD_SONAME=ld.so.1
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),i686-unknown-redox)
|
||||
@@ -50,7 +50,7 @@ ifeq ($(TARGET),i686-unknown-redox)
|
||||
export NM=i686-unknown-redox-nm
|
||||
export OBJCOPY=i686-unknown-redox-objcopy
|
||||
export CPPFLAGS=
|
||||
LD_SO_PATH=lib/libc.so.1
|
||||
LD_SONAME=ld.so.1
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),x86_64-unknown-linux-gnu)
|
||||
@@ -60,7 +60,7 @@ ifeq ($(TARGET),x86_64-unknown-linux-gnu)
|
||||
export NM=x86_64-linux-gnu-nm
|
||||
export OBJCOPY=objcopy
|
||||
export CPPFLAGS=
|
||||
LD_SO_PATH=lib/ld64.so.1
|
||||
LD_SONAME=ld64.so.1
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),x86_64-unknown-linux-relibc)
|
||||
@@ -70,7 +70,7 @@ ifeq ($(TARGET),x86_64-unknown-linux-relibc)
|
||||
export NM=x86_64-linux-relibc-nm
|
||||
export OBJCOPY=x86_64-linux-relibc-objcopy
|
||||
export CPPFLAGS=
|
||||
LD_SO_PATH=lib/ld64.so.1
|
||||
LD_SONAME=ld64.so.1
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),x86_64-unknown-redox)
|
||||
@@ -80,7 +80,7 @@ ifeq ($(TARGET),x86_64-unknown-redox)
|
||||
export NM=x86_64-unknown-redox-nm
|
||||
export OBJCOPY=x86_64-unknown-redox-objcopy
|
||||
export CPPFLAGS=
|
||||
LD_SO_PATH=lib/ld64.so.1
|
||||
LD_SONAME=ld64.so.1
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),riscv64gc-unknown-redox)
|
||||
@@ -90,5 +90,5 @@ ifeq ($(TARGET),riscv64gc-unknown-redox)
|
||||
export NM=riscv64-unknown-redox-nm
|
||||
export OBJCOPY=riscv64-unknown-redox-objcopy
|
||||
export CPPFLAGS=-march=rv64gc -mabi=lp64d
|
||||
LD_SO_PATH=lib/ld.so.1
|
||||
LD_SONAME=ld.so.1
|
||||
endif
|
||||
|
||||
+1
-1
@@ -113,7 +113,7 @@ STATIC_FLAGS+=\
|
||||
|
||||
ifeq ($(IS_REDOX),0)
|
||||
DYNAMIC_FLAGS+=\
|
||||
-Wl,-dynamic-linker=$(SYSROOT_TARGET)/$(LD_SO_PATH) \
|
||||
-Wl,-dynamic-linker=$(SYSROOT_TARGET)/lib/$(LD_SONAME) \
|
||||
-Wl,-rpath=$(SYSROOT_TARGET)/lib:\$$ORIGIN \
|
||||
-L $(SYSROOT)/lib \
|
||||
-lc \
|
||||
|
||||
Reference in New Issue
Block a user