diff --git a/src/stub/src/amd64-linux.elf-so_main.c b/src/stub/src/amd64-linux.elf-so_main.c index b76f1070..67ceab11 100644 --- a/src/stub/src/amd64-linux.elf-so_main.c +++ b/src/stub/src/amd64-linux.elf-so_main.c @@ -37,7 +37,6 @@ extern unsigned Pprotect(void *, size_t, unsigned); extern void *Pmap(void *, size_t, unsigned, unsigned, int, size_t); extern int Punmap(void *, size_t); extern size_t Pwrite(unsigned, void const *, size_t); -extern int ftruncate(int fd, off_t length); extern void f_int3(int arg); diff --git a/src/stub/src/i386-linux.elf-so_main.c b/src/stub/src/i386-linux.elf-so_main.c index de7fd20d..c79afea7 100644 --- a/src/stub/src/i386-linux.elf-so_main.c +++ b/src/stub/src/i386-linux.elf-so_main.c @@ -298,7 +298,6 @@ make_hatch_i386( #elif defined(__arm__) /*}{*/ extern unsigned get_sys_munmap(void); extern int upxfd_create(void); // early 32-bit Android lacks memfd_create -extern size_t lseek(int fd, size_t offset, int whence); #define SEEK_SET 0 static void * diff --git a/src/stub/src/i386-linux.elf.execve-main.c b/src/stub/src/i386-linux.elf.execve-main.c index 0fb6c784..6d8842e3 100644 --- a/src/stub/src/i386-linux.elf.execve-main.c +++ b/src/stub/src/i386-linux.elf.execve-main.c @@ -127,9 +127,6 @@ static uint32_t ascii5(char *p, uint32_t v, unsigned n) } -extern char *mmap(void *addr, size_t len, - int prot, int flags, int fd, off_t offset); - #if defined(__i386__) # define SET2(p, c0, c1) \ * (unsigned short *) (p) = ((c1)<<8 | (c0)) diff --git a/src/stub/src/i386-linux.elf.interp-main.c b/src/stub/src/i386-linux.elf.interp-main.c index bee4603b..72abc3fb 100644 --- a/src/stub/src/i386-linux.elf.interp-main.c +++ b/src/stub/src/i386-linux.elf.interp-main.c @@ -96,9 +96,6 @@ do_brk(void *addr) return brk(addr); } -extern char *mmap(void *addr, size_t len, - int prot, int flags, int fd, off_t offset); - /************************************************************************* // UPX & NRV stuff **************************************************************************/ diff --git a/src/stub/src/i386-linux.elf.shell-main.c b/src/stub/src/i386-linux.elf.shell-main.c index d8987c56..5cf98702 100644 --- a/src/stub/src/i386-linux.elf.shell-main.c +++ b/src/stub/src/i386-linux.elf.shell-main.c @@ -93,9 +93,6 @@ do_brk(void *addr) return brk(addr); } -extern char *mmap(void *addr, size_t len, - int prot, int flags, int fd, off_t offset); - /************************************************************************* // UPX & NRV stuff **************************************************************************/ diff --git a/src/stub/src/include/linux.h b/src/stub/src/include/linux.h index 5d458863..932272b7 100644 --- a/src/stub/src/include/linux.h +++ b/src/stub/src/include/linux.h @@ -546,8 +546,9 @@ static ssize_t write(int fd, void const *buf, size_t len) void *brk(void *); int close(int); void exit(int) __attribute__((__noreturn__,__nothrow__)); +int ftruncate(int fd, size_t len); +off_t lseek(int fd, off_t offset, int whence); int memfd_create(char const *, unsigned); -void *mmap(void *, size_t, int, int, int, off_t); int munmap(void *, size_t); int mprotect(void const *, size_t, int); int open(char const *, unsigned, unsigned); @@ -557,6 +558,7 @@ ssize_t write(int, void const *, size_t); #endif /*}*/ void __clear_cache(void *, void *); +void *mmap(void *, size_t, int, int, int, off_t); /*************************************************************************