Hi,

The following diff makes i386 to be compiled without --enable-rust-simd.
simd is "Single instruction, multiple data" (aka MMX, SSE, SSE2...).

rustc when compiled with external LLVM doesn't export target_features as
compilation variable, making firefox building to fail.

I workarounded the problem on amd64 by manually exported SSE2 symbol
(always present on amd64). But for i386, same hack isn't possible (as
not all i386 processors have such extensions). So it is preferable to
not enable simd on i386.

I tested the diff with rustc 1.22.1 and firefox still build well (but no
runtime test).

Thanks.
-- 
Sebastien Marie


Index: Makefile
===================================================================
RCS file: /cvs/ports/www/mozilla-firefox/Makefile,v
retrieving revision 1.333
diff -u -p -r1.333 Makefile
--- Makefile    16 Nov 2017 23:20:40 -0000      1.333
+++ Makefile    26 Nov 2017 11:42:39 -0000
@@ -8,6 +8,7 @@ ONLY_FOR_ARCHS =        amd64 i386
 MOZILLA_VERSION =      57.0
 MOZILLA_PROJECT =      firefox
 MOZILLA_CODENAME =     browser
+REVISION =             0

 SO_VERSION =   75.0
 # NOTE: Must bump minor version if any shlib's are removed from the
@@ -54,11 +55,14 @@ CONFIGURE_ENV =             CPPFLAGS="-I${LOCALBASE
 # bug 857628
 CONFIGURE_ARGS +=      --enable-pie
 CONFIGURE_ARGS +=      --enable-release #1386371
-CONFIGURE_ARGS +=      --enable-rust-simd #1261841
 CONFIGURE_ARGS +=      --enable-webrender=build
 # bug 1409680
 .if ${MACHINE_ARCH} == "i386"
 CONFIGURE_ARGS +=      --disable-debug-symbols
+.endif
+# bug 1261841
+.if ${MACHINE_ARCH} == "amd64"
+CONFIGURE_ARGS +=      --enable-rust-simd
 .endif
 #CONFIGURE_ARGS +=     --enable-linker=lld

Reply via email to