mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudio
This commit is contained in:
commit
41ad33dfe7
4 changed files with 18 additions and 25 deletions
|
|
@ -113,6 +113,12 @@ CC_CHECK_LDFLAGS([${tmp_ldflag}],
|
||||||
[VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
|
[VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
|
||||||
AC_SUBST([VERSIONING_LDFLAGS])
|
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 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 symbols; on some hosts this needs to be avoided but the macro
|
||||||
dnl takes care of it.
|
dnl takes care of it.
|
||||||
|
|
@ -388,6 +394,7 @@ AC_SEARCH_LIBS([timer_create], [rt])
|
||||||
|
|
||||||
# BSD
|
# BSD
|
||||||
AC_SEARCH_LIBS([connect], [socket])
|
AC_SEARCH_LIBS([connect], [socket])
|
||||||
|
AC_SEARCH_LIBS([backtrace], [execinfo])
|
||||||
|
|
||||||
# Non-standard
|
# Non-standard
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -183,9 +183,9 @@ PREOPEN_LIBS = $(modlibexec_LTLIBRARIES)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if FORCE_PREOPEN
|
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
|
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
|
endif
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
|
|
|
||||||
|
|
@ -405,28 +405,6 @@ int main(int argc, char *argv[]) {
|
||||||
pa_log_set_level(PA_LOG_NOTICE);
|
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);
|
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"))) {
|
if ((e = getenv("PULSE_PASSED_FD"))) {
|
||||||
passed_fd = atoi(e);
|
passed_fd = atoi(e);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -212,8 +212,8 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, u
|
||||||
pa_tagstruct_getu32(t, &i.ports[0][j].priority) < 0) {
|
pa_tagstruct_getu32(t, &i.ports[0][j].priority) < 0) {
|
||||||
|
|
||||||
pa_context_fail(o->context, PA_ERR_PROTOCOL);
|
pa_context_fail(o->context, PA_ERR_PROTOCOL);
|
||||||
pa_xfree(i.ports);
|
|
||||||
pa_xfree(i.ports[0]);
|
pa_xfree(i.ports[0]);
|
||||||
|
pa_xfree(i.ports);
|
||||||
pa_proplist_free(i.proplist);
|
pa_proplist_free(i.proplist);
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
@ -250,6 +250,10 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, u
|
||||||
cb(o->context, &i, 0, o->userdata);
|
cb(o->context, &i, 0, o->userdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i.ports) {
|
||||||
|
pa_xfree(i.ports[0]);
|
||||||
|
pa_xfree(i.ports);
|
||||||
|
}
|
||||||
pa_proplist_free(i.proplist);
|
pa_proplist_free(i.proplist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -479,6 +483,10 @@ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command,
|
||||||
cb(o->context, &i, 0, o->userdata);
|
cb(o->context, &i, 0, o->userdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i.ports) {
|
||||||
|
pa_xfree(i.ports[0]);
|
||||||
|
pa_xfree(i.ports);
|
||||||
|
}
|
||||||
pa_proplist_free(i.proplist);
|
pa_proplist_free(i.proplist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue