Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't build with libcxx + clang #2665

Closed
kuroya2mouse opened this issue Nov 11, 2023 · 11 comments
Closed

Can't build with libcxx + clang #2665

kuroya2mouse opened this issue Nov 11, 2023 · 11 comments

Comments

@kuroya2mouse
Copy link

/usr/include/date/tz.h:266:8: error: invalid operands to binary expression ('std::ostringstream' (aka 'basic_ostringstream') and 'local_time<duration<long long, ratio<1, 1>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1>>>'))

issue with this project???

https://github.com/HowardHinnant/date

изображение

@LukashonakV
Copy link
Contributor

This PR #2659 should help

@kuroya2mouse
Copy link
Author

[194/328] Compiling C++ object waybar.p/src_modules_clock.cpp.o
FAILED: waybar.p/src_modules_clock.cpp.o
clang++ -Iwaybar.p -I. -I.. -I../include -Iresources/icons -Iprotocol -I/usr/lib64/libffi/include -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -I/usr/include/jsoncpp -I/usr/include/gtkmm-3.0 -I/usr/lib64/gtkmm-3.0/include -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/atkmm-1.6 -I/usr/lib64/atkmm-1.6/include -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/gtk-3.0/unix-print -I/usr/include/cairo -I/usr/include/gdkmm-3.0 -I/usr/lib64/gdkmm-3.0/include -I/usr/include/giomm-2.4 -I/usr/lib64/giomm-2.4/include -I/usr/include/cairomm-1.0 -I/usr/lib64/cairomm-1.0/include -I/usr/include/pangomm-1.4 -I/usr/lib64/pangomm-1.4/include -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/libpng16 -I/usr/include/pixman-1 -I/usr/include/gio-unix-2.0 -I/usr/include/fribidi -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/libdbusmenu-gtk3-0.4 -I/usr/include/libdbusmenu-glib-0.4 -I/usr/include/libnl3 -I/usr/include/pipewire-0.3 -I/usr/include/spa-0.2 -I/usr/include/wireplumber-0.4 -I/usr/include/libevdev-1.0 -I/usr/include/gtk-layer-shell -I/usr/include -I/usr/include/libxml2 -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++20 -O3 '-DVERSION="0.9.24-20-ga51dd8fc (branch '"'"'master'"'"')"' -DHAVE_LANGINFO_1STDAY '-DSYSCONFDIR="//usr/local/etc"' -DHAVE_CPU_LINUX -DHAVE_MEMORY_LINUX -DHAVE_SWAY -DHAVE_WLR -DHAVE_RIVER -DHAVE_DWL -DHAVE_HYPRLAND -DHAVE_LIBNL -DHAVE_GAMEMODE -DHAVE_PIPEWIRE -DHAVE_LIBPULSE -DHAVE_LIBWIREPLUMBER -DHAVE_DBUSMENU -DHAVE_LIBUDEV -DHAVE_LIBEVDEV -DHAVE_LIBINPUT -DHAVE_GTK_LAYER_SHELL -DHAVE_GIO_UNIX -DHAVE_LIBDATE -stdlib=libc++ -DONLY_C_LOCALE=0 -DUSE_OS_TZDB=1 -pthread -D_REENTRANT -DWITH_GZFILEOP -DSPDLOG_SHARED_LIB -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -MD -MQ waybar.p/src_modules_clock.cpp.o -MF waybar.p/src_modules_clock.cpp.o.d -o waybar.p/src_modules_clock.cpp.o -c ../src/modules/clock.cpp
In file included from ../src/modules/clock.cpp:1:
In file included from ../include/modules/clock.hpp:4:

/usr/include/date/tz.h:235:8: error: use of overloaded operator '<<' is ambiguous (with operand types 'basic_ostream<char, char_traits>' and 'const sys_seconds' (aka 'const time_point<std::chrono::system_clock, std::chrono::duration<long long, std::ratio<1, 1>>>'))
229 | os << tp << " is in a gap between\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
230 | << local_seconds{i.first.end.time_since_epoch()} + i.first.offset << ' '
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
231 | << i.first.abbrev << " and\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 | << local_seconds{i.second.begin.time_since_epoch()} + i.second.offset << ' '
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
233 | << i.second.abbrev
| ~~~~~~~~~~~~~~~~~~
234 | << " which are both equivalent to\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235 | << i.first.end << " UTC";

/usr/include/date/date.h:4231:16: error: use of overloaded operator '<<' is ambiguous (with operand types 'std::basic_ostream<char, char_traits>' and 'sys_time<duration<long long, ratio<1, 1>>>' (aka 'time_point<std::chrono::system_clock, std::chrono::duration<long long, std::ratio<1, 1>>>'))
4231 | return (os << sys_time{ut.time_since_epoch()});

In file included from ../src/modules/clock.cpp:1:
In file included from ../include/modules/clock.hpp:4:
In file included from ../include/util/date.hpp:8:
/usr/include/date/tz.h:266:8: error: invalid operands to binary expression ('std::ostringstream' (aka 'basic_ostringstream') and 'local_time<duration<long long, ratio<1, 1>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1>>>'))
266 | os << tp << " is ambiguous. It could be\n"
| ~~ ^ ~~

@LukashonakV
Copy link
Contributor

Will check soon

@LukashonakV
Copy link
Contributor

Hi @kuroya2mouse can you check again. See #2668

@kuroya2mouse
Copy link
Author

[185/331] Compiling C++ object waybar.p/src_modules_clock.cpp.o
FAILED: waybar.p/src_modules_clock.cpp.o
clang++ -Iwaybar.p -I. -I.. -I../include -Iresources/icons -Iprotocol -I/usr/lib64/libffi/include -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -I/usr/include/jsoncpp -I/usr/include/gtkmm-3.0 -I/usr/lib64/gtkmm-3.0/include -I/usr/include/giomm-2.4 -I/usr/lib64/giomm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/libpng16 -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/cairomm-1.0 -I/usr/lib64/cairomm-1.0/include -I/usr/include/pangomm-1.4 -I/usr/lib64/pangomm-1.4/include -I/usr/include/atkmm-1.6 -I/usr/lib64/atkmm-1.6/include -I/usr/include/gtk-3.0/unix-print -I/usr/include/gdkmm-3.0 -I/usr/lib64/gdkmm-3.0/include -I/usr/include/libdbusmenu-gtk3-0.4 -I/usr/include/libdbusmenu-glib-0.4 -I/usr/include/libnl3 -I/usr/include/libupower-glib -I/usr/include/pipewire-0.3 -I/usr/include/spa-0.2 -I/usr/include/playerctl -I/usr/include/wireplumber-0.4 -I/usr/include/libevdev-1.0 -I/usr/include/gtk-layer-shell -I/usr/include -I/usr/include/libxml2 -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++20 -O3 '-DVERSION="0.9.24-22-g9ac27de7 (branch '"'"'master'"'"')"' -DHAVE_LANGINFO_1STDAY '-DSYSCONFDIR="//etc"' -DHAVE_CPU_LINUX -DHAVE_MEMORY_LINUX -DHAVE_SWAY -DHAVE_WLR -DHAVE_RIVER -DHAVE_DWL -DHAVE_HYPRLAND -DHAVE_LIBNL -DHAVE_GAMEMODE -DHAVE_UPOWER -DHAVE_PIPEWIRE -DHAVE_MPRIS -DHAVE_LIBPULSE -DHAVE_LIBWIREPLUMBER -DHAVE_DBUSMENU -DHAVE_LIBUDEV -DHAVE_LIBEVDEV -DHAVE_LIBINPUT -DHAVE_GTK_LAYER_SHELL -DHAVE_GIO_UNIX -DHAVE_LIBDATE -DONLY_C_LOCALE=0 -DUSE_OS_TZDB=1 -pthread -D_REENTRANT -DWITH_GZFILEOP -DSPDLOG_SHARED_LIB -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -MD -MQ waybar.p/src_modules_clock.cpp.o -MF waybar.p/src_modules_clock.cpp.o.d -o waybar.p/src_modules_clock.cpp.o -c ../src/modules/clock.cpp
In file included from ../src/modules/clock.cpp:1:
In file included from ../include/modules/clock.hpp:4:

/usr/include/date/tz.h:244:8: error: use of overloaded operator '<<' is ambiguous (with operand types 'basic_ostream<char, char_traits>' and 'const sys_seconds' (aka 'const time_point<std::chrono::system_clock, std::chrono::duration<long long, std::ratio<1, 1>>>'))
238 | os << tp << " is in a gap between\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
239 | << local_seconds{i.first.end.time_since_epoch()} + i.first.offset << ' '
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
240 | << i.first.abbrev << " and\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
241 | << local_seconds{i.second.begin.time_since_epoch()} + i.second.offset << ' '
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
242 | << i.second.abbrev
| ~~~~~~~~~~~~~~~~~~
243 | << " which are both equivalent to\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
244 | << i.first.end << " UTC";
| ^ ~~~~~~~~~~~

  /usr/include/date/date.h:3996:16: error: use of overloaded operator '<<' is ambiguous (with operand types 'std::basic_ostream<char, char_traits<char>>' and 'sys_time<duration<long long, ratio<1, 1>>>' (aka 'time_point<std::chrono::system_clock, std::chrono::duration<long long, std::ratio<1, 1>>>'))

3996 | return (os << sys_time{ut.time_since_epoch()});
| ~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/usr/include/date/tz.h:275:8: error: invalid operands to binary expression ('std::ostringstream' (aka 'basic_ostringstream') and 'local_time<duration<long long, ratio<1, 1>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1>>>'))
275 | os << tp << " is ambiguous. It could be\n"
| ~~ ^ ~~

@kuroya2mouse
Copy link
Author

изображение
изображение
изображение

@LukashonakV
Copy link
Contributor

Hi @kuroya2mouse , can you please provide full log where meson does project configuration.

make clean
make

@kuroya2mouse
Copy link
Author

Hi @kuroya2mouse , can you please provide full log where meson does project configuration.
meson-log.txt

@robertgzr
Copy link
Contributor

looks like this is the same: HowardHinnant/date#799

@thesamesam
Copy link

See llvm/llvm-project#67983.

@robertgzr
Copy link
Contributor

yep, this works! cheers for the headsup @thesamesam

@Alexays Alexays closed this as completed Mar 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants