Summary: | media-video/vlc-2.2.4[qt5] on amd64-musl: qmetatype.h:1741:1: error: body of constexpr function ‘constexpr int qMetaTypeId() [with T = QModelIndex]’ not a return-statement | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | tt_1 <herrtimson> |
Component: | Current packages | Assignee: | Gentoo musl team <musl> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | blueness, media-video, proxy-maint, SDNick484 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 430702 | ||
Attachments: |
compressed build.log
output of emerge --info output of emerge --info for vlc |
Created attachment 457326 [details]
output of emerge --info
the output of emerge --info
Created attachment 457328 [details]
output of emerge --info for vlc
emerge -pv vlc for useflags
=================================================================
Package Settings
=================================================================
[ebuild R ] media-video/vlc-2.2.4 USE="X a52 alsa avcodec avformat bluray cdda dbus dts dvb dvbpsi dvd encode faad ffmpeg gcrypt libsamplerate matroska mp3 mpeg ncurses ogg png qt5 swscale theora udev v4l vorbis wma-fixed xcb xml -aalib (-altivec) -atmo (-audioqueue) -bidi -cddb -chromaprint -dc1394 -debug -directfb (-directx) (-dxva2) -fdk -flac -fluidsynth -fontconfig -gme -gnome -gnutls -growl -httpd -ieee1394 -jack -jpeg -kate -kde -libass -libav -libcaca -libnotify -libtar -libtiger -linsys -lirc -live -lua (-macosx-dialog-provider) (-macosx-eyetv) (-macosx-qtkit) (-macosx-quartztext) -modplug -mtp -musepack (-neon) -omxil -opencv -opengl -optimisememory -opus -postproc -projectm -pulseaudio -qt4 -rdp -rtsp -run-as-root -samba -schroedinger -sdl -sdl-image -sftp -shout -sid -skins -speex -svg -taglib {-test} -tremor -truetype -twolame -upnp -vaapi -vcdx (-vdpau) -vlm -vnc -vpx (-x264) -x265 -xv -zeroconf -zvbi (-media-library%)" CPU_FLAGS_X86="mmx sse"
how to reproduce: grabe a recent stage3, chroot into it and emerge vlc with USE=-qt4 qt5 X"
I haven't been able to duplicate the issue (however I'm not on musl). Could post the exact version of qt5 you're using? I'm using the stable qt-5.6.2, with the exception of qtcore which is 5.6.2-r1 from the musl overlay. Neither do I have this problem on my main glibc system. Of course I tried the unstable branch of 5.7.1 before posting this. To reproduce you can just grab a recent stage3 and emerge vlc with the provided useflags. Disabling qt5 solves the compile issue, but I appreciate and need the gui! :) I'm not in a position to do the stage3 test at the moment, but should be able to later. In the meantime, could you see if you can reproduce this error on qt-5.6.1? I ask because I don't see any similar error reports on Alpine Linux which is a musl based distro, and they seem to still be on qt-5.6.1. It is a regression, that's for sure. Vlc used to compile just fine around half a year ago. 5.6.1 went stable on Jul 22nd for amd64 5.6.2 went stable on Dec 6th for amd64 So I think it is worth a try to a downgrade. I'll talk to the guys from the overlay to restore their patched version of 5.6.1 and tell you more later on. Well, the build with qt-gui/core-5.6.1 fails with exactly the same build error. (In reply to tt_1 from comment #7) > Well, the build with qt-gui/core-5.6.1 fails with exactly the same build > error. Bummer, thanks for checking. I will try to set up an environment and duplicate the issue. Definitely interesting that they aren't reporting it on Alpine Linux. Going through your log, I see a lot more errors than just qmetatype.h, for example: /usr/lib/gcc/x86_64-gentoo-linux-musl/4.9.4/include/g++-v4/bits/uses_allocator.h:66:75: error: macro "_Static_assert" passed 3 arguments, but takes just 2 { static_assert( uses_allocator<_Tp, _Alloc>::value, "uses allocator" ); }; and tons of errors related to ../../../include/vlc_fixups.h such as: ../../../include/vlc_fixups.h:243:33: error: expected ‘)’ before ‘void’ ../../../include/vlc_fixups.h:243:73: error: expected unqualified-id before ‘)’ token # define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); })) ^ Seems something related to the macro expansion of static_assert is broken. Have you tried other versions of GCC? Perhaps give GCC 5.4.0-r2 a go? I found an upstream ticket about an issue which seems to be related to this one, but it has been closed without further discussion as invalid/worksforme https://trac.videolan.org/vlc/ticket/17849 Anyway, I could give gcc-6.3.0 a try and see if anything changes. All issues are solved by using gcc 6.3.0 from the musl overlay to compile. Is there any interest into fixing the compile error with the stable gcc-4.9.4? In other words, should this be left open? This is, by the way, not the first time where there is no appropiate patch in the alpine repos to solve a problem with gentoo. Always hard to figure it out if they solved it otherwise, cause they do not have a good way to document their patches and other efforts. Wouldn't it be sufficient to mask the qt5 useflag for vlc on the musl profiles? gcc 5.4 is stable now, problem solved. |
Created attachment 457324 [details] compressed build.log I currently had to rebuild many packages due to both the ncurses and the icu upgrade. Vlc-2.2.4{-r1} does fail to build with qt5/X useflag, with that particular flag disabled it builds just fine. the build log is attached