Discussion:
Fedora mass rebuild 2017
Marek Polacek
2017-02-07 21:32:09 UTC
Permalink
It's been a tradition now that every January we rebuild all the Fedora packages
with the upcoming GCC, to reveal as many bugs as possible before we release
the new version. This year is no different.

There were 18811 packages overall (last year we had 17741 packages).
17263 built fine with the new GCC (mostly gcc-7.0.0-0.1.fc26.src.rpm but I also
used a newer version from rawhide). 1350 failed with both GCC 6 and GCC 7,
so I ignored these. This left us with ~198 packages that had to be analyzed,
a number which, fortunately, was smaller than last year, when we'd had 577 FTBFS to
investigate.

The Fedora packages I rebuilt were grabbed on Jan 12.

It's all fairly good, and nothing particularly stands out. There is the usual
batch of new warnings (-Wimplicit-fallthrough and -Wformat-truncation causing
the biggest churn), some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to reject invalid code
that had previously been accepted, plus invalid conversions with '\0' are now
rejected), some libstdc++ changes (header dependency changes), as well as some
mangling changes.

We found several GCC bugs, most of which have already been fixed. Furthermore,
Fortran ABI has changed in GCC 7. Anyway, there's nothing that particularly
worries me (except perhaps the -fprintf-return-value stuff that might still
cause some wrong codes).

Shortlog appended for the people who want to get an overview of the details.

As usual, there will be a "porting to" document to ease the transition to the
new GCC. We already have https://gcc.gnu.org/gcc-7/porting_to.html, even though
this document is still somewhat in flux.

I'd like to thank Jakub Jelinek and Jonathan Wakely, the guys I roped in to help
me with all this undertaking.

GCC bugs
~~~~~~~~
The following is a list of bugs we've found so far in the compiler and the C++
library during the mass rebuild:

schroot-1.6.5-16.fc24.src.rpm
ICE in cxx_incomplete_type_diagnostic
https://gcc.gnu.org/PR78690
not fixed yet

python-plyvel-0.9-7.fc26.src.rpm
error: invalid rhs for gimple memory store
https://gcc.gnu.org/PR79232
fixed in gcc-7.0.1-0.4.fc26

mathicgb-1.0-6.20160202.gitbb268df.fc26.src.rpm
ICE in tsubst_copy
https://gcc.gnu.org/PR79253
fixed upstream and in gcc-7.0.1-0.5.fc26

cvc4-1.4-11.fc25.src.rpm
TLS model wrong for static data members
https://gcc.gnu.org/PR79288
fixed in gcc-7.0.1-0.4.fc26

golang-1.7.4-1.fc26.src.rpm
DWARF info for typeof of C function with no args and no prototype
is empty pointer
https://gcc.gnu.org/PR79289
fixed upstream and in gcc-7.0.1-0.4.fc26

texlive-2016-30.20160520.fc26.src.rpm
tlog-2-1.fc25.src.rpm
wrong code at -O2 and -fprintf-return-value
https://gcc.gnu.org/PR79327
fixed upstream and in gcc-7.0.1-0.6.fc26

perl-Prima-1.50-1.fc26.src.rpm
-fprintf-return-value doesn't handle flexible-like array members properly
https://gcc.gnu.org/PR79352
fixed upstream and in gcc-7.0.1-0.6.fc26

clucene09-0.9.21b-16.fc24.src.rpm
qt5-qttools-5.7.1-4.fc26.src.rpm
g++ rejects valid code with error: looser throw specifier
https://gcc.gnu.org/PR79393

Failures due to new warnings and -Werror
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
efivar-30-4.fc26.src.rpm
a new -Walloc-size-larger-than warning

bind-dyndb-ldap-11.0-1.fc26.src.rpm
efibootmgr-14-3.fc26.src.rpm
fwupdate-8-2.fc26.src.rpm
a new -Wduplicate-decl-specifier warning

mstflint-4.4.0-1.12.gd1edd58.1.fc26.src.rpm
a new -Wformat-length warning

blobwars-1.19-13.fc24.src.rpm
czmq-4.0.2-1.fc26.src.rpm
elfutils-0.168-1.fc26.src.rpm
fcoe-utils-1.0.30-5.git91c0c8c.fc24.src.rpm
glib2-2.51.0-2.fc26.src.rpm
glibc-2.24.90-26.fc26.src.rpm
ipv6calc-0.99.2-17.fc26.src.rpm
isomd5sum-1.1.0-4.fc26.src.rpm
ixpdimm_sw-01.00.00.2144-1.fc26.src.rpm
libhid-0.2.17-21.fc25.src.rpm
libpsm2-10.2.2-2.fc25.src.rpm
libyui-3.2.8-1.fc26.src.rpm
logrotate-3.11.0-2.fc26.src.rpm
memcached-1.4.33-1.fc26.src.rpm
nfs-ganesha-2.4.1-2.fc26.src.rpm
nodm-0.12-1.fc25.src.rpm
openvas-libraries-8.0.8-2.fc26.src.rpm
pacemaker-1.1.16-1.fc26.src.rpm
sbd-1.2.1-3.fc24.1.src.rpm
Simple-Fuzzer-0.7.1-1.src.rpm
usbip-4.5-1.fc25.src.rpm
varnish-5.0.0-1.fc26.src.rpm
vsftpd-3.0.3-4.fc26.src.rpm
xrootd-4.5.0-1.fc26.src.rpm
a new -Wformat-truncation

ArpON-3.0-2.fc25.src.rpm
clevis-2-1.fc26.src.rpm
coreboot-utils-4.5-2.fc26.src.rpm
crash-7.1.7-1.fc26.src.rpm
gmqcc-0.3.5-10.fc26.src.rpm
hidrd-0.2.0-3.20160712git1abf7033.fc25.src.rpm
libs3-2.0-0.5.20161104gita052a00.fc26.src.rpm
libvma-8.0.1-1.fc25.src.rpm
lldpad-1.0.1-4.git036e314.fc24.src.rpm
luksmeta-3-1.fc26.src.rpm
mdadm-3.4-3.fc26.src.rpm
mingw-w64-tools-3.1.999-0.8.trunk.git430863.20140530.fc24.src.rpm
msgpack-1.4.1-1.fc25.src.rpm
percona-xtrabackup-2.2.9-4.fc24.src.rpm
pesign-0.112-5.fc26.src.rpm
pidgin-sipe-1.21.1-1.fc25.src.rpm
qpid-cpp-1.35.0-1.fc26.src.rpm
qpid-qmf-1.35.0-1.fc26.src.rpm
quassel-irssi-0-2.20161120gitcbd9bd7.fc26.src.rpm
sway-0.11-4.fc26.src.rpm
a new -Wimplicit-fallthrough warning

cdrkit-1.1.11-32.fc26.src.rpm
a new -Wint-in-bool-contex warning

Invalid C++
~~~~~~~~~~~~~~~~~~~~~~
Add64-1.2.2-10.fc24.src.rpm
berusky2-0.10-11.fc24.src.rpm
easystroke-0.6.0-15.fc24.src.rpm
guitarix-0.35.0-3.fc26.src.rpm
inkscape-0.92.0-11.fc26.src.rpm
jack-audio-connection-kit-1.9.10-5.fc24.src.rpm
kate4-4.14.3-16.fc24.src.rpm
milkytracker-0.90.86-3.fc25.src.rpm
muse-2.2.1-2.fc24.src.rpm
rawtherapee-4.2.1234-2.20161105gitb766110.fc26.src.rpm
svxlink-15.11-1.fc24.src.rpm
vdr-2.2.0-10.fc25.src.rpm
error: call of overloaded 'abs(...)' is ambiguous
All overloads of the abs function are now declared by including either
of <cstdlib> or <cmath>, and the custom overloads conflict with one of
the additional overloads in the standard headers. Additionally,
calling abs with an argument of unsigned type is now ill-formed after
inclusion of any standard abs overload.

capnproto-0.5.3-2.fc25.src.rpm
error: could not convert template argument 'b' from 'bool' to 'capnp::Kind'
Presumably invalid C++.

atlascpp-0.6.3-6.fc24.src.rpm
glmark2-2014.03-6.fc25.src.rpm
ladish-2-13.3.gitfcb16ae.fc24.src.rpm
libinvm-cim-1.0.0.1043-1.fc26.src.rpm
libvoikko-3.8-2.fc25.src.rpm
openoffice.org-diafilter-1.7.5-1.fc24.src.rpm
pulseview-0.3.0-1.fc24.src.rpm
error: dynamic exception specifications are deprecated in C++11; use 'noexcept' instead
In C++17, throw(int) is no longer valid.

asgp-1.0.18-6.fc26.src.rpm
bear-0.7.0-0.11.20161230git781ec80.fc26.src.rpm
crawl-0.19.1-1.fc26.src.rpm
libclaw-1.7.4-16.fc26.src.rpm
plee-the-bear-0.7.0-10.fc26.src.rpm
steghide-0.5.1-28.fc26.src.rpm
error: expected primary-expression before ... token
Invalid C++ code; it needs to be "position.template cast_value_type_to".
See https://womble.decadent.org.uk/c++/template-faq.html#disambiguation.

normaliz-2.12.2-8.fc24.src.rpm
error: expression cannot be used as a function
Invalid C++, Jon opened:
https://bugzilla.redhat.com/show_bug.cgi?id=1417678

apt-cacher-ng-0.9.0-1.fc24.src.rpm
clementine-1.3.1-4.fc26.src.rpm
conky-1.10.4-1.fc26.src.rpm
dwgrep-0.2-4.fc24.src.rpm
fflas-ffpack-2.2.2-3.fc26.src.rpm
glogg-1.1.2-1.fc26.src.rpm
gpgme-1.8.0-7.fc26.src.rpm
gtengine-3.5-1.fc26.src.rpm
lldb-3.9.0-3.fc26.src.rpm
pingus-0.7.6-20.fc24.src.rpm
plasma-desktop-5.8.5-2.fc26.src.rpm
worker-3.3.3-6.fc24.src.rpm
Quoting from porting_to:
Several C++ Standard Library headers have been changed to no longer
include the <functional> header. As such, C++ programs that used components
defined in <functional> without explicitly including that header will no
longer compile.

Previously components such as std::bind and std::function were implicitly
defined after including unrelated headers such as <memory>, <futex>, <mutex>,
and <regex>. Correct code should #include <functional> to define them.

Also see https://bugzilla.redhat.com/show_bug.cgi?id=1417383

bison-3.0.4-4.fc24.src.rpm
This package contains code that is trying to add some classes to std::,
that is undefined behavior.

Coin2-2.5.0-28.fc26.src.rpm
Coin3-3.1.3-18.fc26.src.rpm
dbus-c++-0.9.0-11.fc24.src.rpm
festival-1.96-32.fc24.src.rpm
gambas3-3.9.2-2.fc26.src.rpm
htdig-3.2.0-0.25.b6.fc24.src.rpm
kyotocabinet-1.2.76-11.fc26.src.rpm
mup-6.5-1.fc26.src.rpm
percolator-3.01-1.fc26.src.rpm
pki-core-10.3.5-10.fc26.src.rpm
scim-1.4.17-1.fc25.src.rpm
scim-bridge-0.4.16-22.fc24.src.rpm
speed-dreams-2.2.1-2.fc26.src.rpm
torcs-1.3.7-1.fc25.src.rpm
error: invalid conversion from 'char' to 'char*'
s = '\0'
This code is invalid in C++11 and GCC doesn't compile it anymore (pointer
conversions are only allowed for an integral-literal and not a character
literal). In C++03 and in C the compiler warns (-Wpointer-compare).

vegastrike-0.5.1-27.r1.fc24.src.rpm
error: request for member ... in ...
Looks like '.' is used instead of '->', so invalid C++.

apvlv-0.1.4-11.fc25.src.rpm
arm-none-eabi-gcc-cs-6.2.0-1.fc26.src.rpm
aspell-0.60.6.1-14.fc26.src.rpm
avr-gcc-6.2.0-1.fc26.src.rpm
dyninst-9.3.0-1.fc26.src.rpm
edk2-20161105git3b25ca8-1.fc26.src.rpm
frysk-0.4-54.fc26.src.rpm
gearmand-1.1.14-1.fc26.src.rpm
glog-0.3.3-12.fc25.src.rpm
gpsim-0.29.0-1.fc24.src.rpm
hylafax+-5.5.8-1.fc24.src.rpm
kdelibs-4.14.28-1.fc26.src.rpm
libmemcached-1.0.18-7.fc24.src.rpm
libmp4v2-2.1.0-0.6.trunkREV507.fc24.src.rpm
mingw-gcc-6.3.0-1.fc26.src.rpm
mozjs17-17.0.0-16.fc26.src.rpm
mozjs24-24.2.0-11.fc26.src.rpm
ode-0.14-2.fc24.src.rpm
oorexx-4.2.0-3.fc26.src.rpm
primer3-2.3.6-6.fc24.src.rpm
shigofumi-0.6-4.fc25.src.rpm
snoopy-2.2.6-3.fc24.src.rpm
vdr-live-0.3.0-24.20150213git6ea279a.fc26.src.rpm
xmoto-0.5.11-9.fc24.src.rpm
error: ISO C++ forbids comparison between pointer and integer
You can no longer write "ptr == '\0'" as it's invalid C++11.

atanks-6.5-1.fc26.src.rpm
blitz-0.10-10.fc24.src.rpm
nodejs-6.9.4-1.fc26.src.rpm
OpenEXR-2.2.0-6.fc26.src.rpm
qt5-qtbase-5.7.1-12.fc26.src.rpm
qt5-qtwebengine-5.7.1-4.fc26.src.rpm
v8-314-3.14.5.10-3.fc25.src.rpm
z3-4.5.0-1.fc26.src.rpm
error: invalid use of incomplete type
This code is ill-formed and G++ now rejects such code.

