bat: Avoid local signal.h file Patch backported from upstream: http://git.alsa-project.org/?p=alsa-utils.git;a=commit;h=3bf8e79c3bfee3ca14277aad3d9c406dfc053bbf Signed-off-by: Vicente Olivert Riera From 3bf8e79c3bfee3ca14277aad3d9c406dfc053bbf Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 9 Nov 2015 14:04:11 +0100 Subject: [PATCH 1/2] bat: Avoid local signal.h file The local header file named as "signal.h" causes mysterious compile error when built with an old glibc. signal.h:27: error: conflicting types for 'sin_generator_init' ./signal.h:27: error: previous declaration of 'sin_generator_init' was here signal.h:28: error: conflicting types for 'sin_generator_next_sample' ./signal.h:28: error: previous declaration of 'sin_generator_next_sample' was here .... This turned out to be the conflict of signal.h; namely, pthread.h that is included before our local signal.h also includes "pthread.h". Since our local "signal.h" has a higher priority, it gets loaded instead of the expected pthread's one. Then we load it again, and it screws up. Although it's basically a bug of pthread, it's anyway not good to have a header file conflicting with the standard header file. So, let's name it more explicitly as specific to BAT, bat-signal.h, for avoiding such a conflict. Signed-off-by: Takashi Iwai --- bat/Makefile.am | 2 +- bat/alsa.c | 2 +- bat/bat-signal.h | 30 ++++++++++++++++++++++++++++++ bat/signal.h | 30 ------------------------------ 4 files changed, 32 insertions(+), 32 deletions(-) create mode 100644 bat/bat-signal.h delete mode 100644 bat/signal.h diff --git a/bat/Makefile.am b/bat/Makefile.am index 842ae6b..f0dc5ab 100644 --- a/bat/Makefile.am +++ b/bat/Makefile.am @@ -13,7 +13,7 @@ bat_SOURCES = \ noinst_HEADERS = \ common.h \ - signal.h \ + bat-signal.h \ alsa.h \ convert.h \ analyze.h diff --git a/bat/alsa.c b/bat/alsa.c index 582c604..d31a633 100644 --- a/bat/alsa.c +++ b/bat/alsa.c @@ -27,7 +27,7 @@ #include "common.h" #include "alsa.h" -#include "signal.h" +#include "bat-signal.h" struct pcm_container { snd_pcm_t *handle; diff --git a/bat/bat-signal.h b/bat/bat-signal.h new file mode 100644 index 0000000..a295517 --- /dev/null +++ b/bat/bat-signal.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2015 Caleb Crome + * Copyright (C) 2013-2015 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/* + * Here's a generic sine wave generator that will work indefinitely + * for any frequency. + * + * Note: the state & phasor are stored as doubles (and updated as + * doubles) because after a million samples the magnitude drifts a + * bit. If we really need floats, it can be done with periodic + * renormalization of the state_real+state_imag magnitudes. + */ + +int sin_generator_init(struct sin_generator *, float, float, float); +float sin_generator_next_sample(struct sin_generator *); +void sin_generator_vfill(struct sin_generator *, float *, int); +int generate_sine_wave(struct bat *, int, void *); diff --git a/bat/signal.h b/bat/signal.h deleted file mode 100644 index a295517..0000000 --- a/bat/signal.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2015 Caleb Crome - * Copyright (C) 2013-2015 Intel Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -/* - * Here's a generic sine wave generator that will work indefinitely - * for any frequency. - * - * Note: the state & phasor are stored as doubles (and updated as - * doubles) because after a million samples the magnitude drifts a - * bit. If we really need floats, it can be done with periodic - * renormalization of the state_real+state_imag magnitudes. - */ - -int sin_generator_init(struct sin_generator *, float, float, float); -float sin_generator_next_sample(struct sin_generator *); -void sin_generator_vfill(struct sin_generator *, float *, int); -int generate_sine_wave(struct bat *, int, void *); -- 2.4.10