Bug 1145 - PV fails to build with gcc 8.0.1, potentially glibmm/libsigc++ related
Summary: PV fails to build with gcc 8.0.1, potentially glibmm/libsigc++ related
Status: RESOLVED WORKSFORME
Alias: None
Product: PulseView
Classification: Unclassified
Component: Other (show other bugs)
Version: unreleased development snapshot
Hardware: All All
: Normal normal
Target Milestone: PulseView 0.6.0
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-03-25 20:52 CEST by Uwe Hermann
Modified: 2019-04-28 21:54 CEST (History)
1 user (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Uwe Hermann 2018-03-25 20:52:29 CEST
This is what I currently get with "-DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8" (gcc 8.0.1, libsigc++ 2.10.0):

(more errors follow, this is just the first one)

[  5%] Building CXX object CMakeFiles/pulseview.dir/main.cpp.o
In file included from /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:49,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from [...]/include/libsigrokcxx/libsigrokcxx.hpp:78,
                 from [...]/pulseview/main.cpp:25:
/usr/include/sigc++-2.0/sigc++/signal.h: In static member function ‘static sigc::internal::signal_emit0<void, sigc::nil>::result_type sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*)’:
/usr/include/sigc++-2.0/sigc++/signal.h:798:56: error: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} to ‘sigc::internal::signal_emit0<void, sigc::nil>::call_type’ {aka ‘void (*)(sigc::internal::slot_rep*)’} [-Werror=cast-function-type]
           (reinterpret_cast<call_type>(slot.rep_->call_))(slot.rep_);
                                                        ^
/usr/include/sigc++-2.0/sigc++/signal.h: In static member function ‘static sigc::internal::signal_emit0<void, sigc::nil>::result_type sigc::internal::signal_emit0<void, sigc::nil>::emit_reverse(sigc::internal::signal_impl*)’:
/usr/include/sigc++-2.0/sigc++/signal.h:825:55: error: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} to ‘sigc::internal::signal_emit0<void, sigc::nil>::call_type’ {aka ‘void (*)(sigc::internal::slot_rep*)’} [-Werror=cast-function-type]
           (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_);
                                                       ^
Comment 1 Uwe Hermann 2018-03-25 23:08:57 CEST
See also: https://github.com/libsigcplusplus/libsigcplusplus/issues/1
Comment 2 Soeren Apel 2018-09-29 15:22:06 CEST
So these bugs aren't PV issues and will be fixed in libsigc++ and we should revisit this bug when the fix has been included in a release (latest release is 2.99.11 as of this writing).
Comment 3 Uwe Hermann 2019-04-28 21:54:37 CEST
Doesn't happen anymore with gcc 8.3.0 and libsigc++ 2.10.1 for example, seems to have been fixed upstream in the mean time.