Hello,
Patch attached that should fix this.
Regards,
Remon
2016-01-20 5:37 GMT+01:00 Martin Michlmayr <[email protected]>:
> Package: traverso
> Version: 0.49.4-1
> Severity: important
> User: [email protected]
> Usertags: ftbfs-gcc-6
>
> This package fails to build with GCC 6. GCC 6 has not been released
> yet, but it's expected that GCC 6 will become the default compiler for
> stretch.
>
> Note that only the first error is reported; there might be more. You
> can find a snapshot of GCC 6 in experimental. To build with GCC 6,
> you can set CC=gcc-6 CXX=g++-6 explicitly.
>
> You may be able to find out more about this issue at
> https://gcc.gnu.org/gcc-6/changes.html
>
> > sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
> ...
> > Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -Wall -fPIC
> -msse -mfpmath=sse -o
> CMakeFiles/traversosheetcanvas.dir/PluginChainView.o -c
> /<<PKGBUILDDIR>>/src/sheetcanvas/PluginChainView.cpp
> > In file included from /<<PKGBUILDDIR>>/src/plugins/PluginChain.cpp:26:0:
> > /<<PKGBUILDDIR>>/src/common/Tsar.h: At global scope:
> > /<<PKGBUILDDIR>>/src/common/Tsar.h:66:12: error: flexible array member
> 'TsarEvent::_a' not at end of 'struct TsarEvent'
> > void* _a[];
> > ^
>
>
diff --git a//home/remon/Traverso/manualdiffs/traverso-0.49.4/src/common/Tsar.h b//home/remon/Traverso/manualdiffs/traverso--0.49.4-gcc6-buildfix/traverso-0.49.4/src/common/Tsar.h
--- a//home/remon/Traverso/manualdiffs/traverso-0.49.4/src/common/Tsar.h
+++ b//home/remon/Traverso/manualdiffs/traverso--0.49.4-gcc6-buildfix/traverso-0.49.4/src/common/Tsar.h
@@ -1,61 +1,61 @@
/*
Copyright (C) 2006 Remon Sijrier
This file is part of Traverso
Traverso 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.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
$Id: Tsar.h,v 1.4 2008/02/11 10:11:52 r_sijrier Exp $
*/
#ifndef TSAR_H
#define TSAR_H
#include <QObject>
#include <QTimer>
#include <QByteArray>
#include "RingBufferNPT.h"
#define THREAD_SAVE_INVOKE(caller, argument, slotSignature) { \
TsarEvent event = tsar().create_event(caller, argument, #slotSignature, ""); \
while (!tsar().add_event(event)) { printf("THREAD_SAVE_INVOKE: failed to add event, trying again\n");} \
}
#define RT_THREAD_EMIT(cal, arg, signalSignature) {\
TsarEvent event; \
event.caller = cal; \
event.argument = arg; \
event.slotindex = -1; \
static int retrievedsignalindex; \
\
if ( ! retrievedsignalindex ) { \
/* the signal index seems to have an offset of 4, so we have to substract 4 from */ \
/* the value returned by caller->metaObject()->indexOfMethod*/ \
retrievedsignalindex = cal->metaObject()->indexOfMethod(#signalSignature) - 4; \
Q_ASSERT(retrievedsignalindex >= 0); \
} \
event.signalindex = retrievedsignalindex; \
event.valid = true; \
tsar().add_rt_event(event); \
}\
#define THREAD_SAVE_INVOKE_AND_EMIT_SIGNAL(caller, argument, slotSignature, signalSignature) { \
TsarEvent event = tsar().create_event(caller, argument, #slotSignature, #signalSignature); \
tsar().add_event(event);\
}\
struct TsarEvent {
@@ -62,8 +62,7 @@
// used for slot invokation stuff
QObject* caller;
void* argument;
- int slotindex;
- void* _a[];
+ int slotindex;
// Used for the signal emiting stuff
int signalindex;
@@ -70,55 +69,55 @@
bool valid;
};
class Tsar : public QObject
{
Q_OBJECT
public:
TsarEvent create_event(QObject* caller, void* argument, const char* slotSignature, const char* signalSignature);
bool add_event(TsarEvent& event);
void add_rt_event(TsarEvent& event);
void process_event_slot(const TsarEvent& event);
void process_event_signal(const TsarEvent& event);
void process_event_slot_signal(const TsarEvent& event);
private:
Tsar();
~Tsar();
Tsar(const Tsar&);
// allow this function to create one instance
friend Tsar& tsar();
// The AudioDevice instance is the _only_ one who
// is allowed to call process_events() !!
friend class AudioDevice;
QList<RingBufferNPT<TsarEvent>*> m_events;
RingBufferNPT<TsarEvent>* oldEvents;
QTimer finishOldEventsTimer;
int m_eventCounter;
int m_retryCount;
#if defined (THREAD_CHECK)
unsigned long m_threadId;
#endif
void process_events();
private slots:
void finish_processed_events();
};
// use this function to access the context pointer
Tsar& tsar();
#endif
//eof