Bug 1281 - Build fails with glib 2.58.0 on macOS
Summary: Build fails with glib 2.58.0 on macOS
Status: RESOLVED WORKSFORME
Alias: None
Product: PulseView
Classification: Unclassified
Component: Build system (show other bugs)
Version: unreleased development snapshot
Hardware: x86 Mac OS X
: Normal normal
Target Milestone: ---
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-16 22:36 CEST by stronglytyp3d
Modified: 2019-07-01 01:29 CEST (History)
3 users (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description stronglytyp3d 2018-09-16 22:36:12 CEST
Hello,

I am able to compile pulseview with glib 2.56.1 and 2.56.2, but not with recent 2.58.0.
2.58.0 is the current version on macOS using homebrew on my host laptop.
https://formulae.brew.sh/formula/glib

Success with 2.56.1:
https://travis-ci.org/strongly-typed/sigrok-macos/builds/429295459
https://api.travis-ci.org/v3/job/429295460/log.txt

Success with 2.56.2:
https://travis-ci.org/strongly-typed/sigrok-macos/builds/429300760

Fail with 2.58.0:
https://travis-ci.org/strongly-typed/sigrok-macos/jobs/429213895#L2011

Linking CXX executable pulseview-test[0m
Undefined symbols for architecture x86_64:
  "Glib::Variant<unsigned long long>::variant_type()", referenced from:
      Glib::Variant<unsigned long long> Glib::VariantBase::cast_dynamic<Glib::Variant<unsigned long long> >(Glib::VariantBase const&) in device.cpp.o
      Glib::Variant<unsigned long long> Glib::VariantBase::cast_dynamic<Glib::Variant<unsigned long long> >(Glib::VariantBase const&) in mainbar.cpp.o
  "Glib::Variant<unsigned long long>::create(unsigned long long)", referenced from:
      pv::StoreSession::start() in storesession.cpp.o
      pv::toolbars::MainBar::commit_sample_count() in mainbar.cpp.o
      pv::toolbars::MainBar::commit_sample_rate() in mainbar.cpp.o
  "Glib::Variant<unsigned long long>::get() const", referenced from:
      unsigned long long pv::devices::Device::read_config<unsigned long long>(sigrok::ConfigKey const*, unsigned long long) in device.cpp.o
      pv::toolbars::MainBar::update_sample_rate_selector_value() in mainbar.cpp.o
ld: symbol(s) not found for architecture x86_64

I am using TravisCI to make the build error available and reproducible for everyone (including developers without access to a Mac).
https://github.com/strongly-typed/sigrok-macos

What is necessary to make pulseview compatible with glib 2.58.0 so it can be compiled with the recent homebrew setup?

Side question:
Why not use TravisCI to build a real nightly dmg automatically? The current dmg is over a week old although there have been some commits in e.g. libsigrokdecode?

Best regards

Sascha
Comment 1 vpalmu 2018-10-11 15:34:44 CEST
The linking also fails with glib 2.58.2

100%] Linking CXX executable pulseview
Undefined symbols for architecture x86_64:
  "Glib::Variant<unsigned long long>::variant_type()", referenced from:
      Glib::Variant<unsigned long long> Glib::VariantBase::cast_dynamic<Glib::Variant<unsigned long long> >(Glib::VariantBase const&) in device.cpp.o
      Glib::Variant<unsigned long long> Glib::VariantBase::cast_dynamic<Glib::Variant<unsigned long long> >(Glib::VariantBase const&) in mainbar.cpp.o
  "Glib::Variant<unsigned long long>::create(unsigned long long)", referenced from:
      pv::StoreSession::start() in storesession.cpp.o
      pv::toolbars::MainBar::commit_sample_count() in mainbar.cpp.o
      pv::toolbars::MainBar::commit_sample_rate() in mainbar.cpp.o
  "Glib::Variant<unsigned long long>::get() const", referenced from:
      unsigned long long pv::devices::Device::read_config<unsigned long long>(sigrok::ConfigKey const*, unsigned long long) in device.cpp.o
      pv::toolbars::MainBar::update_sample_rate_selector_value() in mainbar.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [pulseview] Error 1
make[1]: *** [CMakeFiles/pulseview.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[100%] Linking CXX executable pulseview-test
Undefined symbols for architecture x86_64:
  "Glib::Variant<unsigned long long>::variant_type()", referenced from:
      Glib::Variant<unsigned long long> Glib::VariantBase::cast_dynamic<Glib::Variant<unsigned long long> >(Glib::VariantBase const&) in device.cpp.o
      Glib::Variant<unsigned long long> Glib::VariantBase::cast_dynamic<Glib::Variant<unsigned long long> >(Glib::VariantBase const&) in mainbar.cpp.o
  "Glib::Variant<unsigned long long>::create(unsigned long long)", referenced from:
      pv::StoreSession::start() in storesession.cpp.o
      pv::toolbars::MainBar::commit_sample_count() in mainbar.cpp.o
      pv::toolbars::MainBar::commit_sample_rate() in mainbar.cpp.o
  "Glib::Variant<unsigned long long>::get() const", referenced from:
      unsigned long long pv::devices::Device::read_config<unsigned long long>(sigrok::ConfigKey const*, unsigned long long) in device.cpp.o
      pv::toolbars::MainBar::update_sample_rate_selector_value() in mainbar.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Comment 2 Soeren Apel 2018-10-11 22:36:41 CEST
These are glibmm issues, not glib. Do we know which version of glibmm works and which doesn't?
Comment 3 Uwe Hermann 2019-03-28 23:04:12 CET
This is working fine for me on a recent Homebrew setup with glibmm 2.60.0, I'm assuming it was fixed upstream? Can anybody else still reproduce the problem with glibmm 2.60.0?
Comment 4 Uwe Hermann 2019-07-01 01:29:09 CEST
Just re-tried a full build (glibmm 2.60.0), seems to work fine still, so I'm assuming it was fixed upstream. Closing the issue.