Opened 8 years ago

Closed 8 years ago

#7787 closed defect (fixed)

GCC-6 causes compilation problems with Qt4 and its corresponding Qtwebkit

Reported by: Douglas R. Reno Owned by: bdubbs@…
Priority: normal Milestone: 7.10
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

While trying to compile Qt4 on my workstation, I found that it wouldn't compile due to a C++11 problem. I don't have the exact error at the moment, but I had to add "-std=c++99" to "mkspecs/commmon/gcc-base.conf" to get it to compile.

On the other hand, I have not been able to get qtwebkit-2.3.4 to compile at all. Here is what I have tried:

  • Adding -fno-strict-aliasing to the makeargs parameter.
  • Adding -fno-delete-null-pointer-checks to the makeargs parameter.
  • Adding -std=c++99 to the makeargs parameter.

Even with all of those options, I get the error/output seen here:

http://higgs.linuxfromscratch.org/~renodr/qtwebkit-2.3.4-error-output.txt

I have observed this issue on both trunk and systemd based systems, so I know it isn't specific to systemd.

Somehow, I got it past that problem earlier to only have it complain about missing symbols and attributes in a *.ar archive that it created earlier and was trying to link to (I cannot provide more specifics. I currently only have links on that system at the moment).

According to my records, this worked fine on GCC-5, but I haven't built it since Glibc-2.23 (or the patches for binutils and glibc), so I have no clue when it actually broke.

Change History (11)

comment:1 by Douglas R. Reno, 8 years ago

Owner: changed from blfs-book@… to Douglas R. Reno
Status: newassigned

I might have found the cause and/or solution. I will take this ticket and attempt to fix it. This will take me a few days.

comment:2 by Douglas R. Reno, 8 years ago

Investigating the removal of Qt4 currently. After building everything that uses Qt4 on a system without it, I will report back.

comment:3 by Douglas R. Reno, 8 years ago

Here is my list of packages to be tested:

Graphviz (Needs patch)
Highlight (systemd)
PIN-Entry (Use Qt5 instead of Qt4)
CMake (Use Qt5 instead of Qt4)
Doxygen (Use Qt5 instead of Qt4)
WPA_supplicant (Qt5 supported? Porting might be needed)
Avahi (Qt5 supported? Porting might be needed)
NetworkManager (Qt5 supported? Porting might be needed)
Wireshark (Use Qt5 instead of Qt4)
Transmission (Use Qt5 instead of Qt4)
v4l-utils (Use Qt5 instead of Qt4)
Audacious (Use Qt5 instead of Qt4)
VLC (Use Qt5 instead of Qt4 - Problems?)

In addition, I found that the following changes are needed for gst-plugins-* (Dependencies):

gst-plugins-base: Replace Qt4 with Qt5, Used in examples
gst-plugins-good: Qt is no longer a dependency... verified from configure
gst-plugins-bad: Add Qt5 as a dependency - Used for examples (Basic Player) based upon the GstPlayer API (added in 1.8.0)

comment:4 by Armin K, 8 years ago

wpa_supplicant supports Qt5 in latest version.

VLC should just work.

I have a patch for graphviz: https://github.com/elkrejzi/system-management/blob/master/patches/graphviz-qt5.patch (needs autoreconf -fi after applying)

Not sure why NetworkManager needs Qt at all. Yes, it does require Qt4, but I have no idea why. I suggest you ignore it.

in reply to:  4 comment:5 by Douglas R. Reno, 8 years ago

Replying to Krejzi:

wpa_supplicant supports Qt5 in latest version.

VLC should just work.

I have a patch for graphviz: https://github.com/elkrejzi/system-management/blob/master/patches/graphviz-qt5.patch (needs autoreconf -fi after applying)

Not sure why NetworkManager needs Qt at all. Yes, it does require Qt4, but I have no idea why. I suggest you ignore it.

NetworkManager appears to use it for examples according to https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/configure.ac

comment:6 by Armin K, 8 years ago

IMO, that alone doesn't make Qt4 worth keeping. Let Qt4 die and with it all the ugly workarounds that are there in the books.

comment:7 by Armin K, 8 years ago

If really desired, NM can be built with Qt5 support after using the following sed:

sed -i "/Qt[CDN]/s:Qt:Qt5:g;s: moc_location: host_bins:g" configure

comment:8 by Douglas R. Reno, 8 years ago

Owner: changed from Douglas R. Reno to blfs-book@…
Status: assignednew

Giving back to book for someone to complete the testing soon. I'd really like to purge Qt4 soon

comment:9 by bdubbs@…, 8 years ago

I am starting to remove references to qt4 in the book. This is the list I have remaining:

general/genlib/qjson.xml:
general/genutils/graphviz.xml:

multimedia/videoutils/vlc.xml:

networking/netutils/networkmanager.xml:
networking/netutils/avahi.xml:

x/lib/cairo.xml:

Packages that are systemd only that reference qt4 are:

general/sysutils/strigi.xml:
general/genlib/grantlee.xml:
general/genutils/highlight.xml:
Last edited 8 years ago by bdubbs@… (previous) (diff)

comment:10 by bdubbs@…, 8 years ago

Owner: changed from blfs-book@… to bdubbs@…
Status: newassigned

comment:11 by bdubbs@…, 8 years ago

Resolution: fixed
Status: assignedclosed

Archived Qt4 at revision 17460.

Note: See TracTickets for help on using tickets.