k3d-0.8.0.6-2.fc26.src.rpm
error: no match for 'operator<<' (operand types are 'std::ostream
{aka std::basic_ostream<char>}' and 'const double')
Missing <ostream>.

codeblocks-16.01-2.fc26.src.rpm
cyphesis-0.6.2-9.fc24.src.rpm
there are no arguments to .. that depend on a template parameter,
so a declaration of ... must be available
This code is ill-formed and G++ now rejects such code.

ETL-0.04.22-1.fc26.src.rpm
libffado-2.3.0-1.fc26.src.rpm
meshlab-1.3.2-10.fc25.src.rpm
sflphone-1.4.1-20.fc26.src.rpm
error: no matching function for call to ...
Invalid code.

mongo-cxx-driver-1.1.2-3.fc26.src.rpm
Unknown failure. Fails in a shim test, so perhaps some
libstdc++ changes?

gmm-5.0-1.fc24.src.rpm
Package exceeded -ftemplate-depth limit.

cppcheck-1.75-1.fc26.src.rpm
pdns-4.0.1-3.fc26.src.rpm
pdns-recursor-4.0.3-2.fc26.src.rpm
error: types may not be defined in a for-range-declaration
Invalid code: "The decl-specifier-seq shall not define a
class or enumeration."
(This used to be a warning.)

openigtlink-0-0.2.20151015gitccb2438.fc24.src.rpm
error: 'void*' is not a pointer-to-object type
Invalid code.

Other
~~~~~
ruby-2.3.3-61.fc26.src.rpm
This was a GC bug in Ruby; fixed.
https://bugzilla.redhat.com/show_bug.cgi?id=1417590

florist-2011-19.fc24.src.rpm
matreshka-0.7.0-5.fc24.src.rpm
Error: no native compiler found for language 'ada', default runtime
This is gcc-gnat related. Didn't investigate further.

cryptlib-3.4.3-8.fc26.src.rpm
cryptobone-1.1.1-2.fc26.src.rpm
error: CPU you selected does not support x86-64 instruction set
-mcpu=pentium in the options list.

diffutils-3.5-1.fc26.src.rpm
A bug in the package. I opened a BZ with a patch:
https://bugzilla.redhat.com/show_bug.cgi?id=1419536

libbson-1.5.1-1.fc26.src.rpm
-fwrapv helped, so I bet this is a bug in the package. I suggest
to use -fsanitize=undefined to see where the overflow happens.

libosmocore-0.9.0-4.2015110~t916423ef.fc24.src.rpm
-fgnu89-inline helped. See what I wrote in
https://gcc.gnu.org/gcc-5/porting_to.html

ecl-16.1.2-1.fc26.src.rpm
This failed because there was an insanely huge struct and the new
diagnostics (fix-it hints) was trying to print it all. I killed
the build.

coin-or-Dip-0.91.2-6.fc25.src.rpm
R-DynDoc-1.52.0-1.fc26.src.rpm
R-pls-2.4.3-5.fc24.src.rpm
Missing libgfortran 7.

bastet-0.43.1-11.fc24.src.rpm
ocaml-cil-1.7.3-27.fc26.src.rpm
ocp-0.1.22-0.10.git849cc42.fc26.src.rpm
openms-2.1.0-3.fc26.src.rpm
openttd-1.6.1-2.fc26.src.rpm
These are not ready for a new gcc version (gcc -dumpversion says '7'
and not e.g. '6.3.1') and the packages fail to cope with that.

perl-HTTP-Proxy-0.304-3.fc25.src.rpm
perl-OpenGL-0.6704-5.fc25.src.rpm
Two Perl failures that I wasn't able to analyze, but since they
don't use gcc at all, I presume it's not gcc's fault.

vavoom-1.33-19.fc26.src.rpm
For some unknown reason a piece of a Makefile isn't performed,
resulting in a failure.

arc-gui-clients-0.4.6-9.fc25.src.rpm
archimedes-2.0.1-5.fc24.src.rpm
audacity-2.1.3-0.7.20161109git53a5c93.fc26.src.rpm
bwm-ng-0.6.1-2.fc24.src.rpm
ember-0.7.2-15.fc25.src.rpm
extremetuxracer-0.7.4-1.fc26.src.rpm
funguloids-1.06-18.fc24.src.rpm
glite-lbjp-common-gsoap-plugin-3.2.12-10.fc26.src.rpm
gnokii-0.6.31-14.fc24.src.rpm
gobby-0.4.13-10.fc24.src.rpm
linbox-1.4.2-5.fc26.src.rpm
marsshooter-0.7.6-2.fc26.src.rpm
mgetty-1.1.37-1.fc26.src.rpm
mkvtoolnix-9.6.0-1.fc26.src.rpm
openalchemist-0.4-19.fc24.src.rpm
powerline-2.5-4.fc26.src.rpm
sobby-0.4.7-12.fc24.src.rpm
tunneler-1.1.1-17.fc24.src.rpm
Undefined references. Some of them might be due to C99/GNU89 inline
semantics, but some of them are result of the mangling changes, see
porting_to.html.

pspp-0.10.2-1.fc26.src.rpm
A bug in the package, see
https://bugzilla.redhat.com/show_bug.cgi?id=1419174

Marek
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscrib
Sérgio Basto
2017-02-07 23:39:36 UTC
Permalink
Hi, 
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to reject invalid code
that had previously been accepted, plus invalid conversions with '\0' are now
rejected)
Thanks for exhaustive explanation . 
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
                     if (pSlash != '\0') {

Best regards,
--
Sérgio M. B.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe se
Stephen John Smoogen
2017-02-07 23:56:43 UTC
Permalink
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to reject invalid code
that had previously been accepted, plus invalid conversions with '\0' are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash declared?
What is the context of the code you have quoted?

Thanks
Post by Sérgio Basto
Best regards,
--
Sérgio M. B.
_______________________________________________
--
Stephen J Smoogen.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe
Tom Hughes
2017-02-07 23:59:33 UTC
Permalink
Post by Stephen John Smoogen
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to reject invalid code
that had previously been accepted, plus invalid conversions with '\0' are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash declared?
What is the context of the code you have quoted?
Well I'm guessing it's a pointer to char and that should probably be:

if (*pSlash != '\0')

That's nothing to do with gcc 7 though as gcc 6 should also have
objected to that code.

Tom
--
Tom Hughes (***@compton.nu)
http://compton.nu/
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-***@lists.fedoraprojec
Stephen John Smoogen
2017-02-08 00:21:03 UTC
Permalink
Post by Tom Hughes
Post by Stephen John Smoogen
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to reject invalid code
that had previously been accepted, plus invalid conversions with '\0' are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash declared?
What is the context of the code you have quoted?
if (*pSlash != '\0')
That's nothing to do with gcc 7 though as gcc 6 should also have objected to
that code.
Yeah.. I just wanted to make sure as sometimes people do strange
pointer comparisons and I didn't know how long the code had not
compiled.

Thanks for the tip.
Post by Tom Hughes
Tom
--
http://compton.nu/
_______________________________________________
--
Stephen J Smoogen.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to dev
Jakub Jelinek
2017-02-08 07:42:58 UTC
Permalink
Post by Tom Hughes
Post by Stephen John Smoogen
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to reject invalid code
that had previously been accepted, plus invalid conversions with '\0' are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash declared?
What is the context of the code you have quoted?
if (*pSlash != '\0')
Yeah, or it can be also
if (pSlash != NULL)
or
if (pSlash)
etc.
It really depends on what the code is trying to do.

Jakub
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-***@lists.fedoraproject
Jonathan Wakely
2017-02-08 13:05:17 UTC
Permalink
Post by Jakub Jelinek
Post by Tom Hughes
Post by Stephen John Smoogen
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to reject
invalid code
that had previously been accepted, plus invalid conversions with '\0' are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash declared?
What is the context of the code you have quoted?
if (*pSlash != '\0')
Yeah, or it can be also
if (pSlash != NULL)
or
if (pSlash)
etc.
It really depends on what the code is trying to do.
Yeah, a lot of "interesting" code I looked at was trying to check for
a null pointer by comparing to '\0' or was doing char* p = '\0' to
initialize a pointer to null.

Simply changing it to (*pSlash != '\0') would cause a segfault if that
pointer can be null and the code was trying to check for that case.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to
Sérgio Basto
2017-02-08 00:14:18 UTC
Permalink
Post by Stephen John Smoogen
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to
reject
invalid code
that had previously been accepted, plus invalid conversions with
'\0'
are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
                     if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash
declared?
What is the context of the code you have quoted?
https://github.com/sergiomb2/libmp4v2/blob/master/src/rtphint.cpp#L342

it is package libmp4v2 [1] but I just built it locally , let me know if
you need more information .

[1]
https://apps.fedoraproject.org/packages/libmp4v2

Thanks, 
--
Sérgio M. B.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe sen
Stephen John Smoogen
2017-02-08 00:19:31 UTC
Permalink
Post by Sérgio Basto
Post by Stephen John Smoogen
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to
reject
invalid code
that had previously been accepted, plus invalid conversions with
'\0'
are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash
declared?
What is the context of the code you have quoted?
https://github.com/sergiomb2/libmp4v2/blob/master/src/rtphint.cpp#L342
it is package libmp4v2 [1] but I just built it locally , let me know if
you need more information .
[1]
https://apps.fedoraproject.org/packages/libmp4v2
Thank you for the info. The fix Tom pointed out should be correct
there. The pointer needs to be dereferenced so that the comparison is
'valid'
--
Stephen J Smoogen.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send a
Sérgio Basto
2017-02-08 00:54:26 UTC
Permalink
Post by Stephen John Smoogen
Post by Sérgio Basto
Post by Stephen John Smoogen
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to
reject
invalid code
that had previously been accepted, plus invalid conversions with
'\0'
are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
                     if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash declared?
What is the context of the code you have quoted?
https://github.com/sergiomb2/libmp4v2/blob/master/src/rtphint.cpp#L
342
it is package libmp4v2 [1] but I just built it locally , let me know if
you need more information .
[1]
https://apps.fedoraproject.org/packages/libmp4v2
Thank you for the info. The fix Tom pointed out should be correct
there. The pointer needs to be dereferenced so that the comparison is
'valid'
Fixed :) thanks 
--
Sérgio M. B.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to de
Tom Hughes
2017-02-08 00:22:24 UTC
Permalink
Post by Sérgio Basto
Post by Stephen John Smoogen
Post by Sérgio Basto
Hi,
Post by Marek Polacek
some C++ FE changes (especially the "Fix type-dependence
and the current instantiation" changes made the compiler to
reject
invalid code
that had previously been accepted, plus invalid conversions with
'\0'
are now
rejected)
Thanks for exhaustive explanation .
I have this case, how we fix ?
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between
pointer and integer [-fpermissive]
if (pSlash != '\0') {
Someone would need to see more code than that. How is pSlash
declared?
What is the context of the code you have quoted?
https://github.com/sergiomb2/libmp4v2/blob/master/src/rtphint.cpp#L342
So it's exactly as I said. That code is just wrong and should be:

if (*pSlash != '\0') {

As it stands the body of that if will always execute and when there are
no encoding parameters ppEncodingParams will be returned as a pointer to
an empty string rather than as a null pointer.

Tom
--
Tom Hughes (***@compton.nu)
http://compton.nu/
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscrib
Chuck Anderson
2017-02-08 03:22:27 UTC
Permalink
Post by Marek Polacek
ocp-0.1.22-0.10.git849cc42.fc26.src.rpm
These are not ready for a new gcc version (gcc -dumpversion says '7'
and not e.g. '6.3.1') and the packages fail to cope with that.
Fixed, thanks.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-le
Marek Skalický
2017-02-08 12:11:32 UTC
Permalink
Post by Marek Polacek
It's been a tradition now that every January we rebuild all the Fedora packages
with the upcoming GCC, to reveal as many bugs as possible before we release
the new version.  This year is no different.
There were 18811 packages overall (last year we had 17741 packages).
17263 built fine with the new GCC (mostly gcc-7.0.0-0.1.fc26.src.rpm but I also
used a newer version from rawhide).  1350 failed with both GCC 6 and
GCC 7,
so I ignored these.  This left us with ~198 packages that had to be
analyzed,
a number which, fortunately, was smaller than last year, when we'd had 577 FTBFS to
investigate.
MongoDB is not failing in your rebuild. However latest minor upgrade
(v3.4.2) with gcc 7 is failing.
I've figured out, that is optimization issue (with -O0 it is fine, with
-01 it is failing) and it is ONLY ON ppc64le (other architectures are
fine).

I know which file is cause this issue, but I can't figure out with
which optimization. I get what changes between O0 and O1 in output of
'gcc -O0/1 -Q --help=optimizers' and compiled with -O0 and flags of
individual optimizations (which are added by O1), but failure does not
appear.

What else differs in -O1? How should I debug it?
Post by Marek Polacek
The Fedora packages I rebuilt were grabbed on Jan 12.
It's all fairly good, and nothing particularly stands out.  There is
the usual
batch of new warnings (-Wimplicit-fallthrough and -Wformat-truncation causing
the biggest churn), some C++ FE changes (especially the "Fix type-
dependence
and the current instantiation" changes made the compiler to reject invalid code
that had previously been accepted, plus invalid conversions with '\0' are now
rejected), some libstdc++ changes (header dependency changes), as well as some
mangling changes.
We found several GCC bugs, most of which have already been
fixed.  Furthermore,
Fortran ABI has changed in GCC 7.  Anyway, there's nothing that
particularly
worries me (except perhaps the -fprintf-return-value stuff that might still
cause some wrong codes).
Shortlog appended for the people who want to get an overview of the details.
As usual, there will be a "porting to" document to ease the
transition to the
new GCC.  We already have https://gcc.gnu.org/gcc-7/porting_to.html,
even though
this document is still somewhat in flux.
I'd like to thank Jakub Jelinek and Jonathan Wakely, the guys I roped in to help
me with all this undertaking.
GCC bugs
~~~~~~~~
The following is a list of bugs we've found so far in the compiler and the C++
schroot-1.6.5-16.fc24.src.rpm
ICE in cxx_incomplete_type_diagnostic
https://gcc.gnu.org/PR78690
not fixed yet
python-plyvel-0.9-7.fc26.src.rpm
error: invalid rhs for gimple memory store
https://gcc.gnu.org/PR79232
fixed in gcc-7.0.1-0.4.fc26
mathicgb-1.0-6.20160202.gitbb268df.fc26.src.rpm
ICE in tsubst_copy
https://gcc.gnu.org/PR79253
fixed upstream and in gcc-7.0.1-0.5.fc26
cvc4-1.4-11.fc25.src.rpm
TLS model wrong for static data members
https://gcc.gnu.org/PR79288
fixed in gcc-7.0.1-0.4.fc26
golang-1.7.4-1.fc26.src.rpm
DWARF info for typeof of C function with no args and no
prototype
is empty pointer
https://gcc.gnu.org/PR79289
fixed upstream and in gcc-7.0.1-0.4.fc26
texlive-2016-30.20160520.fc26.src.rpm
tlog-2-1.fc25.src.rpm
wrong code at -O2 and -fprintf-return-value
https://gcc.gnu.org/PR79327
fixed upstream and in gcc-7.0.1-0.6.fc26
perl-Prima-1.50-1.fc26.src.rpm
-fprintf-return-value doesn't handle flexible-like array
members properly
https://gcc.gnu.org/PR79352
fixed upstream and in gcc-7.0.1-0.6.fc26
clucene09-0.9.21b-16.fc24.src.rpm
qt5-qttools-5.7.1-4.fc26.src.rpm
g++ rejects valid code with error: looser throw specifier
https://gcc.gnu.org/PR79393 class="Apple-tab-span"
style="white-space:pre">
Failures due to new warnings and -Werror
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
efivar-30-4.fc26.src.rpm
a new -Walloc-size-larger-than warning
bind-dyndb-ldap-11.0-1.fc26.src.rpm
efibootmgr-14-3.fc26.src.rpm
fwupdate-8-2.fc26.src.rpm
a new -Wduplicate-decl-specifier warning
mstflint-4.4.0-1.12.gd1edd58.1.fc26.src.rpm
a new -Wformat-length warning
blobwars-1.19-13.fc24.src.rpm
czmq-4.0.2-1.fc26.src.rpm
elfutils-0.168-1.fc26.src.rpm
fcoe-utils-1.0.30-5.git91c0c8c.fc24.src.rpm
glib2-2.51.0-2.fc26.src.rpm
glibc-2.24.90-26.fc26.src.rpm
ipv6calc-0.99.2-17.fc26.src.rpm
isomd5sum-1.1.0-4.fc26.src.rpm
ixpdimm_sw-01.00.00.2144-1.fc26.src.rpm
libhid-0.2.17-21.fc25.src.rpm
libpsm2-10.2.2-2.fc25.src.rpm
libyui-3.2.8-1.fc26.src.rpm
logrotate-3.11.0-2.fc26.src.rpm
memcached-1.4.33-1.fc26.src.rpm
nfs-ganesha-2.4.1-2.fc26.src.rpm
nodm-0.12-1.fc25.src.rpm
openvas-libraries-8.0.8-2.fc26.src.rpm
pacemaker-1.1.16-1.fc26.src.rpm
sbd-1.2.1-3.fc24.1.src.rpm
Simple-Fuzzer-0.7.1-1.src.rpm
usbip-4.5-1.fc25.src.rpm
varnish-5.0.0-1.fc26.src.rpm
vsftpd-3.0.3-4.fc26.src.rpm
xrootd-4.5.0-1.fc26.src.rpm
a new -Wformat-truncation
ArpON-3.0-2.fc25.src.rpm
clevis-2-1.fc26.src.rpm
coreboot-utils-4.5-2.fc26.src.rpm
crash-7.1.7-1.fc26.src.rpm
gmqcc-0.3.5-10.fc26.src.rpm
hidrd-0.2.0-3.20160712git1abf7033.fc25.src.rpm
libs3-2.0-0.5.20161104gita052a00.fc26.src.rpm
libvma-8.0.1-1.fc25.src.rpm
lldpad-1.0.1-4.git036e314.fc24.src.rpm
luksmeta-3-1.fc26.src.rpm
mdadm-3.4-3.fc26.src.rpm
mingw-w64-tools-3.1.999-0.8.trunk.git430863.20140530.fc24.src.rpm
msgpack-1.4.1-1.fc25.src.rpm
percona-xtrabackup-2.2.9-4.fc24.src.rpm
pesign-0.112-5.fc26.src.rpm
pidgin-sipe-1.21.1-1.fc25.src.rpm
qpid-cpp-1.35.0-1.fc26.src.rpm
qpid-qmf-1.35.0-1.fc26.src.rpm
quassel-irssi-0-2.20161120gitcbd9bd7.fc26.src.rpm
sway-0.11-4.fc26.src.rpm
a new -Wimplicit-fallthrough warning
cdrkit-1.1.11-32.fc26.src.rpm
a new -Wint-in-bool-contex warning
Invalid C++
~~~~~~~~~~~~~~~~~~~~~~
Add64-1.2.2-10.fc24.src.rpm
berusky2-0.10-11.fc24.src.rpm
easystroke-0.6.0-15.fc24.src.rpm
guitarix-0.35.0-3.fc26.src.rpm
inkscape-0.92.0-11.fc26.src.rpm
jack-audio-connection-kit-1.9.10-5.fc24.src.rpm
kate4-4.14.3-16.fc24.src.rpm
milkytracker-0.90.86-3.fc25.src.rpm
muse-2.2.1-2.fc24.src.rpm
rawtherapee-4.2.1234-2.20161105gitb766110.fc26.src.rpm
svxlink-15.11-1.fc24.src.rpm
vdr-2.2.0-10.fc25.src.rpm
error: call of overloaded 'abs(...)' is ambiguous
All overloads of the abs function are now declared by including either
of <cstdlib> or <cmath>, and the custom overloads conflict with one of
the additional overloads in the standard
headers.  Additionally,
calling abs with an argument of unsigned type is now ill-formed after
inclusion of any standard abs overload. 
capnproto-0.5.3-2.fc25.src.rpm
error: could not convert template argument 'b' from 'bool' to
'capnp::Kind'
Presumably invalid C++.
atlascpp-0.6.3-6.fc24.src.rpm
glmark2-2014.03-6.fc25.src.rpm
ladish-2-13.3.gitfcb16ae.fc24.src.rpm
libinvm-cim-1.0.0.1043-1.fc26.src.rpm
libvoikko-3.8-2.fc25.src.rpm
openoffice.org-diafilter-1.7.5-1.fc24.src.rpm
pulseview-0.3.0-1.fc24.src.rpm
error: dynamic exception specifications are deprecated in
C++11; use 'noexcept' instead
In C++17, throw(int) is no longer valid.
asgp-1.0.18-6.fc26.src.rpm
bear-0.7.0-0.11.20161230git781ec80.fc26.src.rpm
crawl-0.19.1-1.fc26.src.rpm
libclaw-1.7.4-16.fc26.src.rpm
plee-the-bear-0.7.0-10.fc26.src.rpm
steghide-0.5.1-28.fc26.src.rpm
error: expected primary-expression before ... token
Invalid C++ code; it needs to be "position.template
cast_value_type_to".
See https://womble.decadent.org.uk/c++/template-faq.html#disamb
iguation.
normaliz-2.12.2-8.fc24.src.rpm
error: expression cannot be used as a function
https://bugzilla.redhat.com/show_bug.cgi?id=1417678
class="Apple-tab-span" style="white-space:pre">
apt-cacher-ng-0.9.0-1.fc24.src.rpm
clementine-1.3.1-4.fc26.src.rpm
conky-1.10.4-1.fc26.src.rpm
dwgrep-0.2-4.fc24.src.rpm
fflas-ffpack-2.2.2-3.fc26.src.rpm
glogg-1.1.2-1.fc26.src.rpm
gpgme-1.8.0-7.fc26.src.rpm
gtengine-3.5-1.fc26.src.rpm
lldb-3.9.0-3.fc26.src.rpm
pingus-0.7.6-20.fc24.src.rpm
plasma-desktop-5.8.5-2.fc26.src.rpm
worker-3.3.3-6.fc24.src.rpm
Several C++ Standard Library headers have been changed to no
longer
include the <functional> header. As such, C++ programs that
used components
defined in <functional> without explicitly including that
header will no
longer compile.
Previously components such as std::bind and std::function were implicitly
defined after including unrelated headers such as <memory>,
<futex>, <mutex>,
and <regex>. Correct code should #include <functional> to
define them. 
Also see https://bugzilla.redhat.com/show_bug.cgi?id=1417383
bison-3.0.4-4.fc24.src.rpm
This package contains code that is trying to add some classes
to std::,
that is undefined behavior.
Coin2-2.5.0-28.fc26.src.rpm
Coin3-3.1.3-18.fc26.src.rpm
dbus-c++-0.9.0-11.fc24.src.rpm
festival-1.96-32.fc24.src.rpm
gambas3-3.9.2-2.fc26.src.rpm
htdig-3.2.0-0.25.b6.fc24.src.rpm
kyotocabinet-1.2.76-11.fc26.src.rpm
mup-6.5-1.fc26.src.rpm
percolator-3.01-1.fc26.src.rpm
pki-core-10.3.5-10.fc26.src.rpm
scim-1.4.17-1.fc25.src.rpm
scim-bridge-0.4.16-22.fc24.src.rpm
speed-dreams-2.2.1-2.fc26.src.rpm
torcs-1.3.7-1.fc25.src.rpm
error: invalid conversion from 'char' to 'char*'
s = '\0'
This code is invalid in C++11 and GCC doesn't compile it
anymore (pointer
conversions are only allowed for an integral-literal and not a character
literal).  In C++03 and in C the compiler warns (-Wpointer-
compare).
vegastrike-0.5.1-27.r1.fc24.src.rpm
error: request for member ... in ...
Looks like '.' is used instead of '->', so invalid C++.
apvlv-0.1.4-11.fc25.src.rpm
arm-none-eabi-gcc-cs-6.2.0-1.fc26.src.rpm
aspell-0.60.6.1-14.fc26.src.rpm
avr-gcc-6.2.0-1.fc26.src.rpm
dyninst-9.3.0-1.fc26.src.rpm
edk2-20161105git3b25ca8-1.fc26.src.rpm
frysk-0.4-54.fc26.src.rpm
gearmand-1.1.14-1.fc26.src.rpm
glog-0.3.3-12.fc25.src.rpm
gpsim-0.29.0-1.fc24.src.rpm
hylafax+-5.5.8-1.fc24.src.rpm
kdelibs-4.14.28-1.fc26.src.rpm
libmemcached-1.0.18-7.fc24.src.rpm
libmp4v2-2.1.0-0.6.trunkREV507.fc24.src.rpm
mingw-gcc-6.3.0-1.fc26.src.rpm
mozjs17-17.0.0-16.fc26.src.rpm
mozjs24-24.2.0-11.fc26.src.rpm
ode-0.14-2.fc24.src.rpm
oorexx-4.2.0-3.fc26.src.rpm
primer3-2.3.6-6.fc24.src.rpm
shigofumi-0.6-4.fc25.src.rpm
snoopy-2.2.6-3.fc24.src.rpm
vdr-live-0.3.0-24.20150213git6ea279a.fc26.src.rpm
xmoto-0.5.11-9.fc24.src.rpm
error: ISO C++ forbids comparison between pointer and integer
You can no longer write "ptr == '\0'" as it's invalid C++11.
atanks-6.5-1.fc26.src.rpm
blitz-0.10-10.fc24.src.rpm
nodejs-6.9.4-1.fc26.src.rpm
OpenEXR-2.2.0-6.fc26.src.rpm
qt5-qtbase-5.7.1-12.fc26.src.rpm
qt5-qtwebengine-5.7.1-4.fc26.src.rpm
v8-314-3.14.5.10-3.fc25.src.rpm
z3-4.5.0-1.fc26.src.rpm
error: invalid use of incomplete type
This code is ill-formed and G++ now rejects such code.
k3d-0.8.0.6-2.fc26.src.rpm
error: no match for 'operator<<' (operand types are
'std::ostream
{aka std::basic_ostream<char>}' and 'const double')
Missing <ostream>.
codeblocks-16.01-2.fc26.src.rpm
cyphesis-0.6.2-9.fc24.src.rpm
there are no arguments to .. that depend on a template
parameter,
so a declaration of ... must be available
This code is ill-formed and G++ now rejects such code.
ETL-0.04.22-1.fc26.src.rpm
libffado-2.3.0-1.fc26.src.rpm
meshlab-1.3.2-10.fc25.src.rpm
sflphone-1.4.1-20.fc26.src.rpm
error: no matching function for call to ...
Invalid code.
mongo-cxx-driver-1.1.2-3.fc26.src.rpm
Unknown failure.  Fails in a shim test, so perhaps some
libstdc++ changes?
gmm-5.0-1.fc24.src.rpm
Package exceeded -ftemplate-depth limit.
cppcheck-1.75-1.fc26.src.rpm
pdns-4.0.1-3.fc26.src.rpm
pdns-recursor-4.0.3-2.fc26.src.rpm
error: types may not be defined in a for-range-declaration
Invalid code: "The decl-specifier-seq shall not define a
class or enumeration."
(This used to be a warning.)
openigtlink-0-0.2.20151015gitccb2438.fc24.src.rpm
error: 'void*' is not a pointer-to-object type
Invalid code.
Other
~~~~~
ruby-2.3.3-61.fc26.src.rpm
This was a GC bug in Ruby; fixed.
https://bugzilla.redhat.com/show_bug.cgi?id=1417590
florist-2011-19.fc24.src.rpm
matreshka-0.7.0-5.fc24.src.rpm
Error: no native compiler found for language 'ada', default
runtime
This is gcc-gnat related.  Didn't investigate further.
cryptlib-3.4.3-8.fc26.src.rpm
cryptobone-1.1.1-2.fc26.src.rpm
error: CPU you selected does not support x86-64 instruction set
-mcpu=pentium in the options list.
diffutils-3.5-1.fc26.src.rpm
https://bugzilla.redhat.com/show_bug.cgi?id=1419536
libbson-1.5.1-1.fc26.src.rpm
-fwrapv helped, so I bet this is a bug in the package.  I
suggest
to use -fsanitize=undefined to see where the overflow happens.
libosmocore-0.9.0-4.2015110~t916423ef.fc24.src.rpm
-fgnu89-inline helped.  See what I wrote in
https://gcc.gnu.org/gcc-5/porting_to.html
ecl-16.1.2-1.fc26.src.rpm
This failed because there was an insanely huge struct and the
new
diagnostics (fix-it hints) was trying to print it all.  I
killed
the build.
coin-or-Dip-0.91.2-6.fc25.src.rpm
R-DynDoc-1.52.0-1.fc26.src.rpm
R-pls-2.4.3-5.fc24.src.rpm
Missing libgfortran 7.
bastet-0.43.1-11.fc24.src.rpm
ocaml-cil-1.7.3-27.fc26.src.rpm
ocp-0.1.22-0.10.git849cc42.fc26.src.rpm
openms-2.1.0-3.fc26.src.rpm
openttd-1.6.1-2.fc26.src.rpm
These are not ready for a new gcc version (gcc -dumpversion
says '7'
and not e.g. '6.3.1') and the packages fail to cope with that.
perl-HTTP-Proxy-0.304-3.fc25.src.rpm
perl-OpenGL-0.6704-5.fc25.src.rpm
Two Perl failures that I wasn't able to analyze, but since they
don't use gcc at all, I presume it's not gcc's fault.
vavoom-1.33-19.fc26.src.rpm
For some unknown reason a piece of a Makefile isn't performed,
resulting in a failure.
arc-gui-clients-0.4.6-9.fc25.src.rpm
archimedes-2.0.1-5.fc24.src.rpm
audacity-2.1.3-0.7.20161109git53a5c93.fc26.src.rpm
bwm-ng-0.6.1-2.fc24.src.rpm
ember-0.7.2-15.fc25.src.rpm
extremetuxracer-0.7.4-1.fc26.src.rpm
funguloids-1.06-18.fc24.src.rpm
glite-lbjp-common-gsoap-plugin-3.2.12-10.fc26.src.rpm
gnokii-0.6.31-14.fc24.src.rpm
gobby-0.4.13-10.fc24.src.rpm
linbox-1.4.2-5.fc26.src.rpm
marsshooter-0.7.6-2.fc26.src.rpm
mgetty-1.1.37-1.fc26.src.rpm
mkvtoolnix-9.6.0-1.fc26.src.rpm
openalchemist-0.4-19.fc24.src.rpm
powerline-2.5-4.fc26.src.rpm
sobby-0.4.7-12.fc24.src.rpm
tunneler-1.1.1-17.fc24.src.rpm
Undefined references.  Some of them might be due to C99/GNU89
inline
semantics, but some of them are result of the mangling changes, see
porting_to.html.
pspp-0.10.2-1.fc26.src.rpm
A bug in the package, see
https://bugzilla.redhat.com/show_bug.cgi?id=1419174
Marek
_______________________________________________
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to
Jakub Jelinek
2017-02-08 12:30:17 UTC
Permalink
Post by Marek Skalický
Post by Marek Polacek
It's been a tradition now that every January we rebuild all the Fedora packages
with the upcoming GCC, to reveal as many bugs as possible before we release
the new version.  This year is no different.
There were 18811 packages overall (last year we had 17741 packages).
17263 built fine with the new GCC (mostly gcc-7.0.0-0.1.fc26.src.rpm but I also
used a newer version from rawhide).  1350 failed with both GCC 6 and
GCC 7,
so I ignored these.  This left us with ~198 packages that had to be
analyzed,
a number which, fortunately, was smaller than last year, when we'd had 577 FTBFS to
investigate.
MongoDB is not failing in your rebuild. However latest minor upgrade
(v3.4.2) with gcc 7 is failing.
I've figured out, that is optimization issue (with -O0 it is fine, with
-01 it is failing) and it is ONLY ON ppc64le (other architectures are
fine).
The test mass rebuild has been performed on x86_64 only.
Post by Marek Skalický
I know which file is cause this issue, but I can't figure out with
which optimization. I get what changes between O0 and O1 in output of
'gcc -O0/1 -Q --help=optimizers' and compiled with -O0 and flags of
individual optimizations (which are added by O1), but failure does not
appear.
What else differs in -O1? How should I debug it?
Many things, and many things aren't even controlled by -f* switches,
at -O0 most of the optimization passes are short-cut.

I'd suggest try -fsanitize=undefined and/or -fsanitize=address to
check if there aren't any obvious bugs in the code, if not, and e.g.
-fno-inline -O1 still reproduces it, try to find which function
is problematic (e.g. through addition of __attribute__((optimize (0)))
to functions within the source and bisecting that way).
If a single function is discovered, then one can often stub functions it
calls and write main that calls that function with the right arguments
to provide self-contained testcase.
Or just file a rhbz with as many details as you can find.

Jakub
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send
Jonathan Wakely
2017-02-08 13:09:23 UTC
Permalink
Post by Marek Skalický
Post by Marek Polacek
It's been a tradition now that every January we rebuild all the Fedora packages
with the upcoming GCC, to reveal as many bugs as possible before we release
the new version.  This year is no different.
There were 18811 packages overall (last year we had 17741 packages).
17263 built fine with the new GCC (mostly gcc-7.0.0-0.1.fc26.src.rpm but I also
used a newer version from rawhide).  1350 failed with both GCC 6 and
GCC 7,
so I ignored these.  This left us with ~198 packages that had to be
analyzed,
a number which, fortunately, was smaller than last year, when we'd had 577 FTBFS to
investigate.
MongoDB is not failing in your rebuild. However latest minor upgrade
(v3.4.2) with gcc 7 is failing.
I've figured out, that is optimization issue (with -O0 it is fine, with
-01 it is failing) and it is ONLY ON ppc64le (other architectures are
fine).
I know which file is cause this issue, but I can't figure out with
which optimization. I get what changes between O0 and O1 in output of
'gcc -O0/1 -Q --help=optimizers' and compiled with -O0 and flags of
individual optimizations (which are added by O1), but failure does not
appear.
Because that doesn't work, see
https://gcc.gnu.org/wiki/FAQ#optimization-options

