[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#864974: thunderbird: Missing AtomicOperations for multiple architectures cause FTBFS

Source: icedove
Version: 1:52.2.0-1
Severity: serious
Justification: fails to build from source


thunderbird fails to build from source on multiple architectures,
including s390x, because the proper AtomicOperations header
is not included for the affected architectures.

Looking at [1], all architectures that do not have their own
variant of the AtomicOperations header must use the generic
ppc or sparc headers, e.g.

# elif defined(__alpha__)
#  include "jit/none/AtomicOperations-ppc.h"
# elif defined(__hppa__)
#  include "jit/none/AtomicOperations-ppc.h"
#elif defined(__m68k__)
#  include "jit/none/AtomicOperations-ppc.h"
#elif defined(__s390__)
#  include "jit/none/AtomicOperations-ppc.h"
#elif defined(__sh__)
#  include "jit/none/AtomicOperations-ppc.h"

From what I can see, you are currently missing:

alpha: __alpha__
hppa: __hppa__
m68k: __m68k__
powerpc and powerpcspe: __ppc__
s390: __s390__

ppc64 and sparc64 should work as they define "__PPC64__" and
"__sparc__" which is actually covered in the current code. I will
check what's wrong on this architectures later.

See also [2] (note: AtomicOperations-ppc.h and AtomicOperations-sparc.h
are identical and have been renamed to AtomicOperations-feeling-lucky.h
by upstream).

All architectures which are not including jit/none/AtomicOperations-ppc.h
or jit/none/AtomicOperations-sparc.h will include jit/none/AtomicOperations-none.h
and *will* FTBFS by definition (this is intended behavior in the JavaScript
engine). Please note that __sparc__ is also used for sparc64. So please
do not test for sparc64 with "#if defined(__sparc64__)", testing for
"__sparc__" is fine as it is.

Thus, please add the missing definitions for all architectures where the
build fails with:

Executing /«PKGBUILDDIR»/obj-thunderbird/dist/bin/xpcshell -g /«PKGBUILDDIR»/obj-thunderbird/dist/bin/ -a /«PKGBUILDDIR»/obj-thunderbird/dist/bin/ -f /«PKGBUILDDIR»/mozilla/toolkit/mozapps/installer/precompile_cache.js -e precompile_startupcache("resource://gre/");
d: file /«PKGBUILDDIR»/mozilla/xpcom/build/XPCOMInit.cpp, line 709
[23935] ###!!! ABORT: u_init() failed: file /«PKGBUILDDIR»/mozilla/xpcom/build/XPCOMInit.cpp, line 709
Traceback (most recent call last):
  File "/«PKGBUILDDIR»/mozilla/toolkit/mozapps/installer/packager.py", line 415, in <module>
  File "/«PKGBUILDDIR»/mozilla/toolkit/mozapps/installer/packager.py", line 409, in main
    args.source, gre_path, base)
  File "/«PKGBUILDDIR»/mozilla/toolkit/mozapps/installer/packager.py", line 166, in precompile_cache
    errors.fatal('Error while running startup cache precompilation')
  File "/«PKGBUILDDIR»/mozilla/python/mozbuild/mozpack/errors.py", line 103, in fatal
    self._handle(self.FATAL, msg)
  File "/«PKGBUILDDIR»/mozilla/python/mozbuild/mozpack/errors.py", line 98, in _handle
    raise ErrorMessage(msg)
mozpack.errors.ErrorMessage: Error: Error while running startup cache precompilation
/«PKGBUILDDIR»/mozilla/toolkit/mozapps/installer/packager.mk:41: recipe for target 'stage-package' failed
make[4]: *** [stage-package] Error 1

PS: The build logs for ppc64, sparc64 and x32 are currently missing due to issues on the
    buildds with sending mail. We're working on fixing this.


> [1] https://anonscm.debian.org/cgit/pkg-mozilla/icedove.git/tree/mozilla/js/src/jit/AtomicOperations.h
> [2] https://github.com/glaubitz/gecko-dev/blob/m68k/js/src/jit/AtomicOperations.h#L340

 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

Reply to: