From c296d1fbe1b551c7cf7c159a03c9198592dbae73 Mon Sep 17 00:00:00 2001 From: Damjan Jovanovic <damjan.jov@gmail.com> Date: Sun, 3 Jun 2012 12:26:30 +0200 Subject: [PATCH] libwine: Improve bin directory detection on FreeBSD. --- libs/wine/config.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libs/wine/config.c b/libs/wine/config.c index 035c2685347..031850b5dc7 100644 --- a/libs/wine/config.c +++ b/libs/wine/config.c @@ -53,6 +53,12 @@ static void fatal_error( const char *err, ... ) __attribute__((noreturn,format( static void fatal_perror( const char *err, ... ) __attribute__((noreturn,format(printf,1,2))); #endif +#ifdef __linux__ +#define EXE_LINK "/proc/self/exe" +#elif defined (__FreeBSD__) +#define EXE_LINK "/proc/curproc/file" +#endif + /* die on a fatal error */ static void fatal_error( const char *err, ... ) { @@ -151,12 +157,12 @@ static char *get_runtime_bindir( const char *argv0 ) char *p, *bindir, *cwd; int len, size; -#ifdef linux +#ifdef EXE_LINK for (size = 256; ; size *= 2) { int ret; if (!(bindir = malloc( size ))) break; - if ((ret = readlink( "/proc/self/exe", bindir, size )) == -1) break; + if ((ret = readlink( EXE_LINK, bindir, size )) == -1) break; if (ret != size) { if (!(p = memrchr( bindir, '/', ret ))) break; -- GitLab