NetBSD Problem Report #55456

From tsutsui@ceres.dti.ne.jp  Sat Jul  4 14:09:18 2020
Return-Path: <tsutsui@ceres.dti.ne.jp>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 9835A1A9218
	for <gnats-bugs@gnats.NetBSD.org>; Sat,  4 Jul 2020 14:09:18 +0000 (UTC)
Message-Id: <202007041409.064E98vZ012918@ceres.dti.ne.jp>
Date: Sat, 4 Jul 2020 23:09:08 +0900 (JST)
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
Reply-To: tsutsui@ceres.dti.ne.jp
To: gnats-bugs@NetBSD.org
Cc: tsutsui@ceres.dti.ne.jp
Subject: pkgsrc/www/firefox 78.0 build failure on NetBSD/i386 9.0
X-Send-Pr-Version: 3.95

>Number:         55456
>Category:       pkg
>Synopsis:       pkgsrc/www/firefox 78.0 build failure on NetBSD/i386 9.0
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    ryoon
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jul 04 14:10:01 +0000 2020
>Closed-Date:    Mon Jul 13 15:46:39 +0000 2020
>Last-Modified:  Mon Jul 13 15:46:39 +0000 2020
>Originator:     Izumi Tsutsui
>Release:        NetBSD 9.0
>Organization:
>Environment:
System: NetBSD mirage 9.0 NetBSD 9.0 (GENERIC) #23: Wed May 13 04:08:16 JST 2020 tsutsui@mirage:/s/netbsd-9/src/sys/arch/i386/compile/GENERIC i386
Architecture: i386
Machine: i386
>Description:
pkgsrc/www/firefox 78.0 build fails on NetBSD/i386 9.0:

---
gmake[3]: Entering directory '/s/obj.i386/pkgsrc/www/firefox/work.i386/build/js/xpconnect/shell'
js/xpconnect/shell/xpcshell
/s/obj.i386/pkgsrc/www/firefox/work.i386/.cwrapper/bin/c++ -std=gnu++17 -o ../../../dist/bin/xpcshell -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Qunused-arguments -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/ffmpeg4 -I/usr/X11R7/include/freetype2 -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Wunused-function -Wunused-variable -Wstring-conversion -Wtautological-overlap-compare -Wtautologic!
 al-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-limit-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wno-error=deprecated-copy -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -fno-sized-deallocation -fno-aligned-new -O2 -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/ffmpeg4 -I/usr/X11R7/include/freetype2 -march=i586 -mstackrealign -fno-exceptions -fno-strict-aliasing -Dunix -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -O2 -fomit-frame-pointer -funwind-tables  /s/ob!
 j.i386/pkgsrc/www/firefox/work.i386/build/js/xpconnect/shell/x!
 pcshell.list    -lpthread -Wl,-R/usr/pkg/lib/firefox -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib/nspr -Wl,-R/usr/pkg/lib/nspr -L/usr/pkg/lib/nss -Wl,-R/usr/pkg/lib/nss -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -L/usr/pkg/lib/ffmpeg4 -Wl,-R/usr/pkg/lib/ffmpeg4 -L/usr/pkg/lib/pulseaudio -Wl,-R/usr/pkg/lib/pulseaudio -Wl,-z,noexecstack -Wl,-z,text -Wl,-z,relro -Wl,-z,nocopyreloc -Wl,-Bsymbolic-functions -Wl,--build-id=sha1 -fstack-protector-strong -rdynamic -Wl,-rpath-link,/s/obj.i386/pkgsrc/www/firefox/work.i386/build/dist/bin -Wl,-rpath-link,/usr/pkg/lib    -Wl,--export-dynamic -pie ../../../toolkit/library/build/libxul.so  -L/usr/pkg/lib/nspr -Wl,-R/usr/pkg/lib/nspr -lplds4 -lplc4 -lnspr4 -L/usr/pkg/lib -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -Wl,-R/usr/pkg/lib -lglib-2.0 -lintl
/usr/bin/ld: ../../toolkit/library/build/libxul.so: undefined reference to `__atomic_load'
/usr/bin/ld: ../../../toolkit/library/build/libxul.so: undefined reference to `__atomic_load'
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[3]: *** [/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/config/rules.mk:460: ../../../dist/bin/xpcshell] Error 1
gmake[3]: Leaving directory '/s/obj.i386/pkgsrc/www/firefox/work.i386/build/js/xpconnect/shell'
gmake[3]: *** [/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/config/rules.mk:460: ../../dist/bin/plugin-container] Error 1
gmake[3]: Leaving directory '/s/obj.i386/pkgsrc/www/firefox/work.i386/build/ipc/app'
gmake[2]: *** [/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/config/recurse.mk:74: js/xpconnect/shell/target] Error 2
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** [/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/config/recurse.mk:74: ipc/app/target] Error 2
gmake[2]: Leaving directory '/s/obj.i386/pkgsrc/www/firefox/work.i386/build'
gmake[1]: *** [/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/config/recurse.mk:34: compile] Error 2
gmake[1]: Leaving directory '/s/obj.i386/pkgsrc/www/firefox/work.i386/build'
gmake: *** [/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/config/rules.mk:390: all] Error 2
*** Error code 2

Stop.
make[2]: stopped in /usr/pkgsrc/www/firefox
*** Error code 1

Stop.
make[1]: stopped in /usr/pkgsrc/www/firefox
*** Error code 1

---

