Closed Bug 1250403 Opened 9 years ago Closed 9 years ago

ARM64: atomicops_internals_arm_gcc.h does not define 64bit methods

Categories

(Core :: IPC, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla47
Tracking Status
firefox46 --- fixed
firefox47 --- fixed
firefox-esr45 --- fixed

People

(Reporter: jhorak, Assigned: m_kato)

References

Details

(Whiteboard: btpp-active)

Attachments

(3 files)

I got following error during build of Firefox 45 beta 8 on arm64 (gcc): /usr/lib/gcc/aarch64-redhat-linux/4.8.5/../../../../lib64/crtn.o../../dom/media/systemservices/Unified_cpp_systemservices0.o: In function `Singleton<mozilla::camera::CamerasSingleton, DefaultSingletonTraits<mozilla::camera::CamerasSingleton>, mozilla::camera::CamerasSingleton>::OnExit(void*)': /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:172: undefined reference to `base::subtle::NoBarrier_AtomicExchange(long volatile*, long)' ../../dom/media/systemservices/Unified_cpp_systemservices0.o: In function `Singleton<mozilla::camera::CamerasSingleton, DefaultSingletonTraits<mozilla::camera::CamerasSingleton>, mozilla::camera::CamerasSingleton>::get()': /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:118: undefined reference to `base::subtle::NoBarrier_Load(long const volatile*)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:125: undefined reference to `base::subtle::Acquire_CompareAndSwap(long volatile*, long, long)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:130: undefined reference to `base::subtle::Release_Store(long volatile*, long)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:147: undefined reference to `base::subtle::NoBarrier_Load(long const volatile*)' ../../media/webrtc/trunk/webrtc/system_wrappers/system_wrappers_system_wrappers/Unified_cpp_system_wrappers1.o: In function `Singleton<webrtc::TracePosix, DefaultSingletonTraits<webrtc::TracePosix>, webrtc::TracePosix>::OnExit(void*)': /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:172: undefined reference to `base::subtle::NoBarrier_AtomicExchange(long volatile*, long)' ../../media/webrtc/trunk/webrtc/system_wrappers/system_wrappers_system_wrappers/Unified_cpp_system_wrappers1.o: In function `Singleton<webrtc::TracePosix, DefaultSingletonTraits<webrtc::TracePosix>, webrtc::TracePosix>::get()': /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:118: undefined reference to `base::subtle::NoBarrier_Load(long const volatile*)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:125: undefined reference to `base::subtle::Acquire_CompareAndSwap(long volatile*, long, long)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:130: undefined reference to `base::subtle::Release_Store(long volatile*, long)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:147: undefined reference to `base::subtle::NoBarrier_Load(long const volatile*)' ../../media/webrtc/trunk/webrtc/modules/modules_rtp_rtcp/Unified_cpp_webrtc_modules1.o: In function `Singleton<webrtc::SSRCDatabase, DefaultSingletonTraits<webrtc::SSRCDatabase>, webrtc::SSRCDatabase>::OnExit(void*)': /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:172: undefined reference to `base::subtle::NoBarrier_AtomicExchange(long volatile*, long)' ../../media/webrtc/trunk/webrtc/modules/modules_rtp_rtcp/Unified_cpp_webrtc_modules1.o: In function `Singleton<webrtc::SSRCDatabase, DefaultSingletonTraits<webrtc::SSRCDatabase>, webrtc::SSRCDatabase>::get()': /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:118: undefined reference to `base::subtle::NoBarrier_Load(long const volatile*)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:125: undefined reference to `base::subtle::Acquire_CompareAndSwap(long volatile*, long, long)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:130: undefined reference to `base::subtle::Release_Store(long volatile*, long)' /builddir/build/BUILD/firefox-45.0/firefox-45.0b8/ipc/chromium/src/base/singleton.h:147: undefined reference to `base::subtle::NoBarrier_Load(long const volatile*)' Problem is that atomicops_internals_arm_gcc.h does not define 64 bits version of methods from above. Attaching simple workaround, having a fix would be much better though.
media/webrtc/trunk/build/build_config.h and security/sandbox/chromium/build/build_config.h use ARCH_CPU_ARM64, but bug 963030 defines ARCH_CPU_AARCH64... Chromium uses ARCH_CPU_ARM64, so we should use it instead of ARCH_CPU_AARCH64...
And V8 has optimized version of aarch64's atomicops.h. So we should use it.
Assignee: nobody → m_kato
Whiteboard: btpp-active
Chromium defines ARCH_CPU_ARM64 and ARCH_CPU_ARM_FAMILY for aarch64. So we should use it instead. Because webrtc and sandbox already define it Review commit: https://reviewboard.mozilla.org/r/37079/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/37079/
Attachment #8724530 - Flags: review?(wmccloskey)
Comment on attachment 8724530 [details] MozReview Request: Bug 1250403 - Part 1. Define ARCH_CPU_ARM64 instead of ARCH_CPU_AARCH64. r?billm https://reviewboard.mozilla.org/r/37079/#review33809
Attachment #8724530 - Flags: review?(wmccloskey) → review+
Comment on attachment 8724532 [details] MozReview Request: Bug 1250403 - Part 2. Import crbug #354405 for aarch64. r?billm https://reviewboard.mozilla.org/r/37081/#review33811
Attachment #8724532 - Flags: review?(wmccloskey) → review+
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
Can we have this uplifted, possibly up to esr45? Bug 1230768 made this necessary, and was uplifted up to esr45.
Flags: needinfo?(m_kato)
Comment on attachment 8724530 [details] MozReview Request: Bug 1250403 - Part 1. Define ARCH_CPU_ARM64 instead of ARCH_CPU_AARCH64. r?billm [Approval Request Comment] If this is not a sec:{high,crit} bug, please state case for ESR consideration: User impact if declined: Cannot build and work Firefox for Linux/aarch64 platform. Some Linux distributors (Fedora, Debian etc) already provides aarch64 version. Fix Landed on Version: This fix is already landed in 47 Risk to taking this patch (and alternatives if risky): Nothing. Linux/aarch64 isn't tier-1 platform. String or UUID changes made by this patch: N/A See https://wiki.mozilla.org/Release_Management/ESR_Landing_Process for more info.
Flags: needinfo?(m_kato)
Attachment #8724530 - Flags: approval-mozilla-esr45?
Comment on attachment 8724532 [details] MozReview Request: Bug 1250403 - Part 2. Import crbug #354405 for aarch64. r?billm [Approval Request Comment] If this is not a sec:{high,crit} bug, please state case for ESR consideration: User impact if declined: Cannot build and work Firefox for Linux/aarch64 platform. Some Linux distributors (Fedora, Debian etc) already provides aarch64 version. Fix Landed on Version: This fix is already landed in 47 Risk to taking this patch (and alternatives if risky): Nothing. Linux/aarch64 isn't tier-1 platform. String or UUID changes made by this patch: N/A See https://wiki.mozilla.org/Release_Management/ESR_Landing_Process for more info.
Attachment #8724532 - Flags: approval-mozilla-esr45?
This would be needed on beta too.
Flags: needinfo?(m_kato)
Comment on attachment 8724530 [details] MozReview Request: Bug 1250403 - Part 1. Define ARCH_CPU_ARM64 instead of ARCH_CPU_AARCH64. r?billm Approval Request Comment [Feature/regressing bug #]: Nothing [User impact if declined]: User cannot build Firefox for Linux/aarch64 [Describe test coverage new/current, TreeHerder]: Landed in m-c. [Risks and why]: Nothing. We don't release Firefox for Linux/aarch64. [String/UUID change made/needed]: No.
Flags: needinfo?(m_kato)
Attachment #8724530 - Flags: approval-mozilla-beta?
Comment on attachment 8724532 [details] MozReview Request: Bug 1250403 - Part 2. Import crbug #354405 for aarch64. r?billm Approval Request Comment [Feature/regressing bug #]: Nothing [User impact if declined]: User cannot build Firefox for Linux/aarch64 [Describe test coverage new/current, TreeHerder]: Landed in m-c. [Risks and why]: Nothing. We don't release Firefox for Linux/aarch64 yet. [String/UUID change made/needed]: No.
Attachment #8724532 - Flags: approval-mozilla-beta?
Comment on attachment 8724530 [details] MozReview Request: Bug 1250403 - Part 1. Define ARCH_CPU_ARM64 instead of ARCH_CPU_AARCH64. r?billm Let's try this for beta 5, we want to support Linux builds. But, if there are problems, and we can't fix them for the beta 6 build, we will have to back this out.
Attachment #8724530 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #8724532 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment on attachment 8724530 [details] MozReview Request: Bug 1250403 - Part 1. Define ARCH_CPU_ARM64 instead of ARCH_CPU_AARCH64. r?billm Simplify the life of Linux packagers, taking it. Should be in 45.1.0
Attachment #8724530 - Flags: approval-mozilla-esr45? → approval-mozilla-esr45+
Comment on attachment 8724532 [details] MozReview Request: Bug 1250403 - Part 2. Import crbug #354405 for aarch64. r?billm Simplify the life of Linux packagers, taking it. Should be in 45.1.0
Attachment #8724532 - Flags: approval-mozilla-esr45? → approval-mozilla-esr45+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: