Просмотр исходного кода

[shim, Pal/Linux-SGX]: don't use -e for ld, but use ENTRY

Use ENTRY in linker script, shim.lds and enclave.lds, instead of -e for
ld command line in Makefile.
This also helps to understand how link is done. only shim.lds/enclave.lds
need to be read. don't have to dig into Makefile for command line.

Signed-off-by: Isaku Yamahata <isaku.yamahata@gmail.com>
Isaku Yamahata 6 лет назад
Родитель
Сommit
4a2257d413

+ 2 - 4
LibOS/shim/src/Makefile

@@ -77,15 +77,13 @@ ifeq ($(findstring x86_64,$(SYS))$(findstring linux,$(SYS)),x86_64linux)
 libsysdb.so: $(addsuffix .o,$(objs)) $(filter %.map %.lds,$(LDFLAGS)) \
 	     $(graphene_lib) $(pal_lib)
 	@echo [ $@ ]
-	$(LD) $(LDFLAGS) -o $@ $(filter-out %.map %.lds,$^) -soname $@ \
-		-e shim_start
+	$(LD) $(LDFLAGS) -o $@ $(filter-out %.map %.lds,$^) -soname $@
 
 libsysdb_debug.so: $(addsuffix .o,$(filter-out syscallas,$(objs))) \
 		   $(filter %.map %.lds,$($LDFLAGS-debug)) \
 		   $(graphene_lib) $(pal_lib)
 	@echo [ $@ ]
-	$(LD) $(LDFLAGS-debug) -o $@ $(filter-out %.map %.lds,$^) -soname $@ \
-		-e shim_start
+	$(LD) $(LDFLAGS-debug) -o $@ $(filter-out %.map %.lds,$^) -soname $@
 
 .lib/host_endian.h: ../../../Pal/src/host/$(PAL_HOST)/host_endian.h
 	@mkdir -p .lib

+ 1 - 0
LibOS/shim/src/shim.lds

@@ -1,5 +1,6 @@
 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
 OUTPUT_ARCH(i386:x86-64)
+ENTRY(shim_start)
 
 SECTIONS
 {

+ 1 - 1
Pal/src/host/Linux-SGX/Makefile.am

@@ -18,7 +18,7 @@ ASFLAGS = -DPIC -DSHARED -fPIC -DASSEMBLER -Wa,--noexecstack \
 	  -x assembler-with-cpp -DIN_ENCLAVE
 LDFLAGS	= -shared -nostdlib -z combreloc -z defs \
 	  --version-script $(HOST_DIR)/pal.map -T $(HOST_DIR)/enclave.lds \
-	  --hash-style=gnu -e enclave_entry
+	  --hash-style=gnu
 ARFLAGS	=
 
 CRYPTO_PROVIDER = mbedtls

+ 1 - 0
Pal/src/host/Linux-SGX/enclave.lds

@@ -1,5 +1,6 @@
 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
 OUTPUT_ARCH(i386:x86-64)
+ENTRY(enclave_entry)
 
 PHDRS
 {