All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Benjamin Bara <bbara93@gmail.com>
Cc: openembedded-core@lists.openembedded.org,
	Benjamin Bara <benjamin.bara@skidata.com>
Subject: Re: [OE-core] [PATCH] rust-target-config: fix target_features for vfpv3d16
Date: Mon, 7 Aug 2023 12:27:34 +0200	[thread overview]
Message-ID: <20230807102734f5b9517d@mail.local> (raw)
In-Reply-To: <20230802-rust-vfpv3d16-v1-1-9af645a4b407@skidata.com>

Hello,

This causes failures:

https://autobuilder.yoctoproject.org/typhoon/#/builders/151/builds/304/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/147/builds/301/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/148/builds/306/steps/13/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/145/builds/299/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/154/builds/301/steps/13/logs/stdio

2023-08-04 17:28:45,215 - oe-selftest - INFO - ======================================================================
2023-08-04 17:28:45,215 - oe-selftest - INFO - FAIL: rust.RustSelfTestSystemEmulated.test_rust (subunit.RemotedTestCase)
2023-08-04 17:28:45,215 - oe-selftest - INFO - ----------------------------------------------------------------------
2023-08-04 17:28:45,215 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/qemumips-tc/build/meta/lib/oeqa/selftest/cases/rust.py", line 293, in test_rust
    runCmd(cmd)
  File "/home/pokybuild/yocto-worker/qemumips-tc/build/meta/lib/oeqa/utils/commands.py", line 212, in runCmd
    raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output))
