guix/gnu/packages/patches/mpg321-gcc-10.patch
Guillaume Le Vaillant 19c9c266ae
gnu: mpg321: Fix compiling with gcc 10.
* gnu/packages/patches/mpg321-gcc-10.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/mp3.scm (mpg321)[source]: Use it.
2021-09-18 15:31:18 +02:00

84 lines
2.2 KiB
Diff

From f930c3b81bdf9c05152fb005562b3869f6e36f34 Mon Sep 17 00:00:00 2001
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
Date: Thu, 4 Jun 2020 20:41:25 +0300
Subject: [PATCH] Fix GCC10 compilation
---
mpg321.c | 8 ++++++++
mpg321.h | 16 ++++++++--------
2 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/mpg321.c b/mpg321.c
index 19282bb..663882e 100644
--- a/mpg321.c
+++ b/mpg321.c
@@ -63,6 +63,14 @@
#include <pthread.h>
#include <semaphore.h>
+output_frame *Output_Queue;
+decoded_frames *Decoded_Frames;
+int semarray;
+int mad_decoder_position;
+int output_buffer_position;
+double real[FFT_BUFFER_SIZE];
+double imag[FFT_BUFFER_SIZE];
+int loop_remaining;
int pflag = 0;
int volume = 0;
diff --git a/mpg321.h b/mpg321.h
index 798bff0..235cf4a 100644
--- a/mpg321.h
+++ b/mpg321.h
@@ -116,7 +116,7 @@ extern char *playlist_file;
extern int quit_now;
extern char remote_input_buf[PATH_MAX + 5];
extern int file_change;
-int loop_remaining;
+extern int loop_remaining;
extern int status;
extern int scrobbler_time;
@@ -233,8 +233,8 @@ RETSIGTYPE handle_sigchld(int sig);
#define FFT_BUFFER_SIZE_LOG 9
#define FFT_BUFFER_SIZE (1 << FFT_BUFFER_SIZE_LOG) /* 512 */
/*Temporary data stores to perform FFT in */
-double real[FFT_BUFFER_SIZE];
-double imag[FFT_BUFFER_SIZE];
+extern double real[FFT_BUFFER_SIZE];
+extern double imag[FFT_BUFFER_SIZE];
typedef struct {
double real[FFT_BUFFER_SIZE];
@@ -258,10 +258,10 @@ fft_state *fft_init(void);
/* Output buffer process */
void frame_buffer_p();
/* Semaphore array */
-int semarray;
+extern int semarray;
/* Input/Output buffer position */
-int mad_decoder_position;
-int output_buffer_position;
+extern int mad_decoder_position;
+extern int output_buffer_position;
/* Output Frame including needed information */
typedef struct {
unsigned char data[4*1152];
@@ -285,10 +285,10 @@ typedef struct {
} decoded_frames;
/* Output frame queue pointer */
-output_frame *Output_Queue;
+extern output_frame *Output_Queue;
/* Shared total decoded frames */
-decoded_frames *Decoded_Frames;
+extern decoded_frames *Decoded_Frames;
#if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)
/* */
--
2.26.2