If you use -O0 then there is ***no*** optimization. At all. None. The
optimizers aren't used, so it doesn't matter which optimizers you
enable with -fxxx flags, none of them gets used.

If you want to narrow down which flag causes the problem you need to
enable optimization (so at least -O1 or -Os or -Og) and then disable
individual optimizations.

i.e. instead of starting with -O0 and adding -faaa and -fbbb, start
with -O1 and use -fno-aaa and -fno-bbb.
Post by Marek Skalický
What else differs in -O1? How should I debug it?
https://gcc.gnu.org/wiki/FAQ#misoptimization
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-***@lists.fedoraproject
Jens Lody
2017-02-11 13:13:57 UTC
Permalink
Am Tue, 7 Feb 2017 22:32:09 +0100
Post by Marek Polacek
codeblocks-16.01-2.fc26.src.rpm
...
Post by Marek Polacek
there are no arguments to .. that depend on a template
parameter, so a declaration of ... must be available
This code is ill-formed and G++ now rejects such code.
Fixed and rebuild on F26.

Jens
Orcan Ogetbil
2017-02-15 02:42:53 UTC
Permalink
Post by Marek Polacek
libffado-2.3.0-1.fc26.src.rpm
sflphone-1.4.1-20.fc26.src.rpm
error: no matching function for call to ...
Invalid code.
I am 99% sure that these 2 errors are due to a bug in dbus-c++. Is the
new compiler attempting to compile (or verify) code in template
classes even if they are not initialized? I suspect that there is
broken code in the Threading class.

