Commit Graph

73 Commits

Author SHA1 Message Date
Alexandre Julliard 28d7d5ba93 loader: Avoid including wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-20 16:16:07 +02:00
Martin Storsjö 29922c2276 loader: Add support for ARM linux in the preloader.
Since 28fe84da45, the main exe image
must be mappable at its desired base address, which essentially
requires the preloader.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51539
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-05 23:11:23 +02:00
Alexandre Julliard d5a372abbb include: Move inline assembly definitions to a new wine/asm.h header.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 13:45:07 +02:00
Alexandre Julliard df8c5a37ec loader: Duplicate some preloader code instead of trying to share it.
This mostly reverts bd2d795240.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-05 22:33:43 +01:00
Sebastian Lackner a0ab2a7b0c loader: Implement preloader for macOS.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 11:10:09 +01:00
Ken Thomases bd2d795240 loader: Move some code in preparation for adding the Mac preloader.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 11:03:46 +01:00
Alexandre Julliard a2d76cb43f loader: Don't add the AT_UID entries if they don't already exist.
geteuid() etc. are broken on Android.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 18:04:48 +01:00
André Hentschel c08e5560c4 loader: Setup the TLS register on ARM64.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-16 14:04:10 +01:00
André Hentschel ebcac6d8f1 loader: Remove dead code.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-16 14:03:48 +01:00
Austin English 039d267b09 preloader: Fix a typo in error message.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-01 23:16:08 +01:00
André Hentschel 0ad8bb4ecf loader: Don't warn for limited user address space on ARM64.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-25 10:26:48 +02:00
André Hentschel 27e92e550c loader: Build the preloader for ARM64.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-25 10:26:18 +02:00
Alexandre Julliard 9f06a197c8 preloader: Add a fallback to the old mmap syscall just in case.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-02 20:06:25 +02:00
Alexandre Julliard 60fb3d4b64 preloader: Fix symbol lookup for dynamic libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-27 15:04:51 +02:00
Alexandre Julliard 45a632ee81 preloader: Use the SYS_mmap2 system call instead of the old SYS_mmap one.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-27 15:04:03 +02:00
Alexandre Julliard 1172754fcb preloader: Add a debug option to dump memory maps.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-27 15:03:46 +02:00
Keno Fischer 5f38bfed7c preloader: Add proper CFI instructions to _start functions.
Signed-off-by: Keno Fischer <keno@juliacomputing.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-16 23:26:11 +09:00
Qian Hong 33765285c5 loader: Fix wld_prctl prototype.
Spotted by Robert O'Callahan.

Signed-off-by: Qian Hong <qhong@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-04 13:13:31 +09:00
Alexandre Julliard 8b4ed00b59 loader: Avoid ELF32_ST_INFO macro that is missing on Android. 2014-07-24 20:34:39 +02:00
Alexandre Julliard 1ecfff38bd loader: ELF hash table entries are always 32-bit on Linux. 2013-07-30 14:43:33 +02:00
Alexandre Julliard 097867debd loader: Rename the elf_hash function to avoid conflicts. 2013-02-13 17:19:43 +01:00
Alexandre Julliard 3b8ab28c40 loader: Define our own auxv structure. 2013-02-13 17:19:42 +01:00
Alexandre Julliard 6f1932dbca loader: Hardcode Linux syscall numbers. 2013-01-21 16:00:07 +01:00
Eric Pouech 7b544af170 loader: Protect preloader against ELF file without loadable segments (clang). 2011-03-28 17:24:53 +02:00
Alexandre Julliard 7e112c2917 loader: Setup the TLS register on x86-64 for stack protector checks. 2010-12-21 19:38:27 +01:00
Alexandre Julliard 61d2d80795 loader: Define asm functions instead of inlines for x86-64 syscalls to avoid trouble with register constraints. 2010-12-18 12:33:29 +01:00
Alexandre Julliard 0a0862001b loader: Build the preloader for x86-64. 2010-12-16 17:59:24 +01:00
Alexandre Julliard fe031c937d loader: Use long instead of int in the preloader for anything that can store a pointer. 2010-12-16 16:53:24 +01:00
Alexandre Julliard 144cb78dba loader: Make sure the new stack is 16-byte aligned in the preloader. 2010-12-16 16:52:02 +01:00
Harald Hoyer 2bea45dd0a preloader: Fix moving of auxiliary values. 2010-07-29 17:33:35 +02:00
Austin English df9fda760e loader: Remove mapat from map_so_lib, where it is unused. 2010-05-28 12:31:12 +02:00
Alexandre Julliard fa6ffb4d5d Fix empty function prototypes. 2009-10-07 12:24:53 +02:00
Alexandre Julliard 4d35f3f270 preloader: Reserve addresses only up to 0x68000000, that should be enough for ole32. 2009-07-01 16:03:56 +02:00
Alexandre Julliard 8d833ee2e7 loader: Reserve some more memory to cover the native ole32 addresses. 2009-06-25 14:34:11 +02:00
Stefan Reimer 3dcd1285f1 loader: Fix build with gcc-4.3 and ssp. 2009-01-04 13:33:01 +01:00
Alexandre Julliard 912e4d4def loader: Reserve some space for the virtual heap too. 2008-11-07 11:05:38 +01:00
Alexandre Julliard 7a4d575029 preloader: Silence the warning for the low 64k. 2008-05-05 19:46:15 +02:00
Alexandre Julliard 195ca1e85f preloader: Reserve low memory areas in separate chunks. 2008-04-14 20:38:17 +02:00
Francois Gouget d8c41a25da Spelling fix in the ldt bitfields. 2008-04-14 12:40:22 +02:00
Joris Huizer e1e54d1ee7 preloader: sign-compare fix. 2007-03-05 15:31:56 +01:00
Alexandre Julliard 092ac1fbf5 preloader: Added printf format checking and fix some formats. 2007-01-11 12:46:06 +01:00
Alexandre Julliard 13029a2536 preloader: Remove reserved ranges that we failed to allocate. 2007-01-11 12:35:42 +01:00
Alexandre Julliard 4d9f3dfae1 preloader: Reset both AT_SYSINFO and AT_SYSINFO_EHDR when one of them conflicts. 2007-01-02 12:21:45 +01:00
Alexandre Julliard 4c4094e86e preloader: Clear %gs again before calling the interpreter entry point. 2006-11-04 20:25:06 +01:00
Alexandre Julliard a68d293bae preloader: Setup a fake thread-local storage block pointed to by %gs. 2006-11-03 13:55:41 +01:00
Alexandre Julliard 30a3866b78 preloader: Added support for the new style DT_GNU_HASH symbol table. 2006-07-31 21:02:38 +02:00
Alexandre Julliard 51d8482222 preloader: Fixed type checking in symbol lookup. 2006-07-31 17:44:20 +02:00
Alexandre Julliard 8aab67d238 preloader: Properly use the ELF hash table when looking up a symbol. 2006-07-31 17:44:20 +02:00
Alexandre Julliard e325efbd8d preloader: Allocate more space in low memory as well as for top-down allocations. 2006-07-24 15:25:39 +02:00
Alexandre Julliard 875b5db17b preloader: Make sure the WINEPRELOADRESERVE area doesn't overlap the low memory area. 2006-07-19 15:06:16 +02:00