mkrufky/libdvbtee

build failure with gcc 6.1

rdp opened this issue · 5 comments

rdp commented

Seemed to work OK with 5.x :)

libtool: compile: i686-w64-mingw32-g++ -DHAVE_CONFIG_H -I. -I../.. -I.. -I../value -I./table -I./descriptor -DFORCE_DECODER_LINKAGE -g -O2 -MT table/tabl_02.lo -MD -MP -MF table/.deps/tabl_02.Tpo -c table/tabl_02.cpp -o table/tabl_02.o
In file included from ../decode/descriptor/descriptor.h:33:0,
from ../decode/table/table.h:28,
from ../decode.h:29,
from ../functions.h:31,
from table/tabl_00.cpp:26:
table/tabl_00.cpp: In member function 'void dvbtee::decode::pat::store(const dvbpsi_pat_t_)':
../log.h:50:50: error: unable to find string literal operator 'operator""CLASS_MODULE' with 'const char [13]', 'unsigned int' arguments
__printf(stderr, "%d "CLASS_MODULE"::%s: " fmt "\n",
^
../log.h:46:47: note: in definition of macro '__printf'
#define __printf(fd, fmt, arg...) fprintf(fd, fmt, ##arg)
^~~
table/tabl_00.cpp:34:30: note: in expansion of macro '__dPrintf'
#define dPrintf(fmt, arg...) __dPrintf(DBG_DECODE, fmt, ##arg)
^~~~~~~~~
table/tabl_00.cpp:78:2: note: in expansion of macro 'dPrintf'
dPrintf("%s", toJson().c_str());
^
Makefile:640: recipe for target 'table/tabl_00.lo' failed
make[2]: ** [table/tabl_00.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from ../decode/descriptor/descriptor.h:33:0,
from ../decode/table/table.h:28,
from ../decode.h:29,
from ../functions.h:31,
from table/tabl_02.cpp:26:
table/tabl_02.cpp: In member function 'void dvbtee::decode::pmt::store(const dvbpsi_pmt_t
)':
../log.h:50:50: error: unable to find string literal operator 'operator""CLASS_MODULE' with 'const char [13]', 'unsigned int' arguments
__printf(stderr, "%d "CLASS_MODULE"::%s: " fmt "\n",
^
../log.h:46:47: note: in definition of macro '__printf'
#define __printf(fd, fmt, arg...) fprintf(fd, fmt, ##arg)
^~~
table/tabl_02.cpp:34:30: note: in expansion of macro '_dPrintf'
#define dPrintf(fmt, arg...) dPrintf(DBG_DECODE, fmt, ##arg)
^~~~~~~~~
table/tabl_02.cpp:78:2: note: in expansion of macro 'dPrintf'
dPrintf("%s", toJson().c_str());
^
table/tabl_02.cpp: In static member function 'static bool dvbtee::decode::pmt::ingest(dvbtee::decode::TableStore
, const dvbpsi_pmt_t
, dvbtee::decode::TableWatcher
)':
../log.h:50:50: error: unable to find string literal operator 'operator""CLASS_MODULE' with 'const char [62]', 'unsigned int' arguments
__printf(stderr, "%d "CLASS_MODULE"::%s: " fmt "\n",
^
../log.h:46:47: note: in definition of macro '__printf'
#define __printf(fd, fmt, arg...) fprintf(fd, fmt, ##arg)
^~~
table/tabl_02.cpp:34:30: note: in expansion of macro '__dPrintf'
#define dPrintf(fmt, arg...) __dPrintf(DBG_DECODE, fmt, ##arg)
^~~~~~~~~
table/tabl_02.cpp:145:5: note: in expansion of macro 'dPrintf'
dPrintf("PMT v%d, service_id %d, pcr_pid %d: ALREADY DECODED", t->i_version, t->i_program_number, t->i_pcr_pid);
^
Makefile:640: recipe for target 'table/tabl_02.lo' failed

Thanks for reporting this. It looks like GCC 6 isn't happy with some macros. I'll set up a dev environment with GCC 6.1 later on and see what needs to be done to fix this.

I'll try to have a fix merged over the weekend.

@rdp this is fixed now in the master branch. Thanks again for reporting!

rdp commented

It does get much farther now, thanks!

Now I get this different thing:

libtool: compile: i686-w64-mingw32-g++ -DHAVE_CONFIG_H -I. -I../.. -I.. -I../value -I./table -I./descriptor -DFORCE_DECODER_LINKAGE -g -O2 -MT table/tabl_02.lo -MD -MP -MF table/.deps/tabl_02.Tpo -c table/tabl_02.cpp -o table/tabl_02.o
In file included from ../decode/descriptor/descriptor.h:33:0,
from ../decode/table/table.h:28,
from ../decode.h:29,
from ../functions.h:31,
from table/tabl_02.cpp:26:
../log.h:29:24: fatal error: features.h: No such file or directory

include <features.h>

                    ^

compilation terminated.
Makefile:640: recipe for target 'table/tabl_02.lo' failed

(with either versions of gcc)

Thank you!

...and that's fixed in the master branch now, too. Try again, @rdp ?

rdp commented

OK the initial failure is gone now, and it builds in gcc 5 again thank you! There appears to be a new different failure now, I'll log it in a separate bug :)