Commit Graph

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