AssertionError: Command ' export PATH=/home/pokybuild/yocto-worker/qemumips-tc/build/build-st-3391980/tmp/work/mips32r2-poky-linux/rust/1.70.0-r0/recipe-sysroot-native/usr/bin:$PATH; export TARGET_VENDOR="-poky"; export PATH=/home/pokybuild/yocto-worker/qemumips-tc/build/build-st-3391980/tmp/work/mips32r2-poky-linux/rust/1.70.0-r0/recipe-sysroot-native/usr/bin/mips-poky-linux:/home/pokybuild/yocto-worker/qemumips-tc/build/build-st-3391980/tmp/hosttools:$PATH; export RUST_TARGET_PATH=/home/pokybuild/yocto-worker/qemumips-tc/build/build-st-3391980/tmp/work/mips32r2-poky-linux/rust/1.70.0-r0/rust-targets; export TEST_DEVICE_ADDR="192.168.7.2:12345"; cd /home/pokybuild/yocto-worker/qemumips-tc/build/build-st-3391980/tmp/work/mips32r2-poky-linux/rust/1.70.0-r0/rustc-1.70.0-src; python3 src/bootstrap/bootstrap.py test  --exclude compiler/rustc  --exclude compiler/rustc_interface/src/tests.rs  --exclude library/panic_abort  --exclude library/panic_unwind  --exclude library/test/src/stats/tests.rs  --exclude src/bootstrap/builder/tests.rs  --exclude src/doc/rustc  --exclude src/doc/rustdoc  --exclude src/doc/unstable-book  --exclude src/librustdoc  --exclude src/rustdoc-json-types  --exclude src/tools/compiletest/src/common.rs  --exclude src/tools/lint-docs  --exclude src/tools/rust-analyzer  --exclude src/tools/rustdoc-themes  --exclude src/tools/tidy  --exclude tests/assembly/asm/aarch64-outline-atomics.rs  --exclude tests/codegen/abi-main-signature-32bit-c-int.rs  --exclude tests/codegen/abi-repr-ext.rs  --exclude tests/codegen/abi-x86-interrupt.rs  --exclude tests/codegen/branch-protection.rs  --exclude tests/codegen/catch-unwind.rs  --exclude tests/codegen/cf-protection.rs  --exclude tests/codegen/enum-bounds-check-derived-idx.rs  --exclude tests/codegen/force-unwind-tables.rs  --exclude tests/codegen/intrinsic-no-unnamed-attr.rs  --exclude tests/codegen/issues/issue-103840.rs  --exclude tests/codegen/issues/issue-47278.rs  --exclude tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs  --exclude tests/codegen/lifetime_start_end.rs  --exclude tests/codegen/local-generics-in-exe-internalized.rs  --exclude tests/codegen/match-unoptimized.rs  --exclude tests/codegen/noalias-rwlockreadguard.rs  --exclude tests/codegen/non-terminate/nonempty-infinite-loop.rs  --exclude tests/codegen/noreturn-uninhabited.rs  --exclude tests/codegen/repr-transparent-aggregates-3.rs  --exclude tests/codegen/sse42-implies-crc32.rs  --exclude tests/codegen/thread-local.rs  --exclude tests/codegen/uninit-consts.rs  --exclude tests/pretty/raw-str-nonexpr.rs  --exclude tests/run-make  --exclude tests/run-make/cdylib-fewer-symbols/foo.rs  --exclude tests/run-make/doctests-keep-binaries/t.rs  --exclude tests/run-make-fulldeps  --exclude tests/run-make/issue-22131/foo.rs  --exclude tests/run-make/issue-36710/Makefile  --exclude tests/run-make/issue-47551  --exclude tests/run-make/pgo-branch-weights  --exclude tests/run-make/pgo-gen  --exclude tests/run-make/pgo-gen-lto  --exclude tests/run-make/pgo-indirect-call-promotion  --exclude tests/run-make/pgo-use  --exclude tests/run-make/pointer-auth-link-with-c/Makefile  --exclude tests/run-make/profile  --exclude tests/run-make/static-pie  --exclude tests/run-make/sysroot-crates-are-unstable  --exclude tests/run-make/target-specs  --exclude tests/rustdoc  --exclude tests/rustdoc/async-move-doctest.rs  --exclude tests/rustdoc/async-trait.rs  --exclude tests/rustdoc/auto-traits.rs  --exclude tests/rustdoc/check-source-code-urls-to-def.rs  --exclude tests/rustdoc/comment-in-doctest.rs  --exclude tests/rustdoc/const-generics/const-generics-docs.rs  --exclude tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs  --exclude tests/rustdoc/cross-crate-hidden-impl-parameter.rs  --exclude tests/rustdoc/cross-crate-links.rs  --exclude tests/rustdoc/cross-crate-primitive-doc.rs  --exclude tests/rustdoc/doctest-manual-crate-name.rs  --exclude tests/rustdoc/edition-doctest.rs  --exclude tests/rustdoc/edition-flag.rs  --exclude tests/rustdoc/elided-lifetime.rs  --exclude tests/rustdoc/external-macro-src.rs  --ex
stdoc-ui/nocapture.rs  --exclude tests/rustdoc-ui/no-run-flag.rs  --exclude tests/rustdoc-ui/run-directory.rs  --exclude tests/rustdoc-ui/test-no_std.rs  --exclude tests/rustdoc-ui/test-type.rs  --exclude tests/rustdoc/unit-return.rs  --exclude tests/ui/abi/stack-probes-lto.rs  --exclude tests/ui/abi/stack-probes.rs  --exclude tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs  --exclude tests/ui/asm/x86_64/sym.rs  --exclude tests/ui/associated-type-bounds/fn-apit.rs  --exclude tests/ui/associated-type-bounds/fn-dyn-apit.rs  --exclude tests/ui/associated-type-bounds/fn-wrap-apit.rs  --exclude tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs  --exclude tests/ui/drop/dynamic-drop.rs  --exclude tests/ui/empty_global_asm.rs  --exclude tests/ui-fulldeps/deriving-encodable-decodable-box.rs  --exclude tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs  --exclude tests/ui-fulldeps/deriving-global.rs  --exclude tests/ui-fulldeps/deriving-hygiene.rs  --exclude tests/ui-fulldeps/dropck_tarena_sound_drop.rs  --exclude tests/ui-fulldeps/empty-struct-braces-derive.rs  --exclude tests/ui-fulldeps/internal-lints/bad_opt_access.rs  --exclude tests/ui-fulldeps/internal-lints/bad_opt_access.stderr  --exclude tests/ui-fulldeps/internal-lints/default_hash_types.rs  --exclude tests/ui-fulldeps/internal-lints/diagnostics.rs  --exclude tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs  --exclude tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs  --exclude tests/ui-fulldeps/internal-lints/query_stability.rs  --exclude tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs  --exclude tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs  --exclude tests/ui-fulldeps/issue-14021.rs  --exclude tests/ui-fulldeps/lint-group-denied-lint-allowed.rs  --exclude tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs  --exclude tests/ui-fulldeps/lint-pass-macros.rs  --exclude tests/ui-fulldeps/regions-mock-tcx.rs  --exclude tests/ui-fulldeps/rustc_encodable_hygiene.rs  --exclude tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs  --exclude tests/ui/functions-closures/fn-help-with-err.rs  --exclude tests/ui/linkage-attr/issue-10755.rs  --exclude tests/ui/macros/restricted-shadowing-legacy.rs  --exclude tests/ui/process/nofile-limit.rs  --exclude tests/ui/process/process-panic-after-fork.rs  --exclude tests/ui/process/process-sigpipe.rs  --exclude tests/ui/simd/target-feature-mixup.rs  --exclude tests/ui/structs-enums/multiple-reprs.rs --doc --no-fail-fast --bless --target mips-poky-linux-gnu > summary.txt 2>&1;' returned non-zero exit status 1:


