59 Commits

Author SHA1 Message Date
Francois Gouget
896292a7fe libwine: Like Linux, NetBSD has /proc/self/exe.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-03 12:51:23 +02:00
Francois Gouget
728b6fc5e6 libwine: Fully dereference the /proc/self/exe symbolic link.
Linux will do it for us but not NetBSD. That is, if foo is an executable
that prints the path /proc/self/exe points to, on Linux one gets:

$ ./foo
/tmp/foo
$ ln -s foo bar
$ ln -s bar babar
$ /tmp/babar
/tmp/foo

But on NetBSD one gets instead:

$ ./foo
/tmp/./foo
$ ln -s foo bar
$ ln -s bar babar
$ /tmp/babar
/tmp/babar

Fully dereferencing /proc/self/exe is necessary to be able to run both
32 and 64 bit executables from the build tree.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-03 12:51:16 +02:00
Alexandre Julliard
44dc9d7383 libwine: Remove some conditional code that was only needed for Windows.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 10:43:57 +02:00
Ken Thomases
ecd53057b5 libwine: On Mac, disable ASLR for Wine processes.
ASLR can allow dyld to be loaded where it overlaps one of the regions that the
preloader would like to reserve.  That, in turn, can prevent Wine from using the
shared user data region.  With ASLR disabled, dyld will be loaded immediately
after the preloader, which has a defined base address.

