Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1074,6 +1074,12 @@ case $host_os in
esac
;;
esac

# Stamp $ORIGIN in the default rpath so musl loads sibling DLLs. glibc doesn't need this: the
# DLLs were already loaded by absolute path and glibc recognises them as the same (based on
# basename).
# Must come last. Value ends up in a makefile, hence the double dollar.
WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"])
;;
esac

Expand Down
5 changes: 5 additions & 0 deletions dlls/ntdll/unix/loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@
#include <sys/wait.h>
#include <unistd.h>
#include <malloc.h>
#ifndef M_PERTURB
/* musl does not implement mallopt(). Only used for debugging; use a no-op. */
#define M_PERTURB 0
static inline int mallopt( int param, int value ) { return 1; }
#endif
#include <dlfcn.h>
#ifdef HAVE_PWD_H
# include <pwd.h>
Expand Down
1 change: 1 addition & 0 deletions dlls/winegstreamer/media-converter/media-converter.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include <inttypes.h>
#include <unistd.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/stat.h>

#include "unix_private.h"
Expand Down
3 changes: 3 additions & 0 deletions loader/preloader.c
Original file line number Diff line number Diff line change
Expand Up @@ -1515,7 +1515,10 @@ void* wld_start( void **stack )
/* expose ld.so _r_debug as a separate namespace in r_next */
ld_so_r_debug = find_symbol( &ld_so_map, "_r_debug", STT_OBJECT );
if (ld_so_r_debug) _r_debug.r_next = (struct wld_r_debug_extended *)ld_so_r_debug;
#ifdef __GLIBC__
/* musl has no _r_debug; ignore */
else wld_printf( "_r_debug not found in ld.so\n" );
#endif

_r_debug_state(); /* notify GDB that _r_debug is ready */

Expand Down