distro test rebuild using GCC 6

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

distro test rebuild using GCC 6

Matthias Klose-6
Here are some first results from a distro test rebuild using GCC 6. A snapshot
of the current Ubuntu development series was taken on 20151218 for all
architectures (amd64, arm64, armhf, i386/i686, powerpc, ppc64el, s390x), and
rebuilt unmodified using the current GCC 5 branch, and using GCC 6 20160101
(then updated to 20160109).

The build logs for package builds regressing with GCC 6 can be found at
http://people.canonical.com/~doko/tmp/gcc6-regr/ (918 packages, compared to
around 500 regressions seen in GCC 5)

extracted from
http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20151218.1-gcc6-xenial.html
http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20151218.1-xenial-baseline-xenial.html

The GCC 6 packages can be found at
https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/
GCC 6 packages for Debian are in Debian/experimental.

Bug reports for all ICEs were submitted to the GCC bug tracker, excluding some
where cc1/cc1plus was killed by the OS (haskell-src-exts, octomap,
plasma-desktop, seqan (all arm64), freeorion (ppc64el).

I haven't yet looked into the build failures except for the ICEs.  If somebody
wants to help please let me know so that work isn't duplicated.

I'm planning to do a second test rebuild for Debian/unstable (amd64 only) in
early Feb.

Matthias
Reply | Threaded
Open this post in threaded view
|

Re: distro test rebuild using GCC 6

Jeff Law
On 01/13/2016 06:17 AM, Matthias Klose wrote:

> Here are some first results from a distro test rebuild using GCC 6. A
> snapshot of the current Ubuntu development series was taken on 20151218
> for all architectures (amd64, arm64, armhf, i386/i686, powerpc, ppc64el,
> s390x), and rebuilt unmodified using the current GCC 5 branch, and using
> GCC 6 20160101 (then updated to 20160109).
>
> The build logs for package builds regressing with GCC 6 can be found at
> http://people.canonical.com/~doko/tmp/gcc6-regr/ (918 packages, compared
> to around 500 regressions seen in GCC 5)
>
> extracted from
> http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20151218.1-gcc6-xenial.html
>
> http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20151218.1-xenial-baseline-xenial.html
>
>
> The GCC 6 packages can be found at
> https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/
> GCC 6 packages for Debian are in Debian/experimental.
>
> Bug reports for all ICEs were submitted to the GCC bug tracker,
> excluding some where cc1/cc1plus was killed by the OS (haskell-src-exts,
> octomap, plasma-desktop, seqan (all arm64), freeorion (ppc64el).
>
> I haven't yet looked into the build failures except for the ICEs.  If
> somebody wants to help please let me know so that work isn't duplicated.
>
> I'm planning to do a second test rebuild for Debian/unstable (amd64
> only) in early Feb.
Thanks for all the work pulling this together.

We (the Red Hat engineers) were talking about the state of things
yesterday.  There'll be an obvious focus on the gcc6 regressions, many
of which were issues you've reported.  First priority is serious code
correctness stuff, then the ICEs.

Ideally we'll make some major progress prior to early Feb -- which
happens to line up with the proposed Fedora mass rebuild.

Jeff

Reply | Threaded
Open this post in threaded view
|

Re: distro test rebuild using GCC 6

James Greenhalgh-2
In reply to this post by Matthias Klose-6
On Wed, Jan 13, 2016 at 02:17:16PM +0100, Matthias Klose wrote:
> Here are some first results from a distro test rebuild using GCC 6.
> A snapshot of the current Ubuntu development series was taken on
> 20151218 for all architectures (amd64, arm64, armhf, i386/i686,
> powerpc, ppc64el, s390x), and rebuilt unmodified using the current
> GCC 5 branch, and using GCC 6 20160101 (then updated to 20160109).
>
> I haven't yet looked into the build failures except for the ICEs.
> If somebody wants to help please let me know so that work isn't
> duplicated.

Hi,

I've flicked through the 42 unique arm64 failures and given them a
first-step triage. The majority of issues look to be source based and
more than a few can be blamed on the move to C++14. Two of these I don't
understand (qutecom_2.2.1+dfsg1-5.2ubuntu2, sitplus_1.0.3-4.1build1). The
VLC one is strange, and I don't know how it has ever managed to build!

I generated my set of arm64 failures as so:

  grep xenial-arm64 00list | cut -f 1 -d " " | sed "s@^@http://people.canonical.com/~doko/tmp/gcc6-regr/@" | xargs wget
  gunzip *.gz

Triage notes follow...

Hope this helps, if it is useless, let me know what would be a better way
for me to help out with the AArch64 stuff.

Thanks,
James