log:
-----
usr/include/dbus-c++-1/dbus-c++/dispatcher.h:262:5: error: no matching
function for call to '_init_threading(DBus::Mutex* (&)(), void
(&)(DBus::Mutex*), void (&)(DBus::Mutex*), void (&)(DBus::Mutex*),
DBus::CondVar* (&)(), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*, DBus::Mutex*), bool (&)(DBus::CondVar*,
DBus::Mutex*, int), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*))'
);
^
/usr/include/dbus-c++-1/dbus-c++/dispatcher.h:247:13: note: candidate:
void DBus::_init_threading()
void DXXAPI _init_threading();
^~~~~~~~~~~~~~~
/usr/include/dbus-c++-1/dbus-c++/dispatcher.h:247:13: note:
candidate expects 0 arguments, 10 provided
/usr/include/dbus-c++-1/dbus-c++/dispatcher.h:249:13: note: candidate:
void DBus::_init_threading(DBus::MutexNewFn, DBus::MutexFreeFn,
DBus::MutexLockFn, DBus::MutexUnlockFn, DBus::CondVarNewFn,
DBus::CondVarFreeFn, DBus::CondVarWaitFn, DBus::CondVarWaitTimeoutFn,
DBus::CondVarWakeOneFn, DBus::CondVarWakeAllFn) <near match>
void DXXAPI _init_threading(
^~~~~~~~~~~~~~~
/usr/include/dbus-c++-1/dbus-c++/dispatcher.h:249:13: note:
conversion of argument 3 would be ill-formed:
-----

see:
http://dbus-cplusplus.sourceforge.net/dispatcher_8h_source.html

Best,
Orcan
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to de
Marek Polacek
2017-02-15 09:42:35 UTC
Permalink
Post by Orcan Ogetbil
Post by Marek Polacek
libffado-2.3.0-1.fc26.src.rpm
sflphone-1.4.1-20.fc26.src.rpm
error: no matching function for call to ...
Invalid code.
I am 99% sure that these 2 errors are due to a bug in dbus-c++. Is the
new compiler attempting to compile (or verify) code in template
classes even if they are not initialized? I suspect that there is
broken code in the Threading class.
-----
usr/include/dbus-c++-1/dbus-c++/dispatcher.h:262:5: error: no matching
function for call to '_init_threading(DBus::Mutex* (&)(), void
(&)(DBus::Mutex*), void (&)(DBus::Mutex*), void (&)(DBus::Mutex*),
DBus::CondVar* (&)(), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*, DBus::Mutex*), bool (&)(DBus::CondVar*,
DBus::Mutex*, int), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*))'
);
^
void DBus::_init_threading()
void DXXAPI _init_threading();
^~~~~~~~~~~~~~~
candidate expects 0 arguments, 10 provided
void DBus::_init_threading(DBus::MutexNewFn, DBus::MutexFreeFn,
DBus::MutexLockFn, DBus::MutexUnlockFn, DBus::CondVarNewFn,
DBus::CondVarFreeFn, DBus::CondVarWaitFn, DBus::CondVarWaitTimeoutFn,
DBus::CondVarWakeOneFn, DBus::CondVarWakeAllFn) <near match>
void DXXAPI _init_threading(
^~~~~~~~~~~~~~~
-----
http://dbus-cplusplus.sourceforge.net/dispatcher_8h_source.html
I suppose this is another incarnation of what we described here:
https://gcc.gnu.org/gcc-7/porting_to.html#hypothetical-instantiation

Marek
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@
Jonathan Wakely
2017-02-15 11:30:33 UTC
Permalink
Post by Orcan Ogetbil
Post by Marek Polacek
libffado-2.3.0-1.fc26.src.rpm
sflphone-1.4.1-20.fc26.src.rpm
error: no matching function for call to ...
Invalid code.
I am 99% sure that these 2 errors are due to a bug in dbus-c++. Is the
new compiler attempting to compile (or verify) code in template
classes even if they are not initialized?
Yes, exactly. Previously GCC was fairly forgiving about broken
template code and would check almost nothing until the template was
instantiated. In more recent releases parts of the template which
don't depend on the template arguments get checked earlier. Clang has
been doing this for some time, but it's a more recent change for GCC.
Post by Orcan Ogetbil
I suspect that there is
broken code in the Threading class.
The standard says such code is ill-formed, but that no diagnostic is
required i.e. the compiler is allowed to diagnose the problem, but not
required to (because it could be expensive or difficult to check for
some compilers). So the code was always broken, but now GCC tells you
about it.
Post by Orcan Ogetbil
-----
usr/include/dbus-c++-1/dbus-c++/dispatcher.h:262:5: error: no matching
function for call to '_init_threading(DBus::Mutex* (&)(), void
(&)(DBus::Mutex*), void (&)(DBus::Mutex*), void (&)(DBus::Mutex*),
DBus::CondVar* (&)(), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*, DBus::Mutex*), bool (&)(DBus::CondVar*,
DBus::Mutex*, int), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*))'
);
^
void DBus::_init_threading()
void DXXAPI _init_threading();
^~~~~~~~~~~~~~~
candidate expects 0 arguments, 10 provided
void DBus::_init_threading(DBus::MutexNewFn, DBus::MutexFreeFn,
DBus::MutexLockFn, DBus::MutexUnlockFn, DBus::CondVarNewFn,
DBus::CondVarFreeFn, DBus::CondVarWaitFn, DBus::CondVarWaitTimeoutFn,
DBus::CondVarWakeOneFn, DBus::CondVarWakeAllFn) <near match>
void DXXAPI _init_threading(
^~~~~~~~~~~~~~~
-----
http://dbus-cplusplus.sourceforge.net/dispatcher_8h_source.html
The types MutexLockFn and MutexFreeFn depend on a macro:

#ifndef DBUS_HAS_RECURSIVE_MUTEX
typedef bool (*MutexFreeFn)(Mutex *mx);
typedef bool (*MutexLockFn)(Mutex *mx);
#else
typedef void (*MutexFreeFn)(Mutex *mx);
typedef void (*MutexLockFn)(Mutex *mx);
#endif//DBUS_HAS_RECURSIVE_MUTEX

But the type of the functions passed to _init_threading is always the
same:

static void mutex_free(Mutex *mx)
{
delete mx;
}

static void mutex_lock(Mutex *mx)
{
mx->lock();
}

That certainly looks suspicious.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-***@lists.
Jonathan Wakely
2017-02-15 12:32:21 UTC
Permalink
Post by Jonathan Wakely
Post by Orcan Ogetbil
Post by Marek Polacek
libffado-2.3.0-1.fc26.src.rpm
sflphone-1.4.1-20.fc26.src.rpm
error: no matching function for call to ...
Invalid code.
I am 99% sure that these 2 errors are due to a bug in dbus-c++. Is the
new compiler attempting to compile (or verify) code in template
classes even if they are not initialized?
Yes, exactly. Previously GCC was fairly forgiving about broken
template code and would check almost nothing until the template was
instantiated. In more recent releases parts of the template which
don't depend on the template arguments get checked earlier. Clang has
been doing this for some time, but it's a more recent change for GCC.
Post by Orcan Ogetbil
I suspect that there is
broken code in the Threading class.
The standard says such code is ill-formed, but that no diagnostic is
required i.e. the compiler is allowed to diagnose the problem, but not
required to (because it could be expensive or difficult to check for
some compilers). So the code was always broken, but now GCC tells you
about it.
Post by Orcan Ogetbil
-----
usr/include/dbus-c++-1/dbus-c++/dispatcher.h:262:5: error: no matching
function for call to '_init_threading(DBus::Mutex* (&)(), void
(&)(DBus::Mutex*), void (&)(DBus::Mutex*), void (&)(DBus::Mutex*),
DBus::CondVar* (&)(), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*, DBus::Mutex*), bool (&)(DBus::CondVar*,
DBus::Mutex*, int), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*))'
);
^
void DBus::_init_threading()
void DXXAPI _init_threading();
^~~~~~~~~~~~~~~
candidate expects 0 arguments, 10 provided
void DBus::_init_threading(DBus::MutexNewFn, DBus::MutexFreeFn,
DBus::MutexLockFn, DBus::MutexUnlockFn, DBus::CondVarNewFn,
DBus::CondVarFreeFn, DBus::CondVarWaitFn, DBus::CondVarWaitTimeoutFn,
DBus::CondVarWakeOneFn, DBus::CondVarWakeAllFn) <near match>
void DXXAPI _init_threading(
^~~~~~~~~~~~~~~
-----
http://dbus-cplusplus.sourceforge.net/dispatcher_8h_source.html
#ifndef DBUS_HAS_RECURSIVE_MUTEX
typedef bool (*MutexFreeFn)(Mutex *mx);
typedef bool (*MutexLockFn)(Mutex *mx);
#else
typedef void (*MutexFreeFn)(Mutex *mx);
typedef void (*MutexLockFn)(Mutex *mx);
#endif//DBUS_HAS_RECURSIVE_MUTEX
But the type of the functions passed to _init_threading is always the
static void mutex_free(Mutex *mx)
{
delete mx;
}
static void mutex_lock(Mutex *mx)
{
mx->lock();
}
That certainly looks suspicious.
More than suspicious. The DBus API docs at
https://dbus.freedesktop.org/doc/api/html/group__DBusThreads.html
seem to say that the MutexFreeFn should always return void (for the
recursive and non-recursive versions) but it depends on
DBUS_HAS_RECURSIVE_MUTEX here. MutexUnlockFn should depend on
DBUS_HAS_RECURSIVE_MUTEX, but is always the same type here.

Worse, the functions in the C++ API return bool, but the functions in
the C API return dbus_bool_t which is a typedef for dbus_uint32_t, so
the types don't match and calling them is undefined.

It looks like dbus-c++ is abandoned though, the upstream repo was at
gitorious.org which is gone.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email
Jonathan Wakely
2017-02-15 13:50:49 UTC
Permalink
Post by Jonathan Wakely
Post by Jonathan Wakely
Post by Orcan Ogetbil
Post by Marek Polacek
libffado-2.3.0-1.fc26.src.rpm
sflphone-1.4.1-20.fc26.src.rpm
error: no matching function for call to ...
Invalid code.
I am 99% sure that these 2 errors are due to a bug in dbus-c++. Is the
new compiler attempting to compile (or verify) code in template
classes even if they are not initialized?
Yes, exactly. Previously GCC was fairly forgiving about broken
template code and would check almost nothing until the template was
instantiated. In more recent releases parts of the template which
don't depend on the template arguments get checked earlier. Clang has
been doing this for some time, but it's a more recent change for GCC.
Post by Orcan Ogetbil
I suspect that there is
broken code in the Threading class.
The standard says such code is ill-formed, but that no diagnostic is
required i.e. the compiler is allowed to diagnose the problem, but not
required to (because it could be expensive or difficult to check for
some compilers). So the code was always broken, but now GCC tells you
about it.
Post by Orcan Ogetbil
-----
usr/include/dbus-c++-1/dbus-c++/dispatcher.h:262:5: error: no matching
function for call to '_init_threading(DBus::Mutex* (&)(), void
(&)(DBus::Mutex*), void (&)(DBus::Mutex*), void (&)(DBus::Mutex*),
DBus::CondVar* (&)(), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*, DBus::Mutex*), bool (&)(DBus::CondVar*,
DBus::Mutex*, int), void (&)(DBus::CondVar*), void
(&)(DBus::CondVar*))'
);
^
void DBus::_init_threading()
void DXXAPI _init_threading();
^~~~~~~~~~~~~~~
candidate expects 0 arguments, 10 provided
void DBus::_init_threading(DBus::MutexNewFn, DBus::MutexFreeFn,
DBus::MutexLockFn, DBus::MutexUnlockFn, DBus::CondVarNewFn,
DBus::CondVarFreeFn, DBus::CondVarWaitFn, DBus::CondVarWaitTimeoutFn,
DBus::CondVarWakeOneFn, DBus::CondVarWakeAllFn) <near match>
void DXXAPI _init_threading(
^~~~~~~~~~~~~~~
-----
http://dbus-cplusplus.sourceforge.net/dispatcher_8h_source.html
#ifndef DBUS_HAS_RECURSIVE_MUTEX
typedef bool (*MutexFreeFn)(Mutex *mx);
typedef bool (*MutexLockFn)(Mutex *mx);
#else
typedef void (*MutexFreeFn)(Mutex *mx);
typedef void (*MutexLockFn)(Mutex *mx);
#endif//DBUS_HAS_RECURSIVE_MUTEX
But the type of the functions passed to _init_threading is always the
static void mutex_free(Mutex *mx)
{
delete mx;
}
static void mutex_lock(Mutex *mx)
{
mx->lock();
}
That certainly looks suspicious.
More than suspicious. The DBus API docs at
https://dbus.freedesktop.org/doc/api/html/group__DBusThreads.html
seem to say that the MutexFreeFn should always return void (for the
recursive and non-recursive versions) but it depends on
DBUS_HAS_RECURSIVE_MUTEX here. MutexUnlockFn should depend on
DBUS_HAS_RECURSIVE_MUTEX, but is always the same type here.
Worse, the functions in the C++ API return bool, but the functions in
the C API return dbus_bool_t which is a typedef for dbus_uint32_t, so
the types don't match and calling them is undefined.
It looks like dbus-c++ is abandoned though, the upstream repo was at
gitorious.org which is gone.
Nothing in dbus-c++ or libffado or sflphone uses the broken code in
dbus-c++ so it looks like it can just be commented out. See the
attached patch, which I'm testing now.
Jonathan Wakely
2017-02-15 14:12:35 UTC
Permalink
Post by Jonathan Wakely
Post by Marek Polacek
libffado-2.3.0-1.fc26.src.rpm
sflphone-1.4.1-20.fc26.src.rpm
error: no matching function for call to ...
Invalid code.
Nothing in dbus-c++ or libffado or sflphone uses the broken code in
dbus-c++ so it looks like it can just be commented out. See the
attached patch, which I'm testing now.
A mockchain build of dbus-c++ libffado and sflphone works with this
patch. repoquery says nothing else depends on dbus-c++.

Any objections to me committing the patch to dbus-c++ and rebuilding it?

Somebody should also fork dbus-c++ to fix or remove this junk.
Post by Jonathan Wakely
diff --git a/dbus-c++-threading.patch b/dbus-c++-threading.patch
new file mode 100644
index 0000000..c4fafef
--- /dev/null
+++ b/dbus-c++-threading.patch
@@ -0,0 +1,45 @@
+--- libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h.threading 2017-02-15 13:40:53.796004263 +0000
++++ libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h 2017-02-15 13:40:46.907000493 +0000
+ /* classes for multithreading support
+ */
+
++#if 0
+ class DXXAPI Mutex
+ {
+ typedef bool (*CondVarWaitTimeoutFn)(CondVar *cv, Mutex *mx, int timeout);
+ typedef void (*CondVarWakeOneFn)(CondVar *cv);
+ typedef void (*CondVarWakeAllFn)(CondVar *cv);
++#endif
+
+ void DXXAPI _init_threading();
+
++#if 0
+ void DXXAPI _init_threading(
+ MutexNewFn, MutexFreeFn, MutexLockFn, MutexUnlockFn,
+ CondVarNewFn, CondVarFreeFn, CondVarWaitFn, CondVarWaitTimeoutFn, CondVarWakeOneFn, CondVarWakeAllFn
+ cv->wake_all();
+ }
+ };
++#endif
+
+ } /* namespace DBus */
+
+--- libdbus-c++-0.9.0/src/dispatcher.cpp.threading 2017-02-15 13:48:22.627249868 +0000
++++ libdbus-c++-0.9.0/src/dispatcher.cpp 2017-02-15 13:48:29.164253445 +0000
+ #endif//DBUS_HAS_THREADS_INIT_DEFAULT
+ }
+
++#if 0
+ void DBus::_init_threading(
+ MutexNewFn m1,
+ MutexFreeFn m2,
+ #endif//DBUS_HAS_RECURSIVE_MUTEX
+ dbus_threads_init(&functions);
+ }
++#endif
diff --git a/dbus-c++.spec b/dbus-c++.spec
index 21903f4..c7e83cf 100644
--- a/dbus-c++.spec
+++ b/dbus-c++.spec
@@ -1,6 +1,6 @@
Name: dbus-c++
Version: 0.9.0
-Release: 12%{?dist}
+Release: 13%{?dist}
Summary: Native C++ bindings for D-Bus
Group: System Environment/Libraries
@@ -13,6 +13,8 @@ Patch2: dbus-c++-linkfix.patch
# Fix collision between macro bind_property in dbus-c++/interface.h and method
# bind_property in glibmm/binding.h
Patch3: dbus-c++-macro_collision.patch
+# Remove broken classes for multithreading support
+Patch4: dbus-c++-threading.patch
BuildRequires: dbus-devel
BuildRequires: glib2-devel
@@ -56,6 +58,7 @@ sed -i 's/libtoolize --force --copy/libtoolize -if --copy/' bootstrap
%patch1 -p1 -b .gcc47
%patch2 -p1 -b .linkfix
%patch3 -p1 -b .collision
+%patch4 -p1 -b .threading
%build
./autogen.sh
@@ -93,6 +96,9 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%{_libdir}/pkgconfig/*
%changelog
+- Remove broken multi-threading support that doesn't build with GCC 7
+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an e
Orcan Ogetbil
2017-02-16 03:53:42 UTC
Permalink
Post by Jonathan Wakely
A mockchain build of dbus-c++ libffado and sflphone works with this
patch. repoquery says nothing else depends on dbus-c++.
Any objections to me committing the patch to dbus-c++ and rebuilding it?
Somebody should also fork dbus-c++ to fix or remove this junk.
Hi Jonathan,
Thank you for taking a look at this. I am fine with the patch. A less
intrusive solution would be to disable the #ifndef block between lines
232-235. But I am okay either way.

Let's do this the right way. I submitted a ticket on the project's
sourceforge tracker and I attached your patch.
https://sourceforge.net/p/dbus-cplusplus/patches/18/

Please feel free to apply your patch (adding a comment with a link to
the upstream ticket) and rebuild. We can update the package later if
upstream decides to act on it.

Best,
Orcan
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-***@lists.fedorapro
Jonathan Wakely
2017-02-16 10:15:03 UTC
Permalink
Post by Orcan Ogetbil
Post by Jonathan Wakely
A mockchain build of dbus-c++ libffado and sflphone works with this
patch. repoquery says nothing else depends on dbus-c++.
Any objections to me committing the patch to dbus-c++ and rebuilding it?
Somebody should also fork dbus-c++ to fix or remove this junk.
Hi Jonathan,
Thank you for taking a look at this. I am fine with the patch. A less
intrusive solution would be to disable the #ifndef block between lines
232-235. But I am okay either way.
Let's do this the right way. I submitted a ticket on the project's
sourceforge tracker and I attached your patch.
https://sourceforge.net/p/dbus-cplusplus/patches/18/
Please feel free to apply your patch (adding a comment with a link to
the upstream ticket) and rebuild. We can update the package later if
upstream decides to act on it.
Will do, thanks for reporting it upstream.

_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe sen
Jonathan Wakely
2017-02-16 12:02:00 UTC
Permalink
Post by Jonathan Wakely
Post by Orcan Ogetbil
Post by Jonathan Wakely
A mockchain build of dbus-c++ libffado and sflphone works with this
patch. repoquery says nothing else depends on dbus-c++.
Any objections to me committing the patch to dbus-c++ and rebuilding it?
Somebody should also fork dbus-c++ to fix or remove this junk.
Hi Jonathan,
Thank you for taking a look at this. I am fine with the patch. A less
intrusive solution would be to disable the #ifndef block between lines
232-235. But I am okay either way.
Let's do this the right way. I submitted a ticket on the project's
sourceforge tracker and I attached your patch.
https://sourceforge.net/p/dbus-cplusplus/patches/18/
Please feel free to apply your patch (adding a comment with a link to
the upstream ticket) and rebuild. We can update the package later if
upstream decides to act on it.
Will do, thanks for reporting it upstream.
I was wrong about the packages building with that patch. I was
confused by the fact that mockchain doesn't stop building if one
package in the chain fails, which makes it pretty useless.

libffado has more of these stupid errors that have affected dozens of
packages because [expletives deleted]:

src/libieee1394/configrom.cpp: In member function 'bool ConfigRom::initialize()':
src/libieee1394/configrom.cpp:179:31: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
while ((buf + len - 1) == '\0') {
^~~~
src/libieee1394/configrom.cpp:198:31: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
while ((buf + len - 1) == '\0') {
^~~~

That should probably be dereferencing (buf + len -1)

And sflphone fails to configure now with some GnuTLS error, which
should be fixed by gnutls-3.5.9-2.fc26

_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-***@lists.fedora
Sandro Mani
2017-02-16 13:19:08 UTC
Permalink
Post by Jonathan Wakely
Post by Jonathan Wakely
Post by Orcan Ogetbil
Post by Jonathan Wakely
A mockchain build of dbus-c++ libffado and sflphone works with this
patch. repoquery says nothing else depends on dbus-c++.
Any objections to me committing the patch to dbus-c++ and
rebuilding it?
Somebody should also fork dbus-c++ to fix or remove this junk.
Hi Jonathan,
Thank you for taking a look at this. I am fine with the patch. A less
intrusive solution would be to disable the #ifndef block between lines
232-235. But I am okay either way.
Let's do this the right way. I submitted a ticket on the project's
sourceforge tracker and I attached your patch.
https://sourceforge.net/p/dbus-cplusplus/patches/18/
Please feel free to apply your patch (adding a comment with a link to
the upstream ticket) and rebuild. We can update the package later if
upstream decides to act on it.
Will do, thanks for reporting it upstream.
I was wrong about the packages building with that patch. I was
confused by the fact that mockchain doesn't stop building if one
package in the chain fails, which makes it pretty useless.
libffado has more of these stupid errors that have affected dozens of
src/libieee1394/configrom.cpp: In member function 'bool
src/libieee1394/configrom.cpp:179:31: error: ISO C++ forbids
comparison between pointer and integer [-fpermissive]
while ((buf + len - 1) == '\0') {
^~~~
src/libieee1394/configrom.cpp:198:31: error: ISO C++ forbids
comparison between pointer and integer [-fpermissive]
while ((buf + len - 1) == '\0') {
^~~~
That should probably be dereferencing (buf + len -1)
And sflphone fails to configure now with some GnuTLS error, which
should be fixed by gnutls-3.5.9-2.fc26
sflphone is now failing for -Werror issues, looking into these. Thanks
for fixing dbus-c++.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-***@lists.fedora
Orcan Ogetbil
2017-02-17 05:45:19 UTC
Permalink
Post by Jonathan Wakely
libffado has more of these stupid errors that have affected dozens of
src/libieee1394/configrom.cpp: In member function 'bool
src/libieee1394/configrom.cpp:179:31: error: ISO C++ forbids comparison
between pointer and integer [-fpermissive]
while ((buf + len - 1) == '\0') {
^~~~
src/libieee1394/configrom.cpp:198:31: error: ISO C++ forbids comparison
between pointer and integer [-fpermissive]
while ((buf + len - 1) == '\0') {
^~~~
That should probably be dereferencing (buf + len -1)
Yeah we got them fixed upstream. I see that you applied the fix and
rebuilt the package. Thank you for your work!

Orcan
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@
Jonathan Wakely
2017-02-17 08:25:59 UTC
Permalink
Post by Marek Polacek
vegastrike-0.5.1-27.r1.fc24.src.rpm
error: request for member ... in ...
Looks like '.' is used instead of '->', so invalid C++.
Reported upstream and fixed.
_______________________________________________
devel mailing list -- ***@lists.fedoraproject.org
To unsubscribe send an email to

Loading...