From 921abe47299255a6480456c98fbb53bdc5db92a2 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 7 Oct 2019 19:03:50 +0200 Subject: riscv: Remove support for variable page sizes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _dl_var_init is used to patch the read-only data section after relocation. Several architectures use this to update GLRO(page_size) with the correct value for the static dlopen case, where _rtld_global_ro has not been initialized by the dynamic loader. RISC-V does not need this. The RISC-V Instruction Set Manual, Volume II: Privileged Architecture, Document Version 20190608-Priv-MSU-Ratified says this: After much deliberation, we have settled on a conventional page size of 4 KiB for both RV32 and RV64. We expect this decision to ease the porting of low-level runtime software and device drivers. The TLB reach problem is ameliorated by transparent superpage support in modern operating systems [2]. Additionally, multi-level TLB hierarchies are quite inexpensive relative to the multi-level cache hierarchies whose address space they map. [2] Juan Navarro, Sitaram Iyer, Peter Druschel, and Alan Cox. Practical, transparent operating system support for superpages. SIGOPS Oper. Syst. Rev., 36(SI):89–104, December 2002. This means that the initialization of _rtld_global_ro._dl_page_size in elf/rtld.c with EXEC_PAGESIZE is sufficient for RISC-V. --- sysdeps/unix/sysv/linux/riscv/Makefile | 4 ---- 1 file changed, 4 deletions(-) (limited to 'sysdeps/unix/sysv/linux/riscv/Makefile') diff --git a/sysdeps/unix/sysv/linux/riscv/Makefile b/sysdeps/unix/sysv/linux/riscv/Makefile index b47858769f..b7ad31885c 100644 --- a/sysdeps/unix/sysv/linux/riscv/Makefile +++ b/sysdeps/unix/sysv/linux/riscv/Makefile @@ -1,9 +1,5 @@ ifeq ($(subdir),elf) sysdep_routines += dl-vdso -ifeq ($(build-shared),yes) -# This is needed for DSO loading from static binaries. -sysdep-dl-routines += dl-static -endif endif ifeq ($(subdir),misc) -- cgit 1.4.1