Fails to build with Windows 11 SDK (10.0.22000.194)
Categories
(Firefox Build System :: General, defect, P3)
Tracking
(firefox95 fixed)
Tracking | Status | |
---|---|---|
firefox95 | --- | fixed |
People
(Reporter: saschanaz, Assigned: ahochheiden)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
It's highly possible that this is an SDK bug since it's still preview, but it shouldn't harm to log it here.
> ./mach build
MozillaBuild Install Directory: C:\mozilla-build\
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
unable to start ssh-agent service, error :1058
Error connecting to agent: No such file or directory
0:01.22 Clobber not needed.
0:03.19 Adding make options from C:\Users\Kagami\Documents\GitHub\gecko-dev\mozconfig
AUTOCLOBBER=1
MOZ_OBJDIR=C:/Users/Kagami/Documents/GitHub/gecko-dev/obj-x86_64-pc-mingw32
OBJDIR=C:/Users/Kagami/Documents/GitHub/gecko-dev/obj-x86_64-pc-mingw32
FOUND_MOZCONFIG=C:/Users/Kagami/Documents/GitHub/gecko-dev/mozconfig
export FOUND_MOZCONFIG
0:03.19 C:/Users/Kagami/.mozbuild/mozmake/mozmake.exe -f client.mk -s
0:04.11 Elapsed: 0.00s; From dist/private: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
0:04.13 Elapsed: 0.00s; From dist/public: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
0:04.33 Elapsed: 0.19s; From dist/xpi-stage: Kept 0 existing; Added/updated 94; Removed 0 files and 0 directories.
0:05.53 Elapsed: 1.38s; From _tests: Kept 0 existing; Added/updated 1247; Removed 0 files and 0 directories.
0:06.00 Elapsed: 1.85s; From dist/bin: Kept 0 existing; Added/updated 2653; Removed 0 files and 0 directories.
0:07.93 Elapsed: 3.82s; From dist/include: Kept 0 existing; Added/updated 6557; Removed 0 files and 0 directories.
0:08.07 ./buildid.h.stub
0:08.07 ./source-repo.h.stub
0:08.63 ./application.ini.stub
0:09.25 ./application.ini.h.stub
0:10.16 toolkit/library/rust/force-cargo-library-build
0:10.18 testing/geckodriver/module.res
0:10.34 accessible/aom
0:10.37 accessible/base
0:10.40 accessible/html
0:10.41 accessible/basetypes
0:10.46 accessible/generic
0:10.55 accessible/interfaces/gecko
0:10.84 In file included from module.rc:6:
0:10.85 In file included from C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\winuser.h:61:
0:10.87 In file included from C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\libloaderapi.h:18:
0:10.90 In file included from C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\minwindef.h:182:
0:10.92 C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\winnt.h(253,2): error: Must define a target architecture.
0:10.93 #error Must define a target architecture.
0:10.95 ^
0:10.96 1 error generated.
0:10.99 mozmake[4]: *** [C:/Users/Kagami/Documents/GitHub/gecko-dev/config/rules.mk:814: module.res] Error 1
0:11.03 mozmake[3]: *** [C:/Users/Kagami/Documents/GitHub/gecko-dev/config/recurse.mk:72: testing/geckodriver/target] Error 2
0:11.03 mozmake[3]: *** Waiting for unfinished jobs....
0:24.95 warning: using `procedural-masquerade` crate
0:24.95 --> toolkit\components\cascade_bloom_filter\src\lib.rs:24:1
0:24.95 |
0:24.96 24 | / rental! {
0:24.96 25 | | mod rentals {
0:24.96 26 | | use super::Cascade;
0:24.96 27 | |
0:24.96 ... |
0:24.96 33 | | }
0:24.96 34 | | }
0:24.96 | |_^
0:24.96 |
0:24.96 = note: `#[warn(proc_macro_back_compat)]` on by default
0:24.96 = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
0:24.96 = note: for more information, see issue #83125 <https://github.com/rust-lang/rust/issues/83125>
0:24.96 = note: The `procedural-masquerade` crate has been unnecessary since Rust 1.30.0. Versions of this crate below 0.1.7 will eventually stop compiling.
0:24.96 = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
0:24.96 warning: 1 warning emitted
0:24.96 warning: using `procedural-masquerade` crate
0:24.96 --> security\manager\ssl\cert_storage\src\lib.rs:134:1
0:24.96 |
0:24.96 134 | / rental! {
0:24.96 135 | | mod holding {
0:24.96 136 | | use super::{Cascade, Mmap};
0:24.96 137 | |
0:24.96 ... |
0:24.96 143 | | }
0:24.96 144 | | }
0:24.96 | |_^
0:24.96 |
0:24.96 = note: `#[warn(proc_macro_back_compat)]` on by default
0:24.96 = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
0:24.96 = note: for more information, see issue #83125 <https://github.com/rust-lang/rust/issues/83125>
0:24.96 = note: The `procedural-masquerade` crate has been unnecessary since Rust 1.30.0. Versions of this crate below 0.1.7 will eventually stop compiling.
0:24.96 = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
0:24.96 warning: 1 warning emitted
0:24.96 Finished release [unoptimized] target(s) in 14.78s
0:26.68 mozmake[2]: *** [C:/Users/Kagami/Documents/GitHub/gecko-dev/config/recurse.mk:34: compile] Error 2
0:26.68 mozmake[1]: *** [C:/Users/Kagami/Documents/GitHub/gecko-dev/config/rules.mk:360: default] Error 2
0:26.68 mozmake: *** [client.mk:65: build] Error 2
0:26.71 280 compiler warnings present.
Comment 1•4 years ago
|
||
Going to mark as P5, but will investigate more closely if this is released into non-preview 👍
Updated•4 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Comment 2•3 years ago
|
||
(Beta-stage .120 still has the same issue)
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Comment 3•3 years ago
|
||
Where are you getting the Windows 11 SDK? It doesn't appear in VS 2022 preview (17.0.0 Preview 3.1).
Comment 4•3 years ago
|
||
Additional question: this is not blocking Windows 11 support in a practical way, is it? (we don't need the Windows 11 SDK to support Windows 11, that would be a first)
Reporter | ||
Comment 5•3 years ago
|
||
It's in https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewSDK.
Windows 11 support itself doesn't require this SDK, as you said.
Reporter | ||
Comment 6•3 years ago
|
||
The final Windows 11 SDK is still problematic. :mhentges should we be concerned?
Reporter | ||
Comment 7•3 years ago
•
|
||
Seemingly the relevant change is in winnt.h
:
In 19041:
#ifndef SYSTEM_CACHE_ALIGNMENT_SIZE
#if defined(_AMD64_) || defined(_X86_)
#define SYSTEM_CACHE_ALIGNMENT_SIZE 64
#else
#define SYSTEM_CACHE_ALIGNMENT_SIZE 128
#endif
#endif
In 22000:
#ifndef SYSTEM_CACHE_ALIGNMENT_SIZE
#if defined(_AMD64_) || defined(_X86_)
#define SYSTEM_CACHE_ALIGNMENT_SIZE X86_CACHE_ALIGNMENT_SIZE
#elif defined(_ARM64_) || defined(_ARM_)
#define SYSTEM_CACHE_ALIGNMENT_SIZE ARM_CACHE_ALIGNMENT_SIZE
#else
#error Must define a target architecture.
#endif
#endif // SYSTEM_CACHE_ALIGNMENT_SIZE
ARM_CACHE_ALIGNMENT_SIZE
is 128 so it doesn't cause a difference in ARM builds.
Reporter | ||
Comment 8•3 years ago
•
|
||
And it's included from obj/testing/geckodriver/module.rc
, probably without target architecture macro as the error says.
Edit: ... which is generated by config/create_rc.py
Reporter | ||
Comment 9•3 years ago
|
||
Interestingly there is this comment:
//
// Note: RC_INVOKED is checked in PROBE_ALIGNMENT to maintain compatibility with previous
// versions of the SDK which did not block inclusion in an .RC file.
//
#if defined(_AMD64_) || defined(_X86_) || defined(_ARM64EC_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_) || defined(_ARM_) || defined(_ARM64_)
//
// TODO: WOWXX - Unblock ARM. Make all alignment checks DWORD for now.
//
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif !defined(RC_INVOKED)
#error "No Target Architecture"
#endif
I guess someone missed this for SYSTEM_CACHE_ALIGNMENT_SIZE
?
Assignee | ||
Updated•3 years ago
|
Reporter | ||
Comment 10•3 years ago
|
||
I filed https://github.com/microsoft/Windows-Dev-Performance/issues/98 btw, but not sure that is the correct place. This is a breaking change from SDK side anyway.
Comment 11•3 years ago
|
||
Nice, thanks! Chatted with Alex about this today, he's going to take a look into this.
Thanks for the report :)
Assignee | ||
Comment 12•3 years ago
•
|
||
On SDK versions older than 10.0.22000.x we defaulted to 128, but with
this update, Microsoft removed the default and created a compiler error
if the CPU architecture was not specified. This change explicitly
defines the CPU architecture, resolving the compiler error.
Depends on D128318
Comment 13•3 years ago
|
||
Comment 14•3 years ago
|
||
bugherder |
Description
•