Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
24b26f8b
Commit
24b26f8b
authored
Oct 23, 2021
by
Damjan Jovanovic
Committed by
Alexandre Julliard
Oct 25, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libs/wine: Use sysctl instead of /proc/curproc/file on FreeBSD.
Signed-off-by:
Damjan Jovanovic
<
damjan.jov@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
70f486c2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
2 deletions
+14
-2
config.c
libs/wine/config.c
+14
-2
No files found.
libs/wine/config.c
View file @
24b26f8b
...
...
@@ -28,8 +28,12 @@
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <limits.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifdef HAVE_SYS_SYSCTL_H
# include <sys/sysctl.h>
#endif
#include <unistd.h>
#include <dlfcn.h>
#ifdef HAVE_PWD_H
...
...
@@ -56,8 +60,6 @@ static void fatal_error( const char *err, ... ) __attribute__((noreturn,format(
#if defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
static
const
char
exe_link
[]
=
"/proc/self/exe"
;
#elif defined (__FreeBSD__) || defined(__DragonFly__)
static
const
char
exe_link
[]
=
"/proc/curproc/file"
;
#else
static
const
char
exe_link
[]
=
""
;
#endif
...
...
@@ -141,8 +143,18 @@ static char *symlink_dirname( const char *name )
/* return the directory that contains the main exe at run-time */
static
char
*
get_runtime_exedir
(
void
)
{
#if defined(__FreeBSD__) || defined(__DragonFly__)
static
int
pathname
[]
=
{
CTL_KERN
,
KERN_PROC
,
KERN_PROC_PATHNAME
,
-
1
};
size_t
dir_size
=
PATH_MAX
;
char
*
dir
=
malloc
(
dir_size
);
if
(
dir
&&
!
sysctl
(
pathname
,
sizeof
(
pathname
)
/
sizeof
(
pathname
[
0
]),
dir
,
&
dir_size
,
NULL
,
0
))
return
dir
;
free
(
dir
);
return
NULL
;
#else
if
(
exe_link
[
0
])
return
symlink_dirname
(
exe_link
);
return
NULL
;
#endif
}
/* return the base directory from argv0 */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment