- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在遵循上一个 rust 新闻通讯:https://rust-embedded.github.io/embedonomicon/custom-target.html的指南,并遇到与软/硬浮点配置有关的问题。
我通过将mipsel-unknown-linux-uclibc.json与arm-unknown-linux-gnueabihf.json合并来创建新目标,以获得以下结果:
{
"arch": "arm",
"data-layout": "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64",
"dynamic-linking": true,
"env": "uclibc",
"executables": true,
"features": "+strict-align,+v6,+vfp2",
"has-elf-tls": true,
"has-rpath": true,
"is-builtin": false,
"linker-flavor": "gcc",
"linker-is-gnu": true,
"linker": "/home/ykoehler/work/tools/arm-5.3-uclibc-1.0.12/usr/bin/arm-buildroot-linux-uclibcgnueabihf-gcc",
"llvm-target": "arm-unknown-linux-uclibceabihf",
"max-atomic-width": 64,
"os": "linux",
"position-independent-executables": true,
"pre-link-args": {
"gcc": [
"-Wl,--as-needed",
"-Wl,-z,noexecstack"
]
},
"relro-level": "full",
"target-c-int-width": "32",
"target-endian": "little",
"target-family": "unix",
"target-mcount": "_mcount",
"target-pointer-width": "32",
"vendor": "unknown"
}
当我使用新的自定义目标编译带有 cargo 的无标准程序时:
cargo build -Z build-std=core --target arm-unknown-linux-uclibceabihf.json
我收到以下错误:
Compiling app v0.1.0 (/home/ykoehler/work/app)
error: linking with `/home/ykoehler/work/tools/arm-5.3-uclibc-1.0.12/usr/bin/arm-buildroot-linux-uclibcgnueabihf-gcc` failed: exit code: 1
|
= note: "/home/ykoehler/work/tools/arm-5.3-uclibc-1.0.12/usr/bin/arm-buildroot-linux-uclibcgnueabihf-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-Wl,--eh-frame-hdr" "-L" "/home/ykoehler/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-uclibceabihf/lib" "/home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps/app-92459304df1651f0.app.2jjler86-cgu.0.rcgu.o" "-o" "/home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps/app-92459304df1651f0" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps" "-L" "/home/ykoehler/work/app/target/release/deps" "-L" "/home/ykoehler/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-uclibceabihf/lib" "-Wl,-Bstatic" "/home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps/librustc_std_workspace_core-375ea25c872246b5.rlib" "/home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps/libcore-34e07d1b528fc142.rlib" "/home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps/libcompiler_builtins-a34a2e58700fb5e5.rlib" "-Wl,-Bdynamic"
= note: /home/ykoehler/work/tools/arm-5.3-uclibc-1.0.12/usr/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabihf/5.3.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: error: /home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps/app-92459304df1651f0 uses VFP register arguments, /home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps/app-92459304df1651f0.app.2jjler86-cgu.0.rcgu.o does not
/home/ykoehler/work/tools/arm-5.3-uclibc-1.0.12/usr/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabihf/5.3.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: failed to merge target specific data of file /home/ykoehler/work/app/target/arm-unknown-linux-uclibceabihf/release/deps/app-92459304df1651f0.app.2jjler86-cgu.0.rcgu.o
/home/ykoehler/work/tools/arm-5.3-uclibc-1.0.12/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/Scrt1.o: In function `_start':
/var/tmp/tool-chains/buildroot-2016.02-5.3-arm/src/buildroot-2016.02/output/build/uclibc-1.0.12/libc/sysdeps/linux/arm/crt1.S:217: undefined reference to `__uClibc_main'
/var/tmp/tool-chains/buildroot-2016.02-5.3-arm/src/buildroot-2016.02/output/build/uclibc-1.0.12/libc/sysdeps/linux/arm/crt1.S:235: undefined reference to `abort'
/var/tmp/tool-chains/buildroot-2016.02-5.3-arm/src/buildroot-2016.02/output/build/uclibc-1.0.12/libc/sysdeps/linux/arm/crt1.S:235: undefined reference to `main'
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: could not compile `app`.
To learn more, run the command again with --verbose.
此错误表明,从网上阅读有关错误消息的信息时,其他部分使用硬浮点数时,某些代码是使用软浮点数编译的。但是,错误指定的两个文件似乎都是由rust生成的,我不清楚为什么rust会根据我在自定义目标定义文件中提供的信息生成任何软 float 代码。
最佳答案
我相信您只需要使用arm-unknown-linux-gnueabihf
作为llvm-target
即可。 VFP错误与可用的浮点指令集有关(即eabihf中的hf代表硬浮点)。我正在努力使armv7-unknown-linux-uclibceabihf
目标在rust中工作。在使armv7-unknown-linux-uclibceabihf
目标在 rust 中工作时,我收到了相同的VFP错误,事实证明,我只需要对armv7-unknown-linux-gnueabihf
使用llvm-target
即可。
另外,这是我的armv7-unknown-linux-uclibceabihf
的规范文件以供比较:
{
"abi-blacklist": [
"stdcall",
"fastcall",
"vectorcall",
"thiscall",
"win64",
"sysv64"
],
"arch": "arm",
"data-layout": "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64",
"dynamic-linking": true,
"env": "uclibc",
"executables": true,
"features": "+v7,+vfp3,-d32,+thumb2,-neon",
"has-elf-tls": true,
"has-rpath": true,
"linker-flavor": "gcc",
"linker-is-gnu": true,
"llvm-target": "armv7-unknown-linux-gnueabihf",
"max-atomic-width": 64,
"os": "linux",
"position-independent-executables": true,
"pre-link-args": {
"gcc": [
"-Wl,--as-needed",
"-Wl,-z,noexecstack"
]
},
"relro-level": "full",
"target-c-int-width": "32",
"target-endian": "little",
"target-family": "unix",
"target-mcount": "\u0001__gnu_mcount_nc",
"target-pointer-width": "32",
"vendor": "unknown"
}
干杯
关于rust - 为什么在将自定义目标添加到rust(arm-unknown-linux-uclibceabihf)时得到VFP注册参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62936931/
语言:C#,系统:Windows7,Excel 2007 我想从一些数据创建一个 .DBF,我想从 Excel 2007 打开它。它可以是 dBase 或 foxpro。我目前在 FoxPro9 中做
我正在尝试将 dbf 数据库与 php 连接起来。我尝试了几种不同的方法,但没有成功。 PHP:5.3.8文件:C:\xampp\htdocs\work\vcabdoc.dbf 第一种方式: 创建数据
“为 Thumb 编译”和 VFP 代码如何相互关联? 在 iPhone 2G/3G 上,我知道 Thumb 指令集不包括浮点计算(在 3GS 上,Thumb2 显然有..)。那么,如果针对 thum
如何用select命令显示备注字段的内容?如果我有一个包含以下字段的表(供应商):id_vendor C(10),地址 M 并且我想显示所有带有“select * from vendors”的内容,我
我需要根据邮寄信息在 VFP 中创建唯一的记录 ID:zip5、地址、姓氏、名字。创建后,关系表将使用唯一 ID 加载到 SQL Server 7 中。任何建议? 最佳答案 您可以使用 GUID:GU
我需要以某种方式提取父/子表之间的所有关系。有没有办法使用 DBC 对象来做到这一点? 最佳答案 抱歉大家,我多年来都忘记了,但经过一番思考后我想到了...... OPEN DATABASE ABC
在本文档中: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301g/DDI0301G_arm1176jzfs_r0p7_trm.pdf 第
过去几天我一直遇到这个问题,我无法理解这里到底发生了什么,或者问题是什么。 我有一个带有这些标志的 makefile: CC = arm-linux-gnueabihf-gcc-4.6 FLAGS =
我正在尝试为 DBF 文件(Visual Fox Pro)创建 SQL 参数化更新命令 我不知道为什么,但我在“DbCommand.ExecuteNonQuery();”上有一个“语法错误”。 异常错
我想使用 Google NDKv8b 附带的工具链 (gcc-4.6) 将 double 寄存器 (d8) 的值加载到 ARM 平台上的 C 变量中。我的 ARM 机器是三星 Galaxy S2(它有
我想知道什么是 VFP9 相当于 mySQL 'NOT IN'。 给你确切的目的。我有两个表,我想显示表 1 中没有出现在表 2 中的所有数字。 TABLE1 1 2 3 4 5 6 7
目前我正在尝试为 ARM 架构构建 Buddhabrot但是当我收到以下错误时,我陷入了困境。我希望有人能提供帮助。 libOpenCL.so uses VFP register arguments,
我想了解更多 Android 手机上使用的 CPU。原因是我们正在构建 C 库,它具有我们可以设置的某些 CPU/数学处理器架构标志。 到目前为止,我们发现所有 Android 设备的 CPU 都是
我知道 64 位机器上的 VFP OLEDB 提供程序存在问题。 ...但是您在实际运行 VFP 应用程序时会遇到什么问题 - 在 64 位机器上?有没有人有这方面的经验? 我的第一个想法是它只会作为
在ARM Cortex-A8处理器中,我明白什么是NEON,它是一个SIMD协处理器。 但是VFP(矢量浮点)单元也是一个协处理器,它可以用作SIMD处理器吗?如果是这样,哪个更好? 我读了一些链接,
我们有一个创建许多 Visual Foxpro (DBF) 表的应用程序。这些表中的每一个都有不同的架构,但它们都包含一个已知的日期字段。 我被要求创建另一个应用程序(在 C# 中),它将上周的数据从
我尝试使用以下代码将分隔文本附加到 Fox 表: OleDbConnection oledbConn = new OleDbConnection(String.Format(@"Provider=VF
我正在尝试将多个 Visual Fox Pro 9.0 应用程序从 Win 2003 迁移到 Win 2008 R2 64 位服务器。 登录的用户与计划运行任务的用户相同。 当应用程序手动运行时(浏览
因此通过查询 sysctlbyname("hw.cpusubtype", ...) 可以很容易地弄清楚 iOS 设备运行的是哪种 CPU,但似乎没有明显的方法可以弄清楚找出 CPU 实际具有的功能(想
使用 VFP 9,我使用 group(DBF 中的一列)索引了一个 DBF 文件 INDEX ON group TO group1 并且记录的顺序是正确的。但是,每当我关闭并重新打开 DBF 时,索
我是一名优秀的程序员,十分优秀!