On 02/08/2023 22:07:54+0200, Benjamin Bara wrote:
> From: Benjamin Bara <benjamin.bara@skidata.com>
> 
> A build with vfpv3d16 (armv7at2hf-vfpv3d16) tune currently warns:
> '+d16' is not a recognized feature for this target (ignoring feature)
> 
> This correlates with the supported target_features for arm[1].
> 
> With the now enabled features, rustc might use vdiv.f64 with register
> d17, which leads to an illegal instruction on the given platform.
> 
> Therefore, adapt the features s.t. they correspond to the
> armv7_unknown_linux_gnueabihf target[2].
> 
> [1] https://github.com/rust-lang/rust/blob/1.70.0/compiler/rustc_codegen_ssa/src/target_features.rs#L32
> [2] https://github.com/rust-lang/rust/blob/1.70.0/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabihf.rs#L15
> 
> Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>
> ---
>  meta/classes-recipe/rust-target-config.bbclass | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/meta/classes-recipe/rust-target-config.bbclass b/meta/classes-recipe/rust-target-config.bbclass
> index 21a56ede3e..7d3965ed2e 100644
> --- a/meta/classes-recipe/rust-target-config.bbclass
> +++ b/meta/classes-recipe/rust-target-config.bbclass
> @@ -19,18 +19,22 @@ def llvm_features_from_tune(d):
>      mach_overrides = d.getVar('MACHINEOVERRIDES')
>      mach_overrides = frozenset(mach_overrides.split(':'))
>  
> +    if target_is_armv7(d):
> +        f.append('+v7')
> +
>      if 'vfpv4' in feat:
>          f.append("+vfp4")
> -    if 'vfpv3' in feat:
> +    if 'vfpv3' in feat or 'vfpv3d16' in feat:
>          f.append("+vfp3")
> -    if 'vfpv3d16' in feat:
> -        f.append("+d16")
> -
>      if 'vfpv2' in feat or 'vfp' in feat:
>          f.append("+vfp2")
> +    if 'vfpv3d16' in feat:
> +        f.append("-d32")
>  
>      if 'neon' in feat:
>          f.append("+neon")
> +    else:
> +        f.append("-neon")
>  
>      if 'mips32' in feat:
>          f.append("+mips32")
> @@ -38,9 +42,6 @@ def llvm_features_from_tune(d):
>      if 'mips32r2' in feat:
>          f.append("+mips32r2")
>  
> -    if target_is_armv7(d):
> -        f.append('+v7')
> -
>      if ('armv6' in mach_overrides) or ('armv6' in feat):
>          f.append("+v6")
>      if 'armv5te' in feat:
> 
> ---
> base-commit: b2594471209fafd45ea907371b5bd26df95ab2ac
> change-id: 20230801-rust-vfpv3d16-a65080a9bcfa
> 
> Best regards,
> -- 
> Benjamin Bara <benjamin.bara@skidata.com>
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#185433): https://lists.openembedded.org/g/openembedded-core/message/185433
> Mute This Topic: https://lists.openembedded.org/mt/100513507/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


  reply	other threads:[~2023-08-07 10:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-02 20:07 [PATCH] rust-target-config: fix target_features for vfpv3d16 Benjamin Bara
2023-08-07 10:27 ` Alexandre Belloni [this message]
2023-08-07 16:50   ` [OE-core] " Benjamin Bara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230807102734f5b9517d@mail.local \
    --to=alexandre.belloni@bootlin.com \
    --cc=bbara93@gmail.com \
    --cc=benjamin.bara@skidata.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.