Closed Bug 1621070 Opened 4 years ago Closed 4 years ago

"KeyError: u'RUST_TARGET' "in build-win64-aarch64-shippable with RUST_PROGRAM

Categories

(Firefox Build System :: General, defect, P1)

defect

Tracking

(firefox76 fixed)

RESOLVED FIXED
mozilla76
Tracking Status
firefox76 --- fixed

People

(Reporter: agashlin, Assigned: agashlin)

References

Details

Attachments

(1 file)

I am adding a use of RUST_PROGRAM. This configuration works on Try with build-win64-aarch64, but not with build-win64-aarch64-shippable.

This is the message from the logs:

INFO -  checking host system type... x86_64-pc-mingw32
INFO -  checking target system type... aarch64-windows-mingw32
INFO -  checking build system type... x86_64-pc-mingw32
INFO -  checking NSPR selection... source-tree
INFO -  checking if app-specific confvars.sh exists... Z:/task_1583751697/build/src/browser/confvars.sh
INFO -  checking for wget... wget
INFO -  checking for fdatasync... no
INFO -  updating cache ./config.cache
INFO -  creating ./config.data
INFO -  Creating config.status
...
INFO -  Reticulating splines...
ERROR -  Traceback (most recent call last):
INFO -    File "Z:/task_1583751697/build/src/configure.py", line 170, in <module>
INFO -      sys.exit(main(sys.argv))
INFO -    File "Z:/task_1583751697/build/src/configure.py", line 51, in main
INFO -      return config_status(config)
INFO -    File "Z:/task_1583751697/build/src/configure.py", line 165, in config_status
INFO -      return config_status(args=[], **normalize(sanitized_config))
INFO -    File "Z:\task_1583751697\build\src\python\mozbuild\mozbuild\config_status.py", line 145, in config_status
INFO -      the_backend.consume(definitions)
INFO -    File "Z:\task_1583751697\build\src\python\mozbuild\mozbuild\backend\base.py", line 126, in consume
INFO -      for obj in objs:
INFO -    File "Z:\task_1583751697\build\src\python\mozbuild\mozbuild\frontend\emitter.py", line 187, in emit
INFO -      objs = list(emitfn(out))
INFO -    File "Z:\task_1583751697\build\src\python\mozbuild\mozbuild\frontend\emitter.py", line 1262, in emit_from_context
INFO -      for obj in self._handle_linkables(context, passthru, generated_files):
INFO -    File "Z:\task_1583751697\build\src\python\mozbuild\mozbuild\frontend\emitter.py", line 664, in _handle_linkables
INFO -      self._binaries[program] = cls(context, program, cargo_file)
INFO -    File "Z:\task_1583751697\build\src\python\mozbuild\mozbuild\frontend\data.py", line 586, in __init__
INFO -      cargo_dir = cargo_output_directory(context, self.TARGET_SUBST_VAR)
INFO -    File "Z:\task_1583751697\build\src\python\mozbuild\mozbuild\frontend\data.py", line 567, in cargo_output_directory
INFO -      return mozpath.join(context.config.substs[target_var], rust_build_kind)
INFO -  KeyError: u'RUST_TARGET'
INFO -  *** Fix above errors and then restart with\
INFO -                 "./mach build"
INFO -  client.mk:111: recipe for target 'configure' failed
INFO -  mozmake.EXE: *** [configure] Error 1
ERROR - Return code: 2
WARNING - setting return code to 2
FATAL - 'mach build -v' did not run successfully. Please check log for errors.
FATAL - Running post_fatal callback...
FATAL - Exiting -1

I noticed that on the non-shippable build it says:

INFO -  checking for host system type... x86_64-pc-mingw32
INFO -  checking for target system type... aarch64-windows-mingw32
INFO -  checking whether cross compiling... yes
...
INFO -  checking for rust target triplet... aarch64-pc-windows-msvc
INFO -  checking for rust host triplet... x86_64-pc-windows-msvc

The actual build itself went fine, it's just the shippable build that is getting confused. I think this is because there's no check for COMPILE_ENVIRONMENT guarding the use of cargo_output_directory in BaseRustProgram. I've added that, let's see how this works on try. Maybe I'm lucky and this just wasn't done because no one uses RUST_PROGRAM yet.

It seems to work, patch incoming. I'll also run a full test battery on oak.

See Also: → 1336153
Assignee: nobody → agashlin
Status: NEW → ASSIGNED
Attachment #9132134 - Attachment description: Bug 1621070 - Skip RustProgram init when COMPILE_ENVIRONMENT is missing. r?#build → Bug 1621070 - Skip BaseRustProgram init when COMPILE_ENVIRONMENT is missing. r?#build
Priority: -- → P1
Pushed by agashlin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c1bb9c67bcda
Skip BaseRustProgram init when COMPILE_ENVIRONMENT is missing. r=froydnj
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla76
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: