me
/
guix
Archived
1
0
Fork 0

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.
master
Guillaume Le Vaillant 2021-09-18 15:31:18 +02:00
parent 642fcb1d08
commit 19c9c266ae
No known key found for this signature in database
GPG Key ID: 6BE8208ADF21FE3F
3 changed files with 87 additions and 1 deletions

View File

@ -1454,6 +1454,7 @@ dist_patch_DATA = \
%D%/packages/patches/mit-krb5-hurd.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/mpg321-CVE-2019-14247.patch \
%D%/packages/patches/mpg321-gcc-10.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
%D%/packages/patches/monero-use-system-miniupnpc.patch \
%D%/packages/patches/mono-mdoc-timestamping.patch \

View File

@ -9,6 +9,7 @@
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -412,7 +413,8 @@ command-line tool as well as a C library, libmpg123.")
(base32
"0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5"))
(patches
(search-patches "mpg321-CVE-2019-14247.patch"))))
(search-patches "mpg321-CVE-2019-14247.patch"
"mpg321-gcc-10.patch"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--disable-alsa")))
(inputs

View File

@ -0,0 +1,83 @@
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