ladish: fix musl build

This commit is contained in:
Michael Gehring 2016-06-06 16:28:08 +02:00
parent 32790404b3
commit 9bf8de1c0a
4 changed files with 175 additions and 0 deletions

View File

@ -0,0 +1,42 @@
--- alsapid/lib.c.orig 2016-06-06 16:35:46.734195397 +0200
+++ alsapid/lib.c 2016-06-06 16:35:54.209195783 +0200
@@ -73,16 +73,29 @@
//static int (* real_snd_seq_create_port)(snd_seq_t * handle, snd_seq_port_info_t * info);
//static int (* real_snd_seq_create_simple_port)(snd_seq_t * seq, const char * name, unsigned int caps, unsigned int type);
-#define CHECK_FUNC(func) \
- if (real_ ## func == NULL) \
- { \
- real_ ## func = dlvsym(RTLD_NEXT, #func, API_VERSION); \
- if (real_ ## func == NULL) \
- { \
- fprintf(stderr, "dlvsym(\""#func"\", \""API_VERSION"\") failed. %s\n", dlerror()); \
- return -1; \
- } \
- }
+#if defined(__GLIBC__)
+ #define CHECK_FUNC(func) \
+ if (real_ ## func == NULL) \
+ { \
+ real_ ## func = dlvsym(RTLD_NEXT, #func, API_VERSION); \
+ if (real_ ## func == NULL) \
+ { \
+ fprintf(stderr, "dlvsym(\""#func"\", \""API_VERSION"\") failed. %s\n", dlerror()); \
+ return -1; \
+ } \
+ }
+#else
+ #define CHECK_FUNC(func) \
+ if (real_ ## func == NULL) \
+ { \
+ real_ ## func = dlsym(RTLD_NEXT, #func); \
+ if (real_ ## func == NULL) \
+ { \
+ fprintf(stderr, "dlsym(\""#func"\") failed. %s\n", dlerror()); \
+ return -1; \
+ } \
+ }
+#endif
#if 0
LADISH_PUBLIC

View File

@ -0,0 +1,29 @@
--- daemon/sigsegv.c.orig 2016-06-06 16:11:21.506119807 +0200
+++ daemon/sigsegv.c 2016-06-06 16:11:26.667120074 +0200
@@ -39,7 +39,9 @@
#include <signal.h>
#include <ucontext.h>
#include <dlfcn.h>
+#if defined(__GLIBC__)
#include <execinfo.h>
+#endif
#include <errno.h>
#ifndef NO_CPP_DEMANGLE
//#include <cxxabi.h>
@@ -154,13 +156,15 @@
ip = bp[1];
bp = (void**)bp[0];
}
-#else
+#elif defined(__GLIBC__)
log_error("Stack trace (non-dedicated):");
sz = backtrace(bt, 20);
strings = backtrace_symbols(bt, sz);
for(i = 0; i < sz; ++i)
log_error("%s", strings[i]);
+#else
+ log_error("Stack trace not available");
#endif
log_error("End of stack trace");
#endif

View File

@ -0,0 +1,21 @@
--- proxies/graph_proxy.h.orig 2016-06-06 16:05:42.186102302 +0200
+++ proxies/graph_proxy.h 2016-06-06 16:06:09.741103724 +0200
@@ -28,7 +28,7 @@
#define GRAPH_PROXY_H__61D1ED56_E33B_4F50_B45B_F520979E8AA7__INCLUDED
#include "common.h"
-
+#include <unistd.h> /* pid_t */
typedef struct graph_proxy_tag { int unused; } * graph_proxy_handle;
#ifdef __cplusplus
--- alsapid/alsapid.h.orig 2016-06-06 16:26:09.314165609 +0200
+++ alsapid/alsapid.h 2016-06-06 16:26:23.903166361 +0200
@@ -28,6 +28,7 @@
#define ALSAPID_H__0A27F284_7538_4791_8023_0FBED929EAF3__INCLUDED
#include "../common.h"
+#include <unistd.h> /* pid_t */
void alsapid_compose_src_link(int alsa_client_id, char * buffer);
void alsapid_compose_dst_link(char * buffer);

View File

@ -0,0 +1,83 @@
--- daemon/loader.c.orig 2016-06-06 16:42:34.970216458 +0200
+++ daemon/loader.c 2016-06-06 16:42:42.293216836 +0200
@@ -59,13 +59,13 @@
bool terminal;
- int stdout;
+ int stdout_fd;
char stdout_buffer[CLIENT_OUTPUT_BUFFER_SIZE];
char stdout_last_line[CLIENT_OUTPUT_BUFFER_SIZE];
unsigned int stdout_last_line_repeat_count;
char * stdout_buffer_ptr;
- int stderr;
+ int stderr_fd;
char stderr_buffer[CLIENT_OUTPUT_BUFFER_SIZE];
char stderr_last_line[CLIENT_OUTPUT_BUFFER_SIZE];
unsigned int stderr_last_line_repeat_count;
@@ -149,8 +149,8 @@
if (!child_ptr->terminal)
{
- close(child_ptr->stdout);
- close(child_ptr->stderr);
+ close(child_ptr->stdout_fd);
+ close(child_ptr->stderr_fd);
}
g_on_child_exit(child_ptr->pid);
@@ -462,7 +462,7 @@
loader_read_child_output(
child_ptr->vgraph_name,
child_ptr->app_name,
- child_ptr->stdout,
+ child_ptr->stdout_fd,
false,
child_ptr->stdout_buffer,
&child_ptr->stdout_buffer_ptr,
@@ -472,7 +472,7 @@
loader_read_child_output(
child_ptr->vgraph_name,
child_ptr->app_name,
- child_ptr->stderr,
+ child_ptr->stderr_fd,
true,
child_ptr->stderr_buffer,
&child_ptr->stderr_buffer_ptr,
@@ -585,9 +585,9 @@
}
else
{
- child_ptr->stderr = stderr_pipe[0];
+ child_ptr->stderr_fd = stderr_pipe[0];
- if (fcntl(child_ptr->stderr, F_SETFL, O_NONBLOCK) == -1)
+ if (fcntl(child_ptr->stderr_fd, F_SETFL, O_NONBLOCK) == -1)
{
log_error("Failed to set nonblocking mode on "
"stderr reading end: %s",
@@ -603,7 +603,7 @@
if (!run_in_terminal)
{
/* We need pty to disable libc buffering of stdout */
- pid = forkpty(&child_ptr->stdout, NULL, NULL, NULL);
+ pid = forkpty(&child_ptr->stdout_fd, NULL, NULL, NULL);
}
else
{
@@ -650,12 +650,12 @@
/* In parent, close unused writing ends of pipe */
close(stderr_pipe[1]);
- if (fcntl(child_ptr->stdout, F_SETFL, O_NONBLOCK) == -1)
+ if (fcntl(child_ptr->stdout_fd, F_SETFL, O_NONBLOCK) == -1)
{
log_error("Could not set noblocking mode on stdout "
"- pty: %s", strerror(errno));
close(stderr_pipe[0]);
- close(child_ptr->stdout);
+ close(child_ptr->stdout_fd);
}
}