Raoul Hidalgo Charman pushed to branch raoul/775-execution-environment-reqs at BuildStream / buildstream
Commits:
-
f4d76996
by Raoul Hidalgo Charman at 2018-12-05T14:58:49Z
-
81163a79
by Raoul Hidalgo Charman at 2018-12-05T14:58:53Z
-
23c27580
by Raoul Hidalgo Charman at 2018-12-05T14:58:53Z
2 changed files:
Changes:
... | ... | @@ -294,8 +294,10 @@ can be viewed in detail in the :ref:`builtin public data <public_builtin>` secti |
294 | 294 |
Sandbox
|
295 | 295 |
~~~~~~~
|
296 | 296 |
Configuration for the build sandbox (other than :ref:`environment variables <format_environment>`)
|
297 |
-can be placed in the ``sandbox`` configuration. At present, only the
|
|
298 |
-UID and GID used by the user in the group can be specified.
|
|
297 |
+can be placed in the ``sandbox`` configuration. The UID and GID used by the user
|
|
298 |
+in the group can be specified, as well as the desired OS and machine
|
|
299 |
+architecture. Possible machine architecture follow the same list as specified in
|
|
300 |
+the :ref:`architecture option <project_options_arch>`.
|
|
299 | 301 |
|
300 | 302 |
.. code:: yaml
|
301 | 303 |
|
... | ... | @@ -311,6 +313,24 @@ you can supply a different uid or gid for the sandbox. Only |
311 | 313 |
bwrap-style sandboxes support custom user IDs at the moment, and hence
|
312 | 314 |
this will only work on Linux host platforms.
|
313 | 315 |
|
316 |
+.. code:: yaml
|
|
317 |
+ |
|
318 |
+ # Specify build OS and architecture
|
|
319 |
+ sandbox:
|
|
320 |
+ build-os: AIX
|
|
321 |
+ build-arch: power-isa-be
|
|
322 |
+ |
|
323 |
+When building locally, if these don't match the host machine then generally the
|
|
324 |
+build will fail. The exception is when the OS is Linux and the architecture
|
|
325 |
+specifies an ``x86-32`` build on an ``x86-64`` machine, or ``aarch32`` build on
|
|
326 |
+a ``aarch64`` machine, in which case the ``linux32`` command is prepended to the
|
|
327 |
+bubblewrap command.
|
|
328 |
+ |
|
329 |
+When building remotely, the OS and architecture are added to the ``Platform``
|
|
330 |
+field in the ``Command`` uploaded. Whether this actually results in a building
|
|
331 |
+the element for the desired OS and architecture is dependent on the server
|
|
332 |
+having implemented these options the same as buildstream.
|
|
333 |
+ |
|
314 | 334 |
.. note::
|
315 | 335 |
|
316 | 336 |
The ``sandbox`` configuration is available since :ref:`format version 6 <project_format_version>`
|
... | ... | @@ -552,9 +552,22 @@ exported as a comma separated list of selected value strings. |
552 | 552 |
|
553 | 553 |
Architecture
|
554 | 554 |
~~~~~~~~~~~~
|
555 |
-The ``arch`` option type is special enumeration option which
|
|
556 |
-defaults to the result of `uname -m`, and does not support
|
|
557 |
-assigning any default in the project configuration.
|
|
555 |
+The ``arch`` option type is a special enumeration option which defaults via
|
|
556 |
+`uname -m` results to the following list.
|
|
557 |
+ |
|
558 |
+* aarch32
|
|
559 |
+* aarch64
|
|
560 |
+* aarch64-be
|
|
561 |
+* power-isa-be
|
|
562 |
+* power-isa-le
|
|
563 |
+* sparc-v9
|
|
564 |
+* x86-32
|
|
565 |
+* x86-64
|
|
566 |
+ |
|
567 |
+The reason for this, opposed to using just `uname -m`, is that we want an
|
|
568 |
+OS-independent list, as well as several results mapping to the same architecture
|
|
569 |
+(e.g. i386, i486 etc. are all x86-32). It does not support assigning any default
|
|
570 |
+in the project configuration.
|
|
558 | 571 |
|
559 | 572 |
.. code:: yaml
|
560 | 573 |
|
... | ... | @@ -563,16 +576,40 @@ assigning any default in the project configuration. |
563 | 576 |
type: arch
|
564 | 577 |
description: The machine architecture
|
565 | 578 |
values:
|
566 |
- - arm
|
|
579 |
+ - aarch32
|
|
567 | 580 |
- aarch64
|
568 |
- - i386
|
|
569 |
- - x86_64
|
|
581 |
+ - x86-32
|
|
582 |
+ - x86-64
|
|
570 | 583 |
|
571 | 584 |
|
572 | 585 |
Architecture options can be tested with the same expressions
|
573 | 586 |
as other Enumeration options.
|
574 | 587 |
|
575 | 588 |
|
589 |
+.. _project_options_os:
|
|
590 |
+ |
|
591 |
+OS
|
|
592 |
+~~
|
|
593 |
+ |
|
594 |
+The ``os`` option type is a special enumeration option, which defaults to the
|
|
595 |
+results of `uname -s`. It does not support assigning any default in the project
|
|
596 |
+configuration.
|
|
597 |
+ |
|
598 |
+.. code:: yaml
|
|
599 |
+ |
|
600 |
+ options:
|
|
601 |
+ machine_os:
|
|
602 |
+ type: os
|
|
603 |
+ description: The machine OS
|
|
604 |
+ values:
|
|
605 |
+ - Linux
|
|
606 |
+ - SunOS
|
|
607 |
+ - Darwin
|
|
608 |
+ - FreeBSD
|
|
609 |
+ |
|
610 |
+Os options can be tested with the same expressions as other Enumeration options.
|
|
611 |
+ |
|
612 |
+ |
|
576 | 613 |
.. _project_options_element_mask:
|
577 | 614 |
|
578 | 615 |
Element mask
|