---
I used "grep -v GPG" to remove error lines that looked like:

  W: GPG error: http://ppa.launchpad.net xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1E9377A2BA9EF27F

This also removed two packages from my list that had system/package
failures:

  gnuais_0.3.3-3

    [ Package dependency not met ]

    sbuild-build-depends-gnuais-dummy : Depends: libosmgpsmap-1.0-0-dev (>= 1.0.2) but it is not installable

  libnih_1.0.3-4

    [ Interrupted build ]

    Session terminated, terminating shell...

---
I used "grep -v "debian\/rules" to remove error lines that looked like:

  dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2

This removed eight packages from my list which had system/environment
issues, ran out of memory, or failed a symbol match check.

  ardour_1:4.4~dfsg-1
  dune-grid_2.4.0-1
  mysql-workbench_6.3.4+dfsg-3build1

     [ Memory exhausted ]

     virtual memory exhausted: Cannot allocate memory

  marble_4:15.08.2-0ubuntu3

    [ Expected symbol mismatch ]

    dpkg-gensymbols: warning: debian/libmarblewidget-qt5-22/DEBIAN/symbols doesn't match completely debian/libmarblewidget-qt5-22.symbols
    - (optional=templinst)_ZN12QtConcurrent19RunFunctionTaskBaseIvE3runEv@Base 4:15.08.0
    - (optional=templinst|arch=!amd64 !i386)_ZN14QSharedPointerIN6Marble22MarbleQuickItemPrivateEE5derefEPN15QtSharedPointer20ExternalRefCountDataE@Base 4:15.08.0
    - (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperI5QListIdELb1EE6CreateEPKv@Base 4:15.08.0
    - (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperI5QListIdELb1EE6DeleteEPv@Base 4:15.08.0
    - (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperI7QVectorIPN6Marble16GeoDataPlacemarkEELb1EE6CreateEPKv@Base 4:15.08.0
        <.... etc... >
   
  shellcheck_0.3.7-1

    [ Memory Exhausted ]

    ghc: out of memory (requested 1048576 bytes)

  telepathy-qt5_0.9.6.1-0ubuntu3

    [ Expected symbol mismatch ]

    dpkg-gensymbols: warning: debian/libtelepathy-qt5-0/DEBIAN/symbols doesn't match completely debian/libtelepathy-qt5-0.symbols
    - _ZN10QByteArray7reserveEi@Base 0.9.6.1-0ubuntu2~gcc5.1

  xapian1.3-core_1.3.3-0ubuntu2

    [ Network testsuite failures (environment issue?) ]

    Running test: keepalive1... FAILED
    ./apitest backend remoteprog_glass: 248 tests passed, 1 failed, 4 skipped.
    Running test: keepalive1... NetworkTimeoutError: REMOTE:Timeout expired while trying to read; context was: .glass/db=apitest_simpledata (context: remote:tcp(127.0.0.1:1239))
    Running test: bigoaddvalue1... std::bad_alloc: std::bad_alloc
    ./apitest backend remotetcp_glass: 247 tests passed, 2 failed, 4 skipped.
    ./apitest total: 2338 tests passed, 3 failed, 42 skipped.
    FAIL: apitest

  xapian-core_1.2.21-1.2

    [ Network testsuite failures (environment issue?) ]

    Running test: keepalive1... NetworkError: write failed (context: remote:prog(../bin/xapian-progsrv -t5000 .chert/db=apitest_simpledata) (Broken pipe)
    ./apitest backend remoteprog_chert: 224 tests passed, 1 failed, 3 skipped.
    ./apitest total: 2992 tests passed, 1 failed, 45 skipped.
    FAIL: apitest

---
After filtering the above with:

  grep "error:" *BUILDING* | grep -v GPG | grep -v "debian\/rules" >& all-failures.txt

I had 32 unique failures remaining...

---
-Wnarrowing

This is a mismatch between signed values and arm64's unsigned char. This
hits 21 packages. A typical failure looks like:

  s3m.cpp:29:90: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing]
     {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,-1,-1,-1,-1,-1,-1,-1};
                                                                                         ^
The package builds broken by this warning promoted to an error are:
   
  adplug_2.2.1+dfsg3-0.2ubuntu2
  alsa-tools_1.0.29-1ubuntu1
  biosig4c++_1.3.0-2.1build1
  calligra_1
  edtsurf_0.2009-3
  garmindev_0.3.4+svn3432-3
  kelbt_0.15-1
  ksirk_4
  lrzip_0.621-1
  mimetic_0.9.8-2.1
  nootka_1.2.0-0ubuntu3
  opencollada_0.1.0~20140703.ddf8f47+dfsg1-2
  psi_0.15-2build1
  psi-plus_0.16.330-1build2
  qlandkartegt_1.8.1+ds-3build1
  qpxtool_0.7.2-4
  ruby-unf-ext_0.0.7.1-1build1
  sidplay-libs_2.1.1-14ubuntu2
  tennix_1.1-3
  ufraw_0.20-3build1
  xmlrpc-c_1.33.14-0.2ubuntu3

---
After filtering the above, the following packages remain:

  ecere-sdk_0.44.11-0ubuntu2

    [ Invalid code, __nothrow__ and __leaf__ should have a comma between
      them. I can't see how this code is generated to validate the
      failure by inspection ]

    obj/release.linux/Archive.c:327:93: error: expected ')' before '__leaf__'
      extern unsigned int gnu_dev_major(unsigned long long int __dev) __attribute__((__nothrow__ __leaf__)) __attribute__((__const__));
                                                                                             ^~~~~~~~
  eclipse-pydev_3.9.2-4

    [ Invalid code (as far as I know my c++11...) using both auto and a type
      name won't work. Presumably worked before as a redundant storage
      duration specifier but is broken now we are C++14 by default. ]

    plugins/org.python.pydev/pysrc/pydevd_attach_to_process/linux/attach_linux.c: In function 'int _PYDEVD_ExecWithGILSetSysStrace(bool, bool)':
    plugins/org.python.pydev/pysrc/pydevd_attach_to_process/linux/attach_linux.c:237:25: error: expected initializer before 'pydevdTracingMod'
         auto PyObjectHolder pydevdTracingMod = PyObjectHolder(isDebug, pyImportModFunc("pydevd_tracing"));
                             ^~~~~~~~~~~~~~~~

  eigen2_2.0.17-1ubuntu1

    [ Warning looks correct to me, function is declared:
        void AmbiVector<Scalar>::nonZeros() const ]

    In file included from /«PKGBUILDDIR»/Eigen/Sparse:88:0,
                     from /«PKGBUILDDIR»/test/sparse.h:43,
                     from /«PKGBUILDDIR»/test/sparse_basic.cpp:25:
    /«PKGBUILDDIR»/Eigen/src/Sparse/AmbiVector.h: In member function 'void Eigen::AmbiVector<_Scalar>::nonZeros() const':
    /«PKGBUILDDIR»/Eigen/src/Sparse/AmbiVector.h:139:12: error: return-statement with a value, in function returning 'void' [-fpermissive]
         return m_llSize;
                ^~~~~~~~

  foo-yc20_1.3.0-6build1

    [ ICE: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69176 ]

  haskell-src-exts_1.16.0.1-3build4

    [ Environment?? ]

    gcc: internal compiler error: Killed (program cc1)
    Please submit a full bug report,
    with preprocessed source if appropriate.

  netpbm-free_2:10.0-15.2

    [ ICE (not sure if this has been reported and fixed, I see similar
      bugs, but maybe not this one? I can't reproduce it with trunk. ]


    /«PKGBUILDDIR»/pnm/tifftopnm.c:677:1: internal compiler error: Segmentation fault
     main(int argc, char * argv[]) {
     ^~~~

    0x9613ff crash_signal
    ../../src/gcc/toplev.c:334
    0xa6ec04 get_expr_operands
    ../../src/gcc/tree-ssa-operands.c:714
    0xa6f4c7 parse_ssa_operands
    ../../src/gcc/tree-ssa-operands.c:931
    0xa70a53 build_ssa_operands
    ../../src/gcc/tree-ssa-operands.c:946
    0xa70a53 update_stmt_operands(function*, gimple*)
    ../../src/gcc/tree-ssa-operands.c:1080
               {  .... etc }

  qutecom_2.2.1+dfsg1-5.2ubuntu2

    [ No idea why this should start failing now. Possibly not C++11 clean? ]

    /usr/include/boost/bind/bind.hpp:392:35: error: no match for call to '(boost::_mfi::mf2<void, UserProfile, SipAccount&, EnumSipLoginState::SipLoginState>) (UserProfile*&, const SipAccount&, const EnumSipLoginState::SipLoginState&)'
         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ruby-mysql2_0.3.16-2ubuntu1

    [ Test failure - probably environment]

    /usr/bin/mysqladmin: connect to server at 'localhost' failed
    error: 'Can't connect to local MySQL server through socket '/tmp/tmp.d6LMsrf2cD/mysql.sock' (2)'

  sitplus_1.0.3-4.1build1

    [ Uses boost::shared_ptr and the std:: namespace, gets in to trouble now
      that C++11 provides a std::shared_ptr ]


    In file included from /«PKGBUILDDIR»/src/mod_collage/Kernel/kernel.cpp:36:0:
    /«PKGBUILDDIR»/src/mod_collage/Kernel/delay.h:27:4: error: reference to 'shared_ptr' is ambiguous
    shared_ptr<PictureNode> m_img;

  stardict_3.0.1-9.2ubuntu3

    [ No idea why this would start to fail now. Possibly not C++11 clean? ]

    stardict.cpp: In member function 'bool AppCore::SimpleLookupToFloat(const char*, bool)':
    stardict.cpp:656:100: error: no matching function for call to 'AppCore::BuildResultData(std::vector<InstantDictIndex>&, char*&, CurrentIndex*&, bool, size_t&, gchar***&, gchar****&, bool&, int)'
        BuildResultData(scan_dictmask, SearchWord, iIndex, false, iLib, pppWord, ppppWordData, bFound, 2);
                                                                                                        ^

  vlc_2.2.1-5
 
    [ Includes an atomic header from QtCore that seems to get in a
      lot of trouble. Many errors, more than are worth reproducing
      here. ]

Reply | Threaded
Open this post in threaded view
|

Re: distro test rebuild using GCC 6

James Greenhalgh-2
On Thu, Jan 14, 2016 at 05:15:29PM +0000, James Greenhalgh wrote:

> On Wed, Jan 13, 2016 at 02:17:16PM +0100, Matthias Klose wrote:
> > Here are some first results from a distro test rebuild using GCC 6.
> > A snapshot of the current Ubuntu development series was taken on
> > 20151218 for all architectures (amd64, arm64, armhf, i386/i686,
> > powerpc, ppc64el, s390x), and rebuilt unmodified using the current
> > GCC 5 branch, and using GCC 6 20160101 (then updated to 20160109).
> >
> > I haven't yet looked into the build failures except for the ICEs.
> > If somebody wants to help please let me know so that work isn't
> > duplicated.
>
> I've flicked through the 42 unique arm64 failures and given them a
> first-step triage. The majority of issues look to be source based and
> more than a few can be blamed on the move to C++14. Two of these I don't
> understand (qutecom_2.2.1+dfsg1-5.2ubuntu2, sitplus_1.0.3-4.1build1). The
> VLC one is strange, and I don't know how it has ever managed to build!

Hi,

Today I've looked at the 30 unique armhf failures and given them the same
treatment as arm64. Some of the testsuite failures I can't find details or
reports of online so may be indicative of wrong-code bugs. Other than that
there are a larger number of ICEs for the ARM port, but these are logged
and actively being worked on. A number of packages have not made a
clean transition to C++14 and some build failures I just don't understand
how they could ever have worked.

As before, I generated the list of failures with:

  grep xenial-armhf 00list | cut -f 1 -d " " | sed "s@^@http://people.canonical.com/~doko/tmp/gcc6-regr/@" | xargs wget

Triage notes follow...

Hope this helps. Please do let me know if there is something more useful I
could do instead.

Thanks,
James

----
Eliminating First order junk with "grep -v GPG" to remove error lines
that looked like:

  W: GPG error: http://ppa.launchpad.net xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1E9377A2BA9EF27F

Has no effect.

----
Looking for testsuite failures and environment issues, I see:

  guile-1.8_1.8.8+1-10ubuntu1

    [ Testsuite failures... ]

    ERROR: Value out of range -9223372036854775808 to 9223372036854775807: -9223372036854775808
    FAIL: test-num2integral
    fail: scm_is_signed_integer ((- (expt 2 63)), -9223372036854775808, 9223372036854775807) == 1
    FAIL: test-conversion
    ==================================
    2 of 16 tests failed

  haskell-cipher-aes_0.2.11-1

    [ Testsuite failures, look bad... ]

         AE1: [Failed]
    expected: AuthTag "(Pd/\168\139\171!*g\SUB\151Hi\165l"
     but got: AuthTag "u:\252\SYN\141\165\&0\186S\191\GS\151\SYN\198E{"
         AD1: [Failed]
    expected: AuthTag "(Pd/\168\139\171!*g\SUB\151Hi\165l"
     but got: AuthTag "r\205\252\225Sz0e\EM\203\GS\227\228lE\209"

      { ... etc ... }

             Properties   Test Cases    Total        
     Passed  34           146           180          
     Failed  0            26            26          
     Total   34           172           206          
    Test suite test-cipher-aes: FAIL
    Test suite logged to: dist-ghc/test/cipher-aes-0.2.11-test-cipher-aes.log
    0 of 1 test suites (0 of 1 test cases) passed.

  haskell-cryptohash_0.11.6-4build1

    [ Testsuite failures, look bad... ]

        SHA1
      0 one-pass:  FAIL
        expected: "da39a3ee5e6b4b0d3255bfef95601890afd80709"
         but got: "5a600060e4e200e24faa00aa71e400e456c400c4"
      0 inc 1:     FAIL
        expected: "da39a3ee5e6b4b0d3255bfef95601890afd80709"
         but got: "5a600060e4e200e24faa00aa71e400e456c400c4"
      0 inc 2:     FAIL
        expected: "da39a3ee5e6b4b0d3255bfef95601890afd80709"
         but got: "5a600060e4e200e24faa00aa71e400e456c400c4"

      { ... etc ... }

    176 out of 592 tests failed
    Test suite test-kat: FAIL
    0 of 1 test suites (0 of 1 test cases) passed.

  kdelibs4support_5.15.0-0ubuntu2

    [ Symbol mismatch ]

    dpkg-gensymbols: warning: debian/libkf5kdelibs4support5/DEBIAN/symbols doesn't match completely debian/libkf5kdelibs4support5.symbols
    +#MISSING: 5.15.0-0ubuntu2# (arch=armhf ppc64el)_ZN3KDE4statERK7QStringP4stat@Base 5.13.0

  kjsembed_5.15.0-0ubuntu2

    [ Symbol mismatch ]

    dpkg-gensymbols: warning: debian/libkf5jsembed5/DEBIAN/symbols doesn't match completely debian/libkf5jsembed5.symbols
    +#MISSING: 5.15.0-0ubuntu2# _ZN3KJS7JSValueD0Ev@Base 4.96.0
    +#MISSING: 5.15.0-0ubuntu2# _ZN3KJS7JSValueD1Ev@Base 4.96.0
    +#MISSING: 5.15.0-0ubuntu2# _ZN3KJS7JSValueD2Ev@Base 4.96.0

  linux-flo_3.4.0-5.19
  linux-hammerhead_3.4.0-1.9
  linux-mako_3.4.0-7.41

    [ Mystery build failure (looks like: https://lkml.org/lkml/2012/11/18/159 ) ]

    Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at /«PKGBUILDDIR»/kernel/timeconst.pl line 373.
    make[3]: *** [kernel/timeconst.h] Error 255
    make[3]: *** Waiting for unfinished jobs....
    /«PKGBUILDDIR»/kernel/Makefile:129: recipe for target 'kernel/timeconst.h' failed

---
-Wnarrowing

This covers two failures:
 
  blender_2.75.a+dfsg0-2ubuntu3

    /«BUILDDIR»/blender-2.75.a+dfsg0/intern/ghost/intern/GHOST_WindowX11.cpp:159:1: error: narrowing conversion of '2547014912ll' from 'long long int' to 'long int' inside { } [-Wnarrowing]
     };
     ^

  burp_1.3.48-4.1

    conf.c:557:1: error: narrowing conversion of '2240043254u' from 'unsigned int' to 'long int' inside { } [-Wnarrowing]
     };
     ^

---
That leaves 20 build failures...

  android-audiosystem_1.8+13.10.20130807-0ubuntu1

    [ C++11 incompatibility ]


    ../../include/utils/Unicode.h:25:18: error: redeclaration of C++ built-in type 'char32_t' [-fpermissive]
     typedef uint32_t char32_t;
                      ^~~~~~~~

  freeorion_0.4.5-1build1

    [ Boost failure (unknown reason) ]

    /«PKGBUILDDIR»/network/ServerNetworking.cpp:194:0:   required from here
    /usr/include/boost/function/function_template.hpp:159:11: error: no match for call to '(std::tuple<const boost::function<void()>&>) ()'
               BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS));
               ^

  frobtads_1:1.2.3-1


    [ Not c++14 clean ]

    In file included from /«PKGBUILDDIR»/./tads3/tcprs.cpp:39:0:
    /«PKGBUILDDIR»/./tads3/vmbignum.h: In static member function 'static vm_obj_id_t CVmObjBigNum::create(int, const bignum_t<prec>*)':
    /«PKGBUILDDIR»/./tads3/vmbignum.h:585:45: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive]
             new (vmg_ id) CVmObjBigNum(vmg_ prec);
                                                 ^
   
    <built-in>: note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation)
    /«PKGBUILDDIR»/./tads3/vmbignum.h: In static member function 'static vm_obj_id_t CVmObjBigNum::create(int, const bignum_t<prec>&)':
    /«PKGBUILDDIR»/./tads3/vmbignum.h:596:45: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive]
             new (vmg_ id) CVmObjBigNum(vmg_ prec);
                                             ^

  gambas3_3.5.4-2ubuntu11

    [ Not c++14 clean ]

    In file included from CImage.h:27:0,
                     from main.cpp:26:
    ../../share/gambas.h:65:18: error: invalid conversion from 'intptr_t {aka int}' to 'GB_DESC*' [-fpermissive]
      #define __null ((intptr_t)0)
                     ~^~~~~~~~~~~~
   
    /usr/lib/gcc/arm-linux-gnueabihf/6/include/stddef.h:403:14: note: in expansion of macro '__null'
     #define NULL __null
                  ^~~~~~In file included from CImage.h:27:0,
                     from main.cpp:26:
    ../../share/gambas.h:65:18: error: invalid conversion from 'intptr_t {aka int}' to 'GB_DESC*' [-fpermissive]
      #define __null ((intptr_t)0)
                     ~^~~~~~~~~~~~
   
    /usr/lib/gcc/arm-linux-gnueabihf/6/include/stddef.h:403:14: note: in expansion of macro '__null'
     #define NULL __null
                  ^~~~~~

  gmic_1.6.2.0-1build2

    [ ICE: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68021 ]

  gromacs_5.1.1-1

    [ ICE: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69245 ]

  ht_2.1.0-1

    [ ICE: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69175 ]

  ircp-tray_0.7.6-1.1

    [ Source issue, upstream report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810562 ]

    /«PKGBUILDDIR»/src/ircp_server.c:204: undefined reference to `OBEX_UnicodeToChar'
    ircp_server.o: In function `new_file':
    /«PKGBUILDDIR»/src/ircp_server.c:273: undefined reference to `OBEX_UnicodeToChar'
    collect2: error: ld returned 1 exit status

  libbpp-qt_2.1.0-1ubuntu2

    [ ICE: Looks like: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68068
      but reproduces on current trunk. Testcase reducer is in progress. ]

  linux-raspi2_4.3.0-1006.6

    [ Source error - Looks unused by manual inspection ]

    /«PKGBUILDDIR»/drivers/char/broadcom/vc_sm/vmcs_sm.c:200:26: error: 'sm_cache_map_vector' defined but not used [-Werror=unused-const-variable]
     static const char *const sm_cache_map_vector[] = {
                              ^~~~~~~~~~~~~~~~~~~

  mrpt_1:1.3.0-1.1

    [ Source error ? (Can't find sources to reproduce) ]

    In file included from /«PKGBUILDDIR»/libs/base/src/math/math.cpp:16:0:
    /«PKGBUILDDIR»/libs/base/include/mrpt/math/distributions.h: In function 'void mrpt::math::confidenceIntervals(const CONTAINER&, typename mrpt::math::ContainerType<VECTORLIKE1>::element_t&, typename mrpt::math::ContainerType<VECTORLIKE1>::element_t&, typename mrpt::math::ContainerType<VECTORLIKE1>::element_t&, double, std::size_t)':
    /«PKGBUILDDIR»/libs/base/include/mrpt/math/distributions.h:204:6: error: no match for 'operator*=' (operand types are 'std::vector<double>' and 'double')
        Hc*=1.0/ mrpt::math::maximum(Hc);
        ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  openal-soft_1:1.16.0-3

    [ We changed arm_neon.h to always define intrinsics (suitably guarded
      by target pragmas, the old behaviour was to error if the target
      did not support Neon instructions. This breaks the sort of
      configure auto-detection used by openal-soft - which includes
      arm_neon.h and checks for an error as a proxy for detecting Neon
      support. Consequently, while we don't support Neon under the Ubuntu
      default flags (-march=armv7-a -mfpu=vfpv3-d16), the openal-soft
      configure check detects neon support (no error when including
      arm_neon.h) and tries to build with Neon. This fails as the target
      options don't match. ]

    In file included from /«PKGBUILDDIR»/Alc/mixer_neon.c:3:0:
    /«PKGBUILDDIR»/Alc/mixer_neon.c: In function 'ApplyCoeffsStep':
    /usr/lib/gcc/arm-linux-gnueabihf/6/include/arm_neon.h:6153:1: error: inlining failed in call to always_inline 'vcombine_f32': target specific option mismatch
     vcombine_f32 (float32x2_t __a, float32x2_t __b)
     ^~~~~~~~~~~~
   
  oxide-qt_1.10.3-0ubuntu0.15.10.2

    [ ICE: Almost identical to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69187 ]

  pulseaudio_1:7.1-1ubuntu3

    [ ICE: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69245 ]

  qtads_2.1.6-1

    [ Not C++14 clean ]

    In file included from tads3/tcprs.cpp:39:0:
    tads3/vmbignum.h: In static member function 'static vm_obj_id_t CVmObjBigNum::create(int, const bignum_t<prec>*)':
    tads3/vmbignum.h:585:45: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive]
             new (vmg_ id) CVmObjBigNum(vmg_ prec);
                                                 ^
   
    In file included from /usr/include/c++/6/bits/stl_construct.h:59:0,
                     from /usr/include/c++/6/bits/stl_tempbuf.h:60,
                     from /usr/include/c++/6/bits/stl_algo.h:62,
                     from /usr/include/c++/6/algorithm:62,
                     from /usr/include/qt4/QtCore/qglobal.h:68,
                     from /usr/include/qt4/QtCore/QtGlobal:1,
                     from src/h_qt.h:8,
                     from tads2/os.h:105,
                     from tads3/tcprs.cpp:30:
    /usr/include/c++/6/new:125:6: note: 'void operator delete(void*, std::size_t)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation)
     void operator delete(void*, std::size_t) _GLIBCXX_USE_NOEXCEPT
          ^~~~~~~~
   
  simgrid_3.11.1-10ubuntu1

    [ Environment issue ]

    sh: 1: latex: not found

  simutrans_120.1.1+repack-2

    [ Not C++14 clean ]

    besch/bild_besch.cc:53:61: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive]
      bild_besch_t* besch = new(4 * sizeof(PIXVAL)) bild_besch_t();
                                                                 ^
   
    In file included from /usr/include/c++/6/ext/new_allocator.h:33:0,
                     from /usr/include/arm-linux-gnueabihf/c++/6/bits/c++allocator.h:33,
                     from /usr/include/c++/6/bits/allocator.h:46,
                     from /usr/include/c++/6/string:41,
                     from /usr/include/c++/6/bits/locale_classes.h:40,
                     from /usr/include/c++/6/bits/ios_base.h:41,
                     from /usr/include/c++/6/ios:42,
                     from /usr/include/c++/6/ostream:38,
                     from /usr/include/c++/6/iterator:64,
                     from besch/../display/../utils/for.h:4,
                     from besch/../display/../simtypes.h:9,
                     from besch/../display/../unicode.h:5,
                     from besch/../display/simgraph.h:18,
                     from besch/bild_besch.h:10,
                     from besch/bild_besch.cc:1:
    /usr/include/c++/6/new:125:6: note: 'void operator delete(void*, std::size_t)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation)
     void operator delete(void*, std::size_t) _GLIBCXX_USE_NOEXCEPT
          ^~~~~~~~
   
  trafficserver_5.3.0-2ubuntu1

    [ Source error, seen upstream: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=805166 ]

  vbrfix_0.24-7

    [ Source error, not sure how this ever worked! ]

    In file included from vbrfix.h:22:0,
                     from vbrfix.cpp:17:
    wputil.h: In static member function 'static bool wfile::copyFile(const char*, const char*, bool)':
    wputil.h:202:28: error: cannot convert 'std::basic_ostream<char>' to 'bool' in return
         return out << in.rdbuf();
                                ^
   
  volk_1.1.1-5
 
    [ ICE: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69245 ]

Reply | Threaded
Open this post in threaded view
|

Re: distro test rebuild using GCC 6

Jonathan Wakely-4
In reply to this post by James Greenhalgh-2
On 14 January 2016 at 17:15, James Greenhalgh wrote:
> Hope this helps, if it is useless, let me know what would be a better way
> for me to help out with the AArch64 stuff.

It's useful for me to get pointers to some of the C++-related failures, thanks.

> ---
> -Wnarrowing
>
> This is a mismatch between signed values and arm64's unsigned char. This
> hits 21 packages. A typical failure looks like:
>
>   s3m.cpp:29:90: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing]
>      {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,-1,-1,-1,-1,-1,-1,-1};
>                                                                                          ^
> The package builds broken by this warning promoted to an error are:
>
>   adplug_2.2.1+dfsg3-0.2ubuntu2
>   alsa-tools_1.0.29-1ubuntu1
>   biosig4c++_1.3.0-2.1build1
>   calligra_1
>   edtsurf_0.2009-3
>   garmindev_0.3.4+svn3432-3
>   kelbt_0.15-1
>   ksirk_4
>   lrzip_0.621-1
>   mimetic_0.9.8-2.1
>   nootka_1.2.0-0ubuntu3
>   opencollada_0.1.0~20140703.ddf8f47+dfsg1-2
>   psi_0.15-2build1
>   psi-plus_0.16.330-1build2
>   qlandkartegt_1.8.1+ds-3build1
>   qpxtool_0.7.2-4
>   ruby-unf-ext_0.0.7.1-1build1
>   sidplay-libs_2.1.1-14ubuntu2
>   tennix_1.1-3
>   ufraw_0.20-3build1
>   xmlrpc-c_1.33.14-0.2ubuntu3

I was expecting to see several of these, narrowing conversions are
usually the biggest cause of problems when moving from c++03 to c++11
or later.

>     [ Invalid code (as far as I know my c++11...) using both auto and a type
>       name won't work. Presumably worked before as a redundant storage
>       duration specifier but is broken now we are C++14 by default. ]
>
>     plugins/org.python.pydev/pysrc/pydevd_attach_to_process/linux/attach_linux.c: In function 'int _PYDEVD_ExecWithGILSetSysStrace(bool, bool)':
>     plugins/org.python.pydev/pysrc/pydevd_attach_to_process/linux/attach_linux.c:237:25: error: expected initializer before 'pydevdTracingMod'
>          auto PyObjectHolder pydevdTracingMod = PyObjectHolder(isDebug, pyImportModFunc("pydevd_tracing"));
>                              ^~~~~~~~~~~~~~~~

Wow, people are actually using auto as a storage specifier!


>
>   qutecom_2.2.1+dfsg1-5.2ubuntu2
>
>     [ No idea why this should start failing now. Possibly not C++11 clean? ]
>
>     /usr/include/boost/bind/bind.hpp:392:35: error: no match for call to '(boost::_mfi::mf2<void, UserProfile, SipAccount&, EnumSipLoginState::SipLoginState>) (UserProfile*&, const SipAccount&, const EnumSipLoginState::SipLoginState&)'
>          unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There's a const-mistmatch there, it's trying to pass const SipAccount&
to a function taking (non-const) SipAccount&. It's possible the
relevant Boost component is stricter in C++11 mode, but it's a bit
surprising.


>   sitplus_1.0.3-4.1build1
>
>     [ Uses boost::shared_ptr and the std:: namespace, gets in to trouble now
>       that C++11 provides a std::shared_ptr ]
>
>
>     In file included from /«PKGBUILDDIR»/src/mod_collage/Kernel/kernel.cpp:36:0:
>     /«PKGBUILDDIR»/src/mod_collage/Kernel/delay.h:27:4: error: reference to 'shared_ptr' is ambiguous
>     shared_ptr<PictureNode> m_img;

I'm surprised there aren't more like this.

>   stardict_3.0.1-9.2ubuntu3
>
>     [ No idea why this would start to fail now. Possibly not C++11 clean? ]
>
>     stardict.cpp: In member function 'bool AppCore::SimpleLookupToFloat(const char*, bool)':
>     stardict.cpp:656:100: error: no matching function for call to 'AppCore::BuildResultData(std::vector<InstantDictIndex>&, char*&, CurrentIndex*&, bool, size_t&, gchar***&, gchar****&, bool&, int)'
>         BuildResultData(scan_dictmask, SearchWord, iIndex, false, iLib, pppWord, ppppWordData, bFound, 2);
>                                                                                                         ^
>
>   vlc_2.2.1-5
>
>     [ Includes an atomic header from QtCore that seems to get in a
>       lot of trouble. Many errors, more than are worth reproducing
>       here. ]
>
Reply | Threaded
Open this post in threaded view
|

Re: distro test rebuild using GCC 6

Jonathan Wakely-4
In reply to this post by James Greenhalgh-2
On 15 January 2016 at 17:52, James Greenhalgh wrote:
>   vbrfix_0.24-7
>
>     [ Source error, not sure how this ever worked! ]
>
>     In file included from vbrfix.h:22:0,
>                      from vbrfix.cpp:17:
>     wputil.h: In static member function 'static bool wfile::copyFile(const char*, const char*, bool)':
>     wputil.h:202:28: error: cannot convert 'std::basic_ostream<char>' to 'bool' in return
>          return out << in.rdbuf();

In C++03 iostreams have an implicit conversion to void*, which can
then be implicitly converted to bool.

In C++11 they have an explicit conversion to bool, so the code needs
to be changed to do the conversion explicitly:

         return bool(out << in.rdbuf());

or

         return static_cast<bool>(out << in.rdbuf());

         if (out << in.rdbuf())
           return true;
         return false;

or

         return (out << in.rdbuf()) ? true : false;

or some similar variation.
Reply | Threaded
Open this post in threaded view
|

Re: distro test rebuild using GCC 6

James Greenhalgh-2
In reply to this post by James Greenhalgh-2
On Fri, Jan 15, 2016 at 05:52:49PM +0000, James Greenhalgh wrote:
>
>   libbpp-qt_2.1.0-1ubuntu2
>
>     [ ICE: Looks like: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68068
>       but reproduces on current trunk. Testcase reducer is in progress. ]

This turned out to be https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68148 ,
now fixed for trunk with r232410.

Author: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Jan 15 11:00:24 2016 +0000

    PR ipa/68148
    * ipa-icf.c (sem_function::merge): Virtual functions may become
    reachable even if they address is not taken and there are no
    idrect calls.
    * g++.dg/ipa/devirt-49.C: New testcase.

Thanks,
James