diff options
| -rw-r--r-- | configure.ac | 6 | ||||
| -rw-r--r-- | src/Makefile.am | 4 | ||||
| -rw-r--r-- | src/daemon/main.c | 22 | 
3 files changed, 8 insertions, 24 deletions
diff --git a/configure.ac b/configure.ac index 9c96d1c5..cc7f674a 100644 --- a/configure.ac +++ b/configure.ac @@ -113,6 +113,12 @@ CC_CHECK_LDFLAGS([${tmp_ldflag}],      [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])  AC_SUBST([VERSIONING_LDFLAGS]) +dnl Use immediate (now) bindings; avoids the funky re-call in itself +dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too +dnl  other linkes might be added later +CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"]) +AC_SUBST([IMMEDIATE_LDFLAGS]) +  dnl Check for the proper way to build libraries that have no undefined  dnl symbols; on some hosts this needs to be avoided but the macro  dnl takes care of it. diff --git a/src/Makefile.am b/src/Makefile.am index 7ebf1f8a..ac627c84 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -183,9 +183,9 @@ PREOPEN_LIBS = $(modlibexec_LTLIBRARIES)  endif  if FORCE_PREOPEN -pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) -dlpreopen force $(foreach f,$(PREOPEN_LIBS),-dlpreopen $(f)) +pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(IMMEDIATE_LDFLAGS) -dlpreopen force $(foreach f,$(PREOPEN_LIBS),-dlpreopen $(f))  else -pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) -dlopen force $(foreach f,$(PREOPEN_LIBS),-dlopen $(f)) +pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(IMMEDIATE_LDFLAGS) -dlopen force $(foreach f,$(PREOPEN_LIBS),-dlopen $(f))  endif  ################################### diff --git a/src/daemon/main.c b/src/daemon/main.c index eb378d24..0f6fc907 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -401,28 +401,6 @@ int main(int argc, char *argv[]) {      pa_log_set_level(PA_LOG_NOTICE);      pa_log_set_flags(PA_LOG_COLORS|PA_LOG_PRINT_FILE|PA_LOG_PRINT_LEVEL, PA_LOG_RESET); -#if defined(__linux__) && defined(__OPTIMIZE__) -    /* -       Disable lazy relocations to make usage of external libraries -       more deterministic for our RT threads. We abuse __OPTIMIZE__ as -       a check whether we are a debug build or not. -    */ - -    if (!getenv("LD_BIND_NOW")) { -        char *rp; - -        /* We have to execute ourselves, because the libc caches the -         * value of $LD_BIND_NOW on initialization. */ - -        pa_set_env("LD_BIND_NOW", "1"); - -        if ((rp = pa_readlink("/proc/self/exe"))) -            pa_assert_se(execv(rp, argv) == 0); -        else -            pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?"); -    } -#endif -      if ((e = getenv("PULSE_PASSED_FD"))) {          passed_fd = atoi(e);  | 
