You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

49 lines
1.7 KiB

--- a/motion.c
+++ b/motion.c
@@ -2630,6 +2630,17 @@ int main (int argc, char **argv)
struct sigaction sigchild_action;
setup_signals(&sig_handler_action, &sigchild_action);
+ /*
+ * Create and a thread attribute for the threads we spawn later on.
+ * PTHREAD_CREATE_DETACHED means to create threads detached, i.e.
+ * their termination cannot be synchronized through 'pthread_join'.
+ */
+ pthread_attr_init(&thread_attr);
+ pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
+
+ /* Create the TLS key for thread number. */
+ pthread_key_create(&tls_key_threadnr, NULL);
+
motion_startup(1, argc, argv);
#ifdef HAVE_FFMPEG
@@ -2648,17 +2659,6 @@ int main (int argc, char **argv)
if (cnt_list[0]->conf.setup_mode)
MOTION_LOG(NTC, TYPE_ALL, NO_ERRNO, "%s: Motion running in setup mode.");
- /*
- * Create and a thread attribute for the threads we spawn later on.
- * PTHREAD_CREATE_DETACHED means to create threads detached, i.e.
- * their termination cannot be synchronized through 'pthread_join'.
- */
- pthread_attr_init(&thread_attr);
- pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
-
- /* Create the TLS key for thread number. */
- pthread_key_create(&tls_key_threadnr, NULL);
-
do {
if (restart) {
/*
--- a/motion.h
+++ b/motion.h
@@ -84,7 +84,7 @@
#endif
/* strerror_r() XSI vs GNU */
-#if (defined(BSD)) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
+#if (defined(BSD)) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE) || (!defined(__GLIBC__))
#define XSI_STRERROR_R
#endif