Closed Bug 1622013 Opened 4 years ago Closed 4 years ago

failure to build on 32-bits since libvpx update in #1525393

Categories

(Core :: Audio/Video: Playback, defect, P5)

75 Branch
x86
OpenBSD
defect

Tracking

()

RESOLVED FIXED
mozilla77
Tracking Status
firefox-esr68 --- unaffected
firefox74 --- unaffected
firefox75 --- wontfix
firefox76 --- fixed
firefox77 --- fixed

People

(Reporter: gaston, Assigned: dminor)

References

(Regression)

Details

(Keywords: regression)

Attachments

(2 files)

Build failure of 75.0b2 on OpenBSD/i386 which is natively 32 bits.

/build/obj/ports/firefox-75.0beta2/firefox-75.0/media/libvpx/libvpx/vpx_ports/emms_mmx.c:15:33: error: always_inline function '_mm_empty' requires target feature 'mmx', but would be inlined into function
      'vpx_clear_system_state' that is compiled without support for 'mmx'
void vpx_clear_system_state() { _mm_empty(); }
                                ^                 
1 error generated.

the full build command is the following:

/build/obj/ports/firefox-75.0beta2/bin/cc -std=gnu99 -o emms_mmx.o -c  -I/build/obj/ports/firefox-75.0beta2/build-i386/dist/system_wrappers -include /build/obj/ports/firefox-75.0beta2/firefox-75.0/config/gcc_h
idden.h -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DHAVE_CONFIG_H=vpx_config.h -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/build/obj/ports/firefox-75.0beta2/firef
ox-75.0/media/libvpx -I/build/obj/ports/firefox-75.0beta2/build-i386/media/libvpx -I/build/obj/ports/firefox-75.0beta2/firefox-75.0/media/libvpx/config/linux/ia32 -I/build/obj/ports/firefox-75.0beta2/firefox-7
5.0/media/libvpx/config -I/build/obj/ports/firefox-75.0beta2/firefox-75.0/media/libvpx/libvpx -I/build/obj/ports/firefox-75.0beta2/build-i386/dist/include -I/usr/local/include/nspr -I/usr/local/include/nss -I/
build/obj/ports/firefox-75.0beta2/build-i386/dist/include/nss -I/usr/include -fPIC -include /build/obj/ports/firefox-75.0beta2/build-i386/mozilla-config.h -DMOZILLA_CLIENT -Qunused-arguments -I/usr/X11R6/inclu
de -O2 -pipe -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -pthread -fPIC -pipe -I/usr/local/include -fno-omit-frame-pointer -funwind-tables -Qunused-arguments -Wall -Wbitfield-enum-
conversion -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wclass-varargs -Wfloat-overflow-co
nversion -Wfloat-zero-conversion -Wloop-analysis -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-l
imit-compare -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-
arguments -Wno-sign-compare -Wno-unused-function -Wno-unreachable-code -Wno-unneeded-internal-declaration  -MD -MP -MF .deps/emms_mmx.o.pp   /build/obj/ports/firefox-75.0beta2/firefox-75.0/media/libvpx/libvpx/
vpx_ports/emms_mmx.c

i guess this has something to do in the HAVE_MMX spaghetti bits that arent enabled/detected on OpenBSD ?

OS: Unspecified → OpenBSD
Has Regression Range: --- → yes
Has STR: --- → yes
Keywords: regression
Version: unspecified → 75 Branch
Component: Audio/Video → Audio/Video: Playback

can you please share your configure options, and other logs if you happen to have them? It's easier to reproduce and thus confirm.

(In reply to tt_1 from comment #2)

can you please share your configure options, and other logs if you happen to have them? It's easier to reproduce and thus confirm.

configure args are:

--prefix=/usr/local --enable-release  --enable-sandbox --with-libclang-path=/usr/local/lib --disable-debug-symbols --with-system-nss --with-system-nspr --with-system-icu --with-system-zlib=/usr --with-system-bz2=/usr/local  --enable-official-branding --disable-gconf                         --disable-necko-wifi  --disable-optimize --disable-tests  --disable-updater --disable-dbus --enable-default-toolkit=cairo-gtk3 --enable-application=browser

but i doubt they matters. I think anyone building natively on 32-bits on linux or BSD will see the same errors. I suppose there should be some HAVE_MMX set somewhere via the files in media/libvpx/config - on OpenBSD, i dunno which vpx_config.h is used (the linux ones per https://hg.mozilla.org/releases/mozilla-beta/file/tip/media/libvpx/moz.build#l37 ?)

for the other logs, what do you need ? config logs ? config.h ?

is mozilla still building natively on 32 bits ? jan, does it build for you ?

Flags: needinfo?(jbeich)

Ok, since you're on *bsd this means you're using clang and lld then? Asking since I couldn't confirm when cross compiling to armv7 with gcc and ld.bfd

I might be able to do a test compile nativly with that confirmed information, to see wether that does affect armv7 as well.

yes, OpenBSD/i386 uses clang/lld.

Same issue on Ubuntu/i386 builds for central and beta.

(In reply to Landry Breuil (:gaston) from comment #3)

is mozilla still building natively on 32 bits ?

x86 without SSE2 is considered Tier3 since bug 1274196.

jan, does it build for you ?

FreeBSD i386 is also affected unless --with-system-libvpx. i386 target implicitly has -march=i486 but due to missing libatomic (remember, GCC is not in base) it was bumped to -march=i686 since Clang 9 upgrade. As -march=i686 doesn't implicitly enable -mmx the build still fails.

Flags: needinfo?(jbeich)
Attached patch fixSplinter Review
Attachment #9135019 - Flags: feedback?(ricotz)
Attachment #9135019 - Flags: feedback?(landry)
Comment on attachment 9135019 [details] [diff] [review]
fix

Review of attachment 9135019 [details] [diff] [review]:
-----------------------------------------------------------------

This fixed the libvpx build on Ubuntu.
Attachment #9135019 - Flags: feedback?(ricotz) → feedback+
Comment on attachment 9135019 [details] [diff] [review]
fix

allows me to build 75.0b6 on OpenBSD/i386, thanks !
Attachment #9135019 - Flags: review+
Attachment #9135019 - Flags: feedback?(landry)
Attachment #9135019 - Flags: feedback+

:dminor, :bryce, can we somehow get this commited ? i've had it as a local patch for 75.. thanks!

Flags: needinfo?(dminor)
Flags: needinfo?(bvandyk)
Assignee: nobody → dminor
Status: NEW → ASSIGNED
Flags: needinfo?(dminor)
Flags: needinfo?(bvandyk)
Pushed by dminor@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4d8f1274a619
Build *_mmx.c files with -mmmx in bundled libvpx; r=bryce
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla77

Comment on attachment 9140106 [details]
Bug 1622013 - Build *_mmx.c files with -mmmx in bundled libvpx; r=bryce!

Beta/Release Uplift Approval Request

  • User impact if declined: Increased maintenance burden for *BSD maintainers.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Low risk, doesn't impact tier-1 builds.
  • String changes made/needed: None
Attachment #9140106 - Flags: approval-mozilla-beta?

Comment on attachment 9140106 [details]
Bug 1622013 - Build *_mmx.c files with -mmmx in bundled libvpx; r=bryce!

Makes life easier for downstream distros. Approved for 76.0b5.

Attachment #9140106 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: