Closed
Bug 1448748
Opened 7 years ago
Closed 7 years ago
MinGW x64 NSS Fixes
Categories
(NSS :: Build, enhancement)
NSS
Build
Tracking
(Not tracked)
RESOLVED
FIXED
3.37
People
(Reporter: tjr, Assigned: tjr)
References
(Blocks 1 open bug)
Details
Attachments
(1 file, 1 obsolete file)
1.73 KB,
patch
|
franziskus
:
review+
|
Details | Diff | Splinter Review |
Lots of missing functions errors; eventually fixed by the following. I know I need to prep a NSS patch for this, but looking for a go ahead with what I have attached before doing that.
Comment hidden (mozreview-request) |
Assignee | ||
Updated•7 years ago
|
Flags: needinfo?(franziskuskiefer)
Comment 2•7 years ago
|
||
mozreview-review |
Comment on attachment 8962240 [details]
Bug 1448748 Disable a bunch of optimized stuff to fix the MinGW x64 Build f?franziskus
https://reviewboard.mozilla.org/r/231086/#review236494
So I guess all the assembly doesn't work. But you'll probably want to keep `USE_HW_AES`.
You should also change the makefiles. I don't think anyone is using this target (gyp or make), but better to be consistent in both build systems.
::: security/nss/lib/freebl/freebl.gyp
(Diff revision 1)
> 'MP_IS_LITTLE_ENDIAN',
> - 'NSS_BEVAND_ARCFOUR',
> - 'MPI_AMD64',
> - 'MP_ASSEMBLY_MULTIPLY',
> - 'NSS_USE_COMBA',
> - 'USE_HW_AES',
Why do you want to disable hardware acceleration for AES?
Updated•7 years ago
|
Flags: needinfo?(franziskuskiefer)
Assignee | ||
Comment 3•7 years ago
|
||
(In reply to Franziskus Kiefer [:fkiefer or :franziskus] from comment #2)
> Comment on attachment 8962240 [details]
> Bug 1448748 Disable a bunch of optimized stuff to fix the MinGW x64 Build
> f?franziskus
>
> https://reviewboard.mozilla.org/r/231086/#review236494
>
> So I guess all the assembly doesn't work. But you'll probably want to keep
> `USE_HW_AES`.
> You should also change the makefiles. I don't think anyone is using this
> target (gyp or make), but better to be consistent in both build systems.
>
> ::: security/nss/lib/freebl/freebl.gyp
> (Diff revision 1)
> > 'MP_IS_LITTLE_ENDIAN',
> > - 'NSS_BEVAND_ARCFOUR',
> > - 'MPI_AMD64',
> > - 'MP_ASSEMBLY_MULTIPLY',
> > - 'NSS_USE_COMBA',
> > - 'USE_HW_AES',
>
> Why do you want to disable hardware acceleration for AES?
It doesn't work out of the box =/
> In file included from /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c:28:0:
> /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c: In function 'intel_AES_GCM_CreateContext':
> /builds/worker/workspace/build/src/mingw32/lib/gcc/x86_64-w64-mingw32/6.4.0/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
> _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
> ^~~~~~~~~~~~~~~~
> /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c:123:5: note: called from here
> _mm_storeu_si128((__m128i *)gcm->CTR, _mm_shuffle_epi8(_mm_add_epi32(ONE, _mm_shuffle_epi8(_mm_loadu_si128((__m128i *)gcm->CTR), BSWAP_MASK)), BSWAP_MASK));
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c:28:0:
> /builds/worker/workspace/build/src/mingw32/lib/gcc/x86_64-w64-mingw32/6.4.0/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
> _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
> ^~~~~~~~~~~~~~~~
> /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c:123:5: note: called from here
> _mm_storeu_si128((__m128i *)gcm->CTR, _mm_shuffle_epi8(_mm_add_epi32(ONE, _mm_shuffle_epi8(_mm_loadu_si128((__m128i *)gcm->CTR), BSWAP_MASK)), BSWAP_MASK));
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c:28:0:
> /builds/worker/workspace/build/src/mingw32/lib/gcc/x86_64-w64-mingw32/6.4.0/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
> _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
> ^~~~~~~~~~~~~~~~
> /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c:123:5: note: called from here
> _mm_storeu_si128((__m128i *)gcm->CTR, _mm_shuffle_epi8(_mm_add_epi32(ONE, _mm_shuffle_epi8(_mm_loadu_si128((__m128i *)gcm->CTR), BSWAP_MASK)), BSWAP_MASK));
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c:28:0:
> /builds/worker/workspace/build/src/mingw32/lib/gcc/x86_64-w64-mingw32/6.4.0/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
> _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
> ^~~~~~~~~~~~~~~~
> /builds/worker/workspace/build/src/security/nss/lib/freebl/intel-gcm-wrap.c:123:5: note: called from here
> _mm_storeu_si128((__m128i *)gcm->CTR, _mm_shuffle_epi8(_mm_add_epi32(ONE, _mm_shuffle_epi8(_mm_loadu_si128((__m128i *)gcm->CTR), BSWAP_MASK)), BSWAP_MASK));
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Comment 4•7 years ago
|
||
Hm, I see. Well as I said I don't know of any mingw users so I'm fine with disabling all of this to make it build. Please add the makefile changes and upload an NSS patch.
Assignee | ||
Comment 5•7 years ago
|
||
I believe the Makefile already does the correct thing:
> ifdef NS_USE_GCC
> # Ideally, we should use amd64 assembly code, but it's not yet mingw-w64
> # compatible.
Assignee | ||
Comment 6•7 years ago
|
||
Attachment #8962240 -
Attachment is obsolete: true
Attachment #8964084 -
Flags: review?(franziskuskiefer)
Updated•7 years ago
|
Attachment #8964084 -
Flags: review?(franziskuskiefer) → review+
Comment 7•7 years ago
|
||
landed as https://hg.mozilla.org/projects/nss/rev/954032211d2d303bcee85f448f4db24bb8ec9a0c
Note that we don't use this anywhere, so there might be errors.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → 3.37
Assignee | ||
Updated•7 years ago
|
Blocks: mingw-clang
Comment 9•7 years ago
|
||
This landed in NSS 3.37. ESR 60 is on NSS 3.36 so we'd have make another point release for NSS 3.36. We can take this to ride along if there's another 3.36 point release.
Flags: needinfo?(franziskuskiefer)
Assignee | ||
Comment 10•6 years ago
|
||
Wanted to follow up on this and Bug 1389967 - has there been any movement in 3.36/esr so we can take these? These two NSS patches are holding us back from getting both the old x64 and the new x86/x64 MinGW builds and tests running in TaskCluster...
Flags: needinfo?(franziskuskiefer)
Comment 11•6 years ago
|
||
There was another 3.36 point release not too long ago but this one wasn't picked up... It's on my list for the next one, which might happen soon.
Flags: needinfo?(franziskuskiefer)
You need to log in
before you can comment on or make changes to this bug.
Description
•