From owner-svn-src-head@freebsd.org Mon Oct 29 21:08:16 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E22610EA1BD; Mon, 29 Oct 2018 21:08:16 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 51751830F8; Mon, 29 Oct 2018 21:08:16 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D494B13AE3; Mon, 29 Oct 2018 21:08:12 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w9TL8C3S041974; Mon, 29 Oct 2018 21:08:12 GMT (envelope-from arichardson@FreeBSD.org) Received: (from arichardson@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w9TL8B5N041969; Mon, 29 Oct 2018 21:08:11 GMT (envelope-from arichardson@FreeBSD.org) Message-Id: <201810292108.w9TL8B5N041969@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arichardson set sender to arichardson@FreeBSD.org using -f From: Alex Richardson Date: Mon, 29 Oct 2018 21:08:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r339877 - head/libexec/rtld-elf X-SVN-Group: head X-SVN-Commit-Author: arichardson X-SVN-Commit-Paths: head/libexec/rtld-elf X-SVN-Commit-Revision: 339877 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Oct 2018 21:08:17 -0000 Author: arichardson Date: Mon Oct 29 21:08:11 2018 New Revision: 339877 URL: https://svnweb.freebsd.org/changeset/base/339877 Log: rtld-elf: make it compile with WARNS=3 Reviewed By: kib Approved By: brooks (mentor) Differential Revision: https://reviews.freebsd.org/D17150 Modified: head/libexec/rtld-elf/libmap.c head/libexec/rtld-elf/libmap.h head/libexec/rtld-elf/malloc.c head/libexec/rtld-elf/map_object.c head/libexec/rtld-elf/rtld.c head/libexec/rtld-elf/rtld.h Modified: head/libexec/rtld-elf/libmap.c ============================================================================== --- head/libexec/rtld-elf/libmap.c Mon Oct 29 21:08:02 2018 (r339876) +++ head/libexec/rtld-elf/libmap.c Mon Oct 29 21:08:11 2018 (r339877) @@ -199,8 +199,7 @@ lmc_parse(char *lm_p, size_t lm_len) char prog[MAXPATHLEN]; /* allow includedir + full length path */ char line[MAXPATHLEN + 13]; - size_t cnt; - int i; + size_t cnt, i; cnt = 0; p = NULL; @@ -403,7 +402,7 @@ lm_find(const char *p, const char *f) * replacement library, or NULL. */ char * -lm_findn(const char *p, const char *f, const int n) +lm_findn(const char *p, const char *f, const size_t n) { char pathbuf[64], *s, *t; Modified: head/libexec/rtld-elf/libmap.h ============================================================================== --- head/libexec/rtld-elf/libmap.h Mon Oct 29 21:08:02 2018 (r339876) +++ head/libexec/rtld-elf/libmap.h Mon Oct 29 21:08:11 2018 (r339877) @@ -5,4 +5,4 @@ int lm_init (char *); void lm_fini (void); char * lm_find (const char *, const char *); -char * lm_findn (const char *, const char *, const int); +char * lm_findn (const char *, const char *, const size_t); Modified: head/libexec/rtld-elf/malloc.c ============================================================================== --- head/libexec/rtld-elf/malloc.c Mon Oct 29 21:08:02 2018 (r339876) +++ head/libexec/rtld-elf/malloc.c Mon Oct 29 21:08:11 2018 (r339877) @@ -60,15 +60,11 @@ static char *rcsid = "$FreeBSD$"; #include "rtld_printf.h" #include "paths.h" -static void morecore(); -static int findbucket(); - /* * Pre-allocate mmap'ed pages */ #define NPOOLPAGES (128*1024/pagesz) static caddr_t pagepool_start, pagepool_end; -static int morepages(); /* * The overhead on a block is at least 4 bytes. When free, this space @@ -96,6 +92,11 @@ union overhead { #define ov_size ovu.ovu_size }; +static void morecore(int bucket); +static int morepages(int n); +static int findbucket(union overhead *freep, int srchlen); + + #define MAGIC 0xef /* magic # on accounting info */ #define RMAGIC 0x5555 /* magic # on range info */ @@ -156,10 +157,10 @@ void * malloc(nbytes) size_t nbytes; { - register union overhead *op; - register int bucket; - register long n; - register unsigned amt; + union overhead *op; + int bucket; + size_t n; + unsigned amt; /* * First time malloc is called, setup page size and @@ -259,8 +260,8 @@ static void morecore(bucket) int bucket; { - register union overhead *op; - register int sz; /* size of desired block */ + union overhead *op; + int sz; /* size of desired block */ int amt; /* amount to allocate */ int nblks; /* how many blocks we get */ @@ -303,8 +304,8 @@ void free(cp) void *cp; { - register int size; - register union overhead *op; + int size; + union overhead *op; if (cp == NULL) return; @@ -346,8 +347,8 @@ realloc(cp, nbytes) void *cp; size_t nbytes; { - register u_int onb; - register int i; + u_int onb; + int i; union overhead *op; char *res; int was_alloced = 0; @@ -417,8 +418,8 @@ findbucket(freep, srchlen) union overhead *freep; int srchlen; { - register union overhead *p; - register int i, j; + union overhead *p; + int i, j; for (i = 0; i < NBUCKETS; i++) { j = 0; @@ -442,8 +443,8 @@ findbucket(freep, srchlen) mstats(s) char *s; { - register int i, j; - register union overhead *p; + int i, j; + union overhead *p; int totfree = 0, totused = 0; Modified: head/libexec/rtld-elf/map_object.c ============================================================================== --- head/libexec/rtld-elf/map_object.c Mon Oct 29 21:08:02 2018 (r339876) +++ head/libexec/rtld-elf/map_object.c Mon Oct 29 21:08:11 2018 (r339877) @@ -340,7 +340,7 @@ get_elf_header(int fd, const char *path, const struct Elf_Ehdr *hdr; /* Make sure file has enough data for the ELF header */ - if (sbp != NULL && sbp->st_size < sizeof(Elf_Ehdr)) { + if (sbp != NULL && sbp->st_size < (off_t)sizeof(Elf_Ehdr)) { _rtld_error("%s: invalid file format", path); return (NULL); } Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Mon Oct 29 21:08:02 2018 (r339876) +++ head/libexec/rtld-elf/rtld.c Mon Oct 29 21:08:11 2018 (r339877) @@ -70,7 +70,7 @@ __FBSDID("$FreeBSD$"); #include "notes.h" /* Types. */ -typedef void (*func_ptr_type)(); +typedef void (*func_ptr_type)(void); typedef void * (*path_enum_proc) (const char *path, size_t len, void *arg); /* @@ -236,6 +236,13 @@ int _rtld_get_stack_prot(void) __exported; int _rtld_is_dlopened(void *) __exported; void _rtld_error(const char *, ...) __exported; +/* Only here to fix -Wmissing-prototypes warnings */ +int __getosreldate(void); +void __pthread_cxa_finalize(struct dl_phdr_info *a); +func_ptr_type _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entry **objp); +Elf_Addr _rtld_bind(Obj_Entry *obj, Elf_Size reloff); + + int npagesizes, osreldate; size_t *pagesizes; @@ -262,7 +269,7 @@ size_t tls_last_offset; /* Static TLS offset of last size_t tls_last_size; /* Static TLS size of last module */ size_t tls_static_space; /* Static TLS space allocated */ size_t tls_static_max_align; -int tls_dtv_generation = 1; /* Used to detect when dtv size changes */ +Elf_Addr tls_dtv_generation = 1; /* Used to detect when dtv size changes */ int tls_max_index = 1; /* Largest module index allocated */ bool ld_library_path_rpath = false; @@ -4846,7 +4853,7 @@ allocate_tls(Obj_Entry *objs, void *oldtls, size_t tcb char *tls; Elf_Addr *dtv, *olddtv; Elf_Addr segbase, oldsegbase, addr; - int i; + size_t i; ralign = tcbalign; if (tls_static_max_align > ralign) Modified: head/libexec/rtld-elf/rtld.h ============================================================================== --- head/libexec/rtld-elf/rtld.h Mon Oct 29 21:08:02 2018 (r339876) +++ head/libexec/rtld-elf/rtld.h Mon Oct 29 21:08:11 2018 (r339877) @@ -54,7 +54,7 @@ typedef unsigned char bool; extern size_t tls_last_offset; extern size_t tls_last_size; extern size_t tls_static_space; -extern int tls_dtv_generation; +extern Elf_Addr tls_dtv_generation; extern int tls_max_index; extern int npagesizes;