Bug#925781: mozjs52: ftbfs with GCC-9

Matthias Klose doko at debian.org
Wed Mar 27 19:47:11 GMT 2019


Package: src:mozjs52
Version: 52.9.1-1
Severity: normal
Tags: sid bullseye
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-9

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-9/g++-9, but succeeds to build with gcc-8/g++-8. The
severity of this report will be raised before the bullseye release,
so nothing has to be done for the buster release.

The full build log can be found at:
http://people.debian.org/~doko/logs/gcc9-20190321/mozjs52_52.9.1-1_unstable_gcc9.log
The last lines of the build log are at the end of this report.

To build with GCC 9, either set CC=gcc-9 CXX=g++-9 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

Common build failures are new warnings resulting in build failures with
-Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-9/porting_to.html

GCC 9 also passes the linker option --as-needed by default; typical
build issues are passing libraries before object files to the linker,
or underlinking of convenience libraries built from the same source.

[...]
   32 |   memset(aT, 0, sizeof(T));
      |   ~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /<<PKGBUILDDIR>>/js/src/jit/Safepoints.h:12,
                 from /<<PKGBUILDDIR>>/js/src/jit/JitFrames.h:16,
                 from /<<PKGBUILDDIR>>/js/src/jit/Bailouts.h:13,
                 from /<<PKGBUILDDIR>>/js/src/jit/BaselineJIT.h:16,
                 from /<<PKGBUILDDIR>>/js/src/jsscriptinlines.h:12,
                 from /<<PKGBUILDDIR>>/js/src/jsapi-tests/testXDR.cpp:13,
                 from /<<PKGBUILDDIR>>/js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests6.cpp:74:
/<<PKGBUILDDIR>>/js/src/jit/shared/Assembler-shared.h:296:8: note: 'struct js::jit::BaseIndex' declared here
  296 | struct BaseIndex
      |        ^~~~~~~~~
In file included from /<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h:18,
                 from /<<PKGBUILDDIR>>/js/src/dist/include/js/TracingAPI.h:12,
                 from /<<PKGBUILDDIR>>/js/src/dist/include/js/GCPolicyAPI.h:46,
                 from /<<PKGBUILDDIR>>/js/src/dist/include/js/GCVector.h:12,
                 from /<<PKGBUILDDIR>>/js/src/jscntxt.h:15,
                 from /<<PKGBUILDDIR>>/js/src/jsapi-tests/tests.h:19,
                 from /<<PKGBUILDDIR>>/js/src/jsapi-tests/testThreadingThread.cpp:15,
                 from /<<PKGBUILDDIR>>/js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests6.cpp:2:
/<<PKGBUILDDIR>>/js/src/dist/include/mozilla/PodOperations.h: In instantiation of 'void mozilla::PodZero(T*) [with T = js::jit::CodeOffsetJump]':
/<<PKGBUILDDIR>>/js/src/jit/shared/Assembler-shared.h:514:30:   required from here
/<<PKGBUILDDIR>>/js/src/dist/include/mozilla/PodOperations.h:32:9: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'class js::jit::CodeOffsetJump'; use assignment or value-initialization instead [-Wclass-memaccess]
   32 |   memset(aT, 0, sizeof(T));
      |   ~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /<<PKGBUILDDIR>>/js/src/jit/Safepoints.h:12,
                 from /<<PKGBUILDDIR>>/js/src/jit/JitFrames.h:16,
                 from /<<PKGBUILDDIR>>/js/src/jit/Bailouts.h:13,
                 from /<<PKGBUILDDIR>>/js/src/jit/BaselineJIT.h:16,
                 from /<<PKGBUILDDIR>>/js/src/jsscriptinlines.h:12,
                 from /<<PKGBUILDDIR>>/js/src/jsapi-tests/testXDR.cpp:13,
                 from /<<PKGBUILDDIR>>/js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests6.cpp:74:
/<<PKGBUILDDIR>>/js/src/jit/shared/Assembler-shared.h:492:7: note: 'class js::jit::CodeOffsetJump' declared here
  492 | class CodeOffsetJump
      |       ^~~~~~~~~~~~~~
In file included from /<<PKGBUILDDIR>>/js/src/dist/include/js/TracingAPI.h:12,
                 from /<<PKGBUILDDIR>>/js/src/dist/include/js/GCPolicyAPI.h:46,
                 from /<<PKGBUILDDIR>>/js/src/dist/include/js/GCVector.h:12,
                 from /<<PKGBUILDDIR>>/js/src/jscntxt.h:15,
                 from /<<PKGBUILDDIR>>/js/src/jsapi-tests/tests.h:19,
                 from /<<PKGBUILDDIR>>/js/src/jsapi-tests/testThreadingThread.cpp:15,
                 from /<<PKGBUILDDIR>>/js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests6.cpp:2:
/<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h: In instantiation of 'void js::detail::HashTable<T, HashPolicy, AllocPolicy>::clear() [with T = js::HashMapEntry<JSScript*, mozilla::UniquePtr<char [], JS::FreePolicy> >; HashPolicy = js::HashMap<JSScript*, mozilla::UniquePtr<char [], JS::FreePolicy>, js::DefaultHasher<JSScript*>, js::SystemAllocPolicy>::MapHashPolicy; AllocPolicy = js::SystemAllocPolicy]':
/<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h:198:57:   required from 'void js::HashMap<Key, Value, HashPolicy, AllocPolicy>::clear() [with Key = JSScript*; Value = mozilla::UniquePtr<char [], JS::FreePolicy>; HashPolicy = js::DefaultHasher<JSScript*>; AllocPolicy = js::SystemAllocPolicy]'
/<<PKGBUILDDIR>>/js/src/vm/SPSProfiler.h:245:27:   required from here
/<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h:1658:19: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'js::detail::HashTable<js::HashMapEntry<JSScript*, mozilla::UniquePtr<char [], JS::FreePolicy> >, js::HashMap<JSScript*, mozilla::UniquePtr<char [], JS::FreePolicy>, js::DefaultHasher<JSScript*>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry' {aka 'class js::detail::HashTableEntry<js::HashMapEntry<JSScript*, mozilla::UniquePtr<char [], JS::FreePolicy> > >'} with no trivial copy-assignment [-Wclass-memaccess]
 1658 |             memset(table, 0, sizeof(*table) * capacity());
      |             ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h:787:7: note: 'js::detail::HashTable<js::HashMapEntry<JSScript*, mozilla::UniquePtr<char [], JS::FreePolicy> >, js::HashMap<JSScript*, mozilla::UniquePtr<char [], JS::FreePolicy>, js::DefaultHasher<JSScript*>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry' {aka 'class js::detail::HashTableEntry<js::HashMapEntry<JSScript*, mozilla::UniquePtr<char [], JS::FreePolicy> > >'} declared here
  787 | class HashTableEntry
      |       ^~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h: In instantiation of 'void js::detail::HashTable<T, HashPolicy, AllocPolicy>::clear() [with T = js::HashMapEntry<js::gc::Cell*, long unsigned int>; HashPolicy = js::HashMap<js::gc::Cell*, long unsigned int, js::PointerHasher<js::gc::Cell*, 3>, js::SystemAllocPolicy>::MapHashPolicy; AllocPolicy = js::SystemAllocPolicy]':
/<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h:198:57:   required from 'void js::HashMap<Key, Value, HashPolicy, AllocPolicy>::clear() [with Key = js::gc::Cell*; Value = long unsigned int; HashPolicy = js::PointerHasher<js::gc::Cell*, 3>; AllocPolicy = js::SystemAllocPolicy]'
/<<PKGBUILDDIR>>/js/src/gc/Zone.h:507:34:   required from here
/<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h:1658:19: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'js::detail::HashTable<js::HashMapEntry<js::gc::Cell*, long unsigned int>, js::HashMap<js::gc::Cell*, long unsigned int, js::PointerHasher<js::gc::Cell*, 3>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry' {aka 'class js::detail::HashTableEntry<js::HashMapEntry<js::gc::Cell*, long unsigned int> >'} with no trivial copy-assignment [-Wclass-memaccess]
 1658 |             memset(table, 0, sizeof(*table) * capacity());
      |             ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/js/src/dist/include/js/HashTable.h:787:7: note: 'js::detail::HashTable<js::HashMapEntry<js::gc::Cell*, long unsigned int>, js::HashMap<js::gc::Cell*, long unsigned int, js::PointerHasher<js::gc::Cell*, 3>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry' {aka 'class js::detail::HashTableEntry<js::HashMapEntry<js::gc::Cell*, long unsigned int> >'} declared here
  787 | class HashTableEntry
      |       ^~~~~~~~~~~~~~
make[4]: Leaving directory '/<<PKGBUILDDIR>>/js/src/js/src/jsapi-tests'
make[3]: *** [/<<PKGBUILDDIR>>/config/recurse.mk:71: js/src/jsapi-tests/target] Error 2
make[3]: Leaving directory '/<<PKGBUILDDIR>>/js/src'
make[2]: *** [/<<PKGBUILDDIR>>/config/recurse.mk:33: compile] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/js/src'
make[1]: *** [/<<PKGBUILDDIR>>/config/rules.mk:524: default] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>/js/src'
dh_auto_build: cd js/src && make -j4 returned exit code 2
make: *** [debian/rules:53: binary-arch] Error 2
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2



More information about the pkg-gnome-maintainers mailing list