This uses an Apple extension to posix_spawn() that allows it to replace the
calling process's image, like a more featureful execve().  The flag to disable
ASLR is technically private SPI, but has remained stable for many versions of
the OS.  And the Mac preloader is already stepping over that line.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:39:36 +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
Alexandre Julliard
493129d638 libwine: Look for the 64-bit wineserver using the 64-bit loader symlink.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-28 13:24:19 +01:00
Alexandre Julliard
27254d849b libwine: Add a helper function to read a symlink.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-28 13:10:15 +01:00
Alexandre Julliard
4ee9bbc889 libwine: Fall back to the WINELOADER path for the bin directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 13:38:00 +02:00
Alexandre Julliard
56b14d637f libwine: Add a helper function to set the dll directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 13:37:25 +02:00
Alexandre Julliard
161f3fc417 libwine: Add a helper function to set the bin directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 13:32:38 +02:00
Alexandre Julliard
1fa7710ff9 makefiles: Get rid of the DLLPREFIX variable.
Android libraries will be handled differently.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-09 12:12:58 +09:00
Alexandre Julliard
a83c598c79 makefiles: Add support for specifying a prefix for installed library file names. 2013-09-26 14:35:45 +02:00
Alexandre Julliard
2b2bf64d3b libwine: Put the server directory inside the wineprefix on Android. 2013-09-16 12:51:11 +02:00
Alexandre Julliard
876189a405 libwine: Don't add a user id to the server directory if not supported. 2013-09-16 12:43:07 +02:00
Alexandre Julliard
16c8ca8082 libwine: Use the argv[0] directory as bin directory only if all other methods fail. 2013-09-16 12:34:44 +02:00
Alexandre Julliard
cbdc795515 libwine: Avoid memrchr. 2012-06-06 12:39:48 +02:00
André Hentschel
57de68e876 libwine: Improve bin directory detection on kFreeBSD and DragonFly BSD. 2012-06-05 10:24:31 +02:00
Damjan Jovanovic
c296d1fbe1 libwine: Improve bin directory detection on FreeBSD. 2012-06-04 12:17:55 +02:00
Alexandre Julliard
b46ea8a5b8 libwine: Avoid compiler warnings for Mingw builds. 2012-01-17 15:02:45 +01:00
Gerald Pfeifer
11e811411c libwine: Always build preloading code. 2012-01-17 11:52:19 +01:00
Alexandre Julliard
06f76236d1 libwine: Fall back to normal exec if the preloader doesn't exist. 2011-01-13 19:56:12 +01:00
Alexandre Julliard
5af634fd3b libwine: Use the 64-bit preloader when starting 64-bit wine. 2010-12-16 20:02:18 +01:00
Marko Nikolic
0ffb137d4a libwine: Removed sign comparison warning. 2010-07-26 18:38:32 +02:00
Alexandre Julliard
995e553715 libwine: Determine the bin directory independently from the lib directory if possible.
Prefer the bin directory when getting the data dir location.
2009-08-25 14:29:32 +02:00
Alexandre Julliard
d2a426a6ab libwine: Don't try to use the preloader on non-i386. 2008-12-12 10:19:54 +01:00
Alexandre Julliard
662718160e libwine: Allow to specify a non-existing directory as WINEPREFIX. 2008-04-21 15:48:12 +02:00
Alexandre Julliard
8505f1429d libwine: Export functions that return the Wine version number and build id. 2008-03-26 23:38:36 +01:00
Paul Millar
8d571e28f1 libwine: Fix naked getuid() to allow compilation under MinGW. 2007-11-12 11:39:52 +01:00
Alexandre Julliard
65d865d963 libwine: Refuse to use a WINEPREFIX dir owned by a different user. 2007-11-08 12:21:10 +01:00
Andrew Talbot
4125821a99 winelib: Replace inline static with static inline. 2007-03-27 12:38:06 +02:00
Detlef Riekenberg
1c559eb474 libs/wine: Use xstrdup to avoid duplicate code. 2007-03-17 19:50:48 +01:00
Alexandre Julliard
6406f60ff3 libwine: Avoid a compiler warning on Solaris. 2006-09-12 11:01:57 +02:00
Alexandre Julliard
e43cec76d1 libwine: Remove one more directory level when checking for build dir.
This way it still works if the libdir we got was libs/wine instead of libs.
2006-06-19 22:45:28 +02:00
Alexandre Julliard
3fb4b32949 libwine: Fixed a compiler warning on MacOSX. 2006-06-15 14:14:26 +02:00
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Mike McCormack
f7679b4594 libwine: Fix a memory leak. 2006-04-07 11:45:53 +02:00
Alexandre Julliard
5ff1004c4d libwine: Export wine_get_build_dir. 2006-03-16 17:36:19 +01:00
Alexandre Julliard
bf566139d7 libwine: Added support for executing wine binaries out of the build dir. 2006-03-16 17:35:32 +01:00
Alexandre Julliard
77b3b92eb2 libwine: Added detection for Wine being run out of the build directory. 2006-03-16 17:35:14 +01:00
Alexandre Julliard
2f026d1694 libwine: Export a function to retrieve the data directory (based on a
patch by Dmitry Timoshkov).
2006-03-06 18:50:15 +01:00
Alexandre Julliard
1269f43c5a libwine: Add the runtime library path to the front of the dll paths list. 2006-02-17 17:39:44 +01:00
Alexandre Julliard
e95a2c2111 libwine: Set the default bindir and dlldir from argv0 if dladdr is not available.
Added dependency on $(RELPATH).
2006-02-17 14:08:19 +01:00
Alexandre Julliard
8b5e11c341 libwine: Compute relative paths for bin and dll directories at compile time. 2006-02-17 11:43:10 +01:00
Alexandre Julliard
9dffd134dd libwine: Try the current load path in priority before the
WINELOADER/WINESERVER environment variables in wine_exec_wine_binary.
2006-02-16 20:26:55 +01:00
Alexandre Julliard
767ad69a45 libwine: Don't rely on argv[0] in wine_exec_wine_binary if we can get
the directory from the library itself.
Only try the hardcoded BINDIR if everything else failed.
2006-02-16 20:06:20 +01:00
Alexandre Julliard
ca6fd0d4ec libwine: Only use the library directory if it's an absolute path. 2006-02-16 20:03:06 +01:00
Alexandre Julliard
0b34fb3656 libwine: Use dladdr if supported to get the run-time path of libwine.so
and define the default dll and bin directories relative to it.
2006-02-11 22:38:44 +01:00
Alexandre Julliard
6c1494b19c Fix long standing regression in the building of the server directory
name (found by Nigel Rowe).
2004-12-20 18:55:18 +00:00
Steven Edwards
e7c3ab1874 Check for getuid and avoid the use of it in libwine if we don't have
it.
2004-10-04 20:45:49 +00:00
Alexandre Julliard
531dbbd8e7 Base the server directory name on the uid, not the username. 2004-09-27 20:50:37 +00:00