Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 829163 - media-sound/easyeffects-6.1.5: build fails to build with -Os (undefined reference to `std::__shared_ptr<std::filesystem::__cxx11::_Dir)
Summary: media-sound/easyeffects-6.1.5: build fails to build with -Os (undefined refer...
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Marek Szuba
URL: https://github.com/wwmm/easyeffects/i...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-12-14 11:45 UTC by ernsteiswuerfel
Modified: 2022-09-07 21:19 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (easyeffects-6.1.5:20211214-083218.log,175.72 KB, text/plain)
2021-12-14 11:45 UTC, ernsteiswuerfel
Details
emerge --info (file_829163.txt,6.20 KB, text/plain)
2021-12-14 11:46 UTC, ernsteiswuerfel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ernsteiswuerfel archtester 2021-12-14 11:45:50 UTC
Created attachment 758924 [details]
build.log

[...]
FAILED: src/easyeffects 
powerpc-unknown-linux-gnu-g++  -o src/easyeffects src/easyeffects.p/meson-generated_.._.._data_easyeffects-resources.c.o src/easyeffects.p/easyeffects.cpp.o src/easyeffects.p/application.cpp.o src/easyeffects.p/application_ui.cpp.o src/easyeffects.p/autogain.cpp.o src/easyeffects.p/autogain_preset.cpp.o src/easyeffects.p/autogain_ui.cpp.o src/easyeffects.p/bass_enhancer.cpp.o src/easyeffects.p/bass_enhancer_preset.cpp.o src/easyeffects.p/bass_enhancer_ui.cpp.o src/easyeffects.p/bass_loudness.cpp.o src/easyeffects.p/bass_loudness_preset.cpp.o src/easyeffects.p/bass_loudness_ui.cpp.o src/easyeffects.p/compressor.cpp.o src/easyeffects.p/compressor_preset.cpp.o src/easyeffects.p/compressor_ui.cpp.o src/easyeffects.p/convolver.cpp.o src/easyeffects.p/convolver_preset.cpp.o src/easyeffects.p/convolver_ui.cpp.o src/easyeffects.p/crossfeed.cpp.o src/easyeffects.p/crossfeed_preset.cpp.o src/easyeffects.p/crossfeed_ui.cpp.o src/easyeffects.p/crystalizer.cpp.o src/easyeffects.p/crystalizer_preset.cpp.o src/easyeffects.p/crystalizer_ui.cpp.o src/easyeffects.p/deesser.cpp.o src/easyeffects.p/deesser_preset.cpp.o src/easyeffects.p/deesser_ui.cpp.o src/easyeffects.p/delay.cpp.o src/easyeffects.p/delay_preset.cpp.o src/easyeffects.p/delay_ui.cpp.o src/easyeffects.p/echo_canceller.cpp.o src/easyeffects.p/echo_canceller_preset.cpp.o src/easyeffects.p/echo_canceller_ui.cpp.o src/easyeffects.p/effects_base_ui.cpp.o src/easyeffects.p/effects_base.cpp.o src/easyeffects.p/equalizer.cpp.o src/easyeffects.p/equalizer_preset.cpp.o src/easyeffects.p/equalizer_ui.cpp.o src/easyeffects.p/exciter.cpp.o src/easyeffects.p/exciter_preset.cpp.o src/easyeffects.p/exciter_ui.cpp.o src/easyeffects.p/filter.cpp.o src/easyeffects.p/filter_preset.cpp.o src/easyeffects.p/filter_ui.cpp.o src/easyeffects.p/fir_filter_bandpass.cpp.o src/easyeffects.p/fir_filter_base.cpp.o src/easyeffects.p/fir_filter_lowpass.cpp.o src/easyeffects.p/fir_filter_highpass.cpp.o src/easyeffects.p/gate.cpp.o src/easyeffects.p/gate_preset.cpp.o src/easyeffects.p/gate_ui.cpp.o src/easyeffects.p/general_settings_ui.cpp.o src/easyeffects.p/info_holders.cpp.o src/easyeffects.p/limiter.cpp.o src/easyeffects.p/limiter_preset.cpp.o src/easyeffects.p/limiter_ui.cpp.o src/easyeffects.p/loudness.cpp.o src/easyeffects.p/loudness_preset.cpp.o src/easyeffects.p/loudness_ui.cpp.o src/easyeffects.p/lv2_wrapper.cpp.o src/easyeffects.p/maximizer.cpp.o src/easyeffects.p/maximizer_preset.cpp.o src/easyeffects.p/maximizer_ui.cpp.o src/easyeffects.p/multiband_compressor.cpp.o src/easyeffects.p/multiband_compressor_preset.cpp.o src/easyeffects.p/multiband_compressor_ui.cpp.o src/easyeffects.p/multiband_gate.cpp.o src/easyeffects.p/multiband_gate_preset.cpp.o src/easyeffects.p/multiband_gate_ui.cpp.o src/easyeffects.p/output_level.cpp.o src/easyeffects.p/pipe_info_ui.cpp.o src/easyeffects.p/pipe_manager.cpp.o src/easyeffects.p/pitch.cpp.o src/easyeffects.p/pitch_preset.cpp.o src/easyeffects.p/pitch_ui.cpp.o src/easyeffects.p/plot.cpp.o src/easyeffects.p/plugin_base.cpp.o src/easyeffects.p/plugin_ui_base.cpp.o src/easyeffects.p/presets_menu_ui.cpp.o src/easyeffects.p/presets_manager.cpp.o src/easyeffects.p/reverb.cpp.o src/easyeffects.p/reverb_preset.cpp.o src/easyeffects.p/reverb_ui.cpp.o src/easyeffects.p/resampler.cpp.o src/easyeffects.p/rnnoise.cpp.o src/easyeffects.p/rnnoise_preset.cpp.o src/easyeffects.p/rnnoise_ui.cpp.o src/easyeffects.p/spectrum.cpp.o src/easyeffects.p/spectrum_ui.cpp.o src/easyeffects.p/spectrum_settings_ui.cpp.o src/easyeffects.p/stereo_tools.cpp.o src/easyeffects.p/stereo_tools_preset.cpp.o src/easyeffects.p/stereo_tools_ui.cpp.o src/easyeffects.p/stream_output_effects_ui.cpp.o src/easyeffects.p/stream_output_effects.cpp.o src/easyeffects.p/stream_input_effects_ui.cpp.o src/easyeffects.p/stream_input_effects.cpp.o src/easyeffects.p/test_signals.cpp.o src/easyeffects.p/util.cpp.o -Wl,--as-needed -Wl,--no-undefined -Os -mcpu=7450 -pipe -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--start-group /usr/lib/libpipewire-0.3.so /usr/lib/libglib-2.0.so /usr/lib/libglibmm-2.68.so /usr/lib/libgobject-2.0.so /usr/lib/libsigc-3.0.so /usr/lib/libgtk-4.so /usr/lib/libpangocairo-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libharfbuzz.so /usr/lib/libgdk_pixbuf-2.0.so /usr/lib/libcairo-gobject.so /usr/lib/libcairo.so /usr/lib/libgraphene-1.0.so /usr/lib/libgio-2.0.so /usr/lib/libgtkmm-4.0.so /usr/lib/libpangomm-2.48.so /usr/lib/libgiomm-2.68.so /usr/lib/libcairomm-1.16.so /usr/lib/liblilv-0.so -ldl /usr/lib/libsratom-0.so /usr/lib/libsord-0.so /usr/lib/libserd-0.so /usr/lib/libbs2b.so /usr/lib/libsndfile.so /usr/lib/libfftw3f.so /usr/lib/libebur128.so /usr/lib/librnnoise.so /usr/lib/libsamplerate.so /usr/lib/librubberband.so /usr/lib/libfftw3.so /usr/lib/libspeexdsp.so -pthread -ltbb -lzita-convolver -Wl,--end-group
/usr/lib/gcc/powerpc-unknown-linux-gnu/11.2.0/../../../../powerpc-unknown-linux-gnu/bin/ld: src/easyeffects.p/presets_manager.cpp.o: in function `PresetsManager::get_names(PresetType const&)':
presets_manager.cpp:(.text+0x45ec): undefined reference to `std::__shared_ptr<std::filesystem::__cxx11::_Dir, (__gnu_cxx::_Lock_policy)2>::swap(std::__shared_ptr<std::filesystem::__cxx11::_Dir, (__gnu_cxx::_Lock_policy)2>&)'
/usr/lib/gcc/powerpc-unknown-linux-gnu/11.2.0/../../../../powerpc-unknown-linux-gnu/bin/ld: presets_manager.cpp:(.text+0x4680): undefined reference to `std::__shared_ptr<std::filesystem::__cxx11::_Dir, (__gnu_cxx::_Lock_policy)2>::swap(std::__shared_ptr<std::filesystem::__cxx11::_Dir, (__gnu_cxx::_Lock_policy)2>&)'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
 * ERROR: media-sound/easyeffects-6.1.5::gentoo failed (compile phase):
 *   compile failed
Comment 1 ernsteiswuerfel archtester 2021-12-14 11:46:28 UTC
Created attachment 758925 [details]
emerge --info
Comment 2 Marek Szuba archtester gentoo-dev 2021-12-14 11:58:09 UTC
Could you try adding "build.cpp_std=c++20" to default project options in meson.build and see if it helps?

Reference: https://github.com/mesonbuild/meson/issues/5590#issuecomment-912996631
Comment 3 ernsteiswuerfel archtester 2021-12-14 19:05:26 UTC
(In reply to Marek Szuba from comment #2)
> Could you try adding "build.cpp_std=c++20" to default project options in
> meson.build and see if it helps?
default_options before:
        default_options : ['cpp_std=c++20','buildtype=debugoptimized'],

default_options before:
        default_options : ['cpp_std=c++20','build.cpp_std=c++20','buildtype=debugoptimized'],

But it didn't make a difference after an ebuild configure, ebuild compile.
Comment 4 Marek Szuba archtester gentoo-dev 2021-12-14 23:46:24 UTC
Hmm. How about if you do not use -Os?
Comment 5 Marek Szuba archtester gentoo-dev 2021-12-14 23:53:00 UTC
Update: reproduced the error on amd64 with -Os. ernsteiswuerfel, if using -O2 instead helps please remove the block on 807265 and proceed with ppc rekeywording.
Comment 6 ernsteiswuerfel archtester 2021-12-15 02:42:27 UTC
(In reply to Marek Szuba from comment #5)
> Update: reproduced the error on amd64 with -Os. ernsteiswuerfel, if using
> -O2 instead helps please remove the block on 807265 and proceed with ppc
> rekeywording.
Ah yes, you are right. With -O2 it builds fine on ppc too!
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-02-07 04:30:05 UTC
ernsteiswuerfel, can I ask if you'd mind reporting this upstream? Thanks!
Comment 8 ernsteiswuerfel archtester 2022-02-07 14:05:46 UTC
(In reply to Sam James from comment #7)
> ernsteiswuerfel, can I ask if you'd mind reporting this upstream? Thanks!
Done. https://github.com/wwmm/easyeffects/issues/1386
Comment 9 Marek Szuba archtester gentoo-dev 2022-09-07 21:19:52 UTC
Quoting upstream: "It feels like a compiler bug [...] Specially because it compiles without any problems when passing the debug or the release flags. If the reference to the functions is disappearing when optimizing for size the most likely cause is the compiler doing a mistake. Unless under the hoods Meson is passing a combination of flags that is leading the compiler to a mistake when optimizing for size."