__atomic_load() comes from ./build/dom/media/Unified_cpp_dom_media8.cpp
and it includes various files with atomic ops.
---
#define MOZ_UNIFIED_BUILD
#include "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaStreamTrack.cpp"
#ifdef PL_ARENA_CONST_ALIGN_MASK
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaStreamTrack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
#undef PL_ARENA_CONST_ALIGN_MASK
#endif
#ifdef INITGUID
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaStreamTrack.cpp defines INITGUID, so it cannot be built in unified mode."
#undef INITGUID
#endif
#include "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaStreamWindowCapturer.cpp"
#ifdef PL_ARENA_CONST_ALIGN_MASK
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaStreamWindowCapturer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
#undef PL_ARENA_CONST_ALIGN_MASK
#endif
#ifdef INITGUID
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaStreamWindowCapturer.cpp defines INITGUID, so it cannot be built in unified mode."
#undef INITGUID
#endif
#include "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTimer.cpp"
#ifdef PL_ARENA_CONST_ALIGN_MASK
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTimer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
#undef PL_ARENA_CONST_ALIGN_MASK
#endif
#ifdef INITGUID
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTimer.cpp defines INITGUID, so it cannot be built in unified mode."
#undef INITGUID
#endif
#include "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrack.cpp"
#ifdef PL_ARENA_CONST_ALIGN_MASK
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
#undef PL_ARENA_CONST_ALIGN_MASK
#endif
#ifdef INITGUID
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrack.cpp defines INITGUID, so it cannot be built in unified mode."
#undef INITGUID
#endif
#include "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrackGraph.cpp"
#ifdef PL_ARENA_CONST_ALIGN_MASK
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrackGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
#undef PL_ARENA_CONST_ALIGN_MASK
#endif
#ifdef INITGUID
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrackGraph.cpp defines INITGUID, so it cannot be built in unified mode."
#undef INITGUID
#endif
#include "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrackList.cpp"
#ifdef PL_ARENA_CONST_ALIGN_MASK
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrackList.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
#undef PL_ARENA_CONST_ALIGN_MASK
#endif
#ifdef INITGUID
#error "/s/obj.i386/pkgsrc/www/firefox/work.i386/firefox-78.0/dom/media/MediaTrackList.cpp defines INITGUID, so it cannot be built in unified mode."
#undef INITGUID
#endif
---

>How-To-Repeat:
Build pkgsrc/www/firefox on NetBSD/i386 9.0.

>Fix:
No idea.  Avoid assuming gcc builtin __atomic_load()?

>Release-Note:

>Audit-Trail:
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
To: gnats-bugs@netbsd.org
Cc: tsutsui@ceres.dti.ne.jp
Subject: Re: pkg/55456: pkgsrc/www/firefox 78.0 build failure on NetBSD/i386
	 9.0
Date: Wed, 8 Jul 2020 23:14:22 +0900

 The following kludge works around for firefox 78.0.1.

 ---
 Index: mozilla-common.mk
 ===================================================================
 RCS file: /cvsroot/pkgsrc/www/firefox/mozilla-common.mk,v
 retrieving revision 1.174
 diff -u -p -r1.174 mozilla-common.mk
 --- mozilla-common.mk	1 Jul 2020 13:01:01 -0000	1.174
 +++ mozilla-common.mk	7 Jul 2020 16:26:01 -0000
 @@ -210,6 +210,10 @@ PLIST_SUBST+=	DLL_SUFFIX=".dylib"
  PLIST_SUBST+=	DLL_SUFFIX=".so"
  .endif

 +.if ${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "i386"
 +.include "../../devel/libatomic/buildlink3.mk"
 +CONFIGURE_ENV.NetBSD+=	ac_cv_needs_atomic=yes
 +.endif
  BUILDLINK_API_DEPENDS.libevent+=	libevent>=1.1
  .include "../../devel/libevent/buildlink3.mk"
  .include "../../devel/libffi/buildlink3.mk"

 ---
 Izumi Tsutsui

Responsible-Changed-From-To: pkg-manager->ryoon
Responsible-Changed-By: bsiegert@NetBSD.org
Responsible-Changed-When: Wed, 08 Jul 2020 17:47:52 +0000
Responsible-Changed-Why:
Over to maintainer.


From: "Ryo ONODERA" <ryoon@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/55456 CVS commit: pkgsrc/www/firefox
Date: Sun, 12 Jul 2020 01:37:50 +0000

 Module Name:	pkgsrc
 Committed By:	ryoon
 Date:		Sun Jul 12 01:37:50 UTC 2020

 Modified Files:
 	pkgsrc/www/firefox: Makefile distinfo mozilla-common.mk

 Log Message:
 firefox: Update to 78.0.2

 * Fix build under NetBSD/i386 with PR pkg/55456.

 Changelog:
 Fixed
     Security fix

     Fixed an accessibility regression in reader mode (bug 1650922)

     Made the address bar more resilient to data corruption in the user profile (bug 1649981)

     Fixed a regression opening certain external applications (bug 1650162)

 Security fix:
 #MFSA-2020-0003: X-Frame-Options bypass using object or embed tags


 To generate a diff of this commit:
 cvs rdiff -u -r1.437 -r1.438 pkgsrc/www/firefox/Makefile
 cvs rdiff -u -r1.402 -r1.403 pkgsrc/www/firefox/distinfo
 cvs rdiff -u -r1.174 -r1.175 pkgsrc/www/firefox/mozilla-common.mk

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->feedback
State-Changed-By: ryoon@NetBSD.org
State-Changed-When: Sun, 12 Jul 2020 01:47:06 +0000
State-Changed-Why:
Could you try www/firefox-78.0.2 with your patch?


State-Changed-From-To: feedback->closed
State-Changed-By: tsutsui@NetBSD.org
State-Changed-When: Mon, 13 Jul 2020 15:46:39 +0000
State-Changed-Why:
78.0.2 builds and works fine.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.