问题标签 [bionic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2393 浏览

android - 知道嵌入式系统是使用 glibc 还是仿生?

例如 android 使用的是仿生而不是 glibc,但如何确定它是真的使用仿生http://en.wikipedia.org/wiki/Bionic_(software),而不是 glibc?

我可以在 /proc 文件系统中找到此信息,还是有任何命令可以告诉当前系统上使用了仿生?

顺便说一句,嵌入式系统上是否有可能拥有多个 c lib?

0 投票
1 回答
3174 浏览

c - glibC 和 bioniC 的区别

嗨,我在优化方面遇到了一些问题。
我尝试使用内置函数编译 gcc 测试之一:

我尝试用接下来的 2 种方式编译它:
1 种方式:
gcc -mglibc -O -ffast-math -std=c99 -fno-ident -S -o builtins-58.s
并且在输出汇编文件中全部call pow更改为call cbrt- 它的预期

2方式:
gcc -mbionic -O -ffast-math -std=c99 -fno-ident -S -o builtins-58.s
使用-mbionic而不是-mglibc我得到输出call pow

有谁知道函数是如何工作optmimizationbuiltinBionic

0 投票
2 回答
514 浏览

c++ - atexit() 函数仿生与 glibc

我发现了一个有趣的时刻:atexit()函数对bionic和的工作方式不同glibc。这是一个例子:

结果bionic

结果glibc

为什么结果不同?

0 投票
1 回答
563 浏览

android - 在 Android 上使用 time(NULL)

time(NULL)在 Android上使用是否有任何已知问题?

我尝试运行以下代码:

然后使用以下格式记录结果:

这是我得到的输出:

还有其他问题,例如在不同的循环迭代中获得相同的时间值。

我在运行 Android 4.0.3 (API 15) 的虚拟设备和物理设备上都遇到了这些问题,两者都配置了正确的时间。上面的输出来自物理设备。

我被引导相信 Bionic 中的这个特定的 POSIX 函数存在问题,但我在网上或 Bionic 文档中都找不到任何参考。

0 投票
0 回答
223 浏览

android - 如何使用 Bionic C 库中不支持的标准 C 库来构建 Android-NDK?

我的原生资源使用了复杂的操作(定义)。这些操作在标准 C99 数学库中实现,但不在 Android-NDK 使用的仿生数学库中实现。出于这个原因,我想使用标准数学库而不是仿生数学库来编译我的源代码。

我的可能性是什么?

0 投票
1 回答
211 浏览

android - 构建 Android 仿生所需的最少文件集

我对 Android 的仿生进行了一些更改,以便使用特定的应用程序运行它。我想将这些修改保留在我的源代码管理 (SVN) 中。知道仍然能够使用 Android 的常规 envsetup.sh->lunch->make 工作流程构建仿生所需的最少文件集吗?

0 投票
2 回答
581 浏览

android - 嵌入式Linux上的dalvik segfault

全部。我正在尝试让 dalvikVM 在嵌入式 linux 上运行。我将 xilinx-linux 用于在 qemu 上运行的 zynq-zc702。我遵循了本教程:

http://www.bolatdinc.com/?p=336&cpage=1

我将 ashmem 和 logger 移植到我的 linux 内核,并为 armv7-a 架构编译了 dalvik。但是当我运行 /system/bin/dalvikvm 时,我得到了以下 strace 的段错误:

奇怪的是,即使我评论了 dalvik/dalvikvm/Main.cpp main(...) 函数中的所有行,除了 return 0; 我仍然得到这个段错误。

似乎是某种 libc/bionic 问题,但我仍然不知道如何解决它。

如果我为它创建非常基本的 helloworld 应用程序和 Android.mk,将 helloworld 构建为 android 树的一部分,我会得到相同的段错误。如果我使用 arm-xilinx-linux-gnueabi- 工具链构建 helloworld,它可以正常工作。我相信那是因为它与 glibc 相关,而不是仿生。

我不太擅长拆解东西,所以我附加了 objdump -d 输出来工作 helloworld 和 segfaulting 一个。

在职的:

带段错误:

任何帮助或想法表示赞赏。谢谢

0 投票
1 回答
2348 浏览

android - 重建部分 Android (libc)

我已经从http://source.android.com下载了源代码,并按照说明构建它们。

但现在我不想重建只是Bionic libc
是否有可能,没有完整的构建过程?

0 投票
2 回答
1165 浏览

android - rand() 函数仿生与 glibc

我发现rand()仿生的功能如果不包括在内就不起作用stdlib.h

结果glibc
编译成功

结果bionic
编译失败

bionic源代码中,我们有以下实现:

为什么它适用glibc但不适用于bionic

0 投票
2 回答
888 浏览

android - dlopen() 在 Android 上失败,但在 Linux 上有效

dlopen()我正在尝试使用惰性模式动态加载特定的共享库。共享库中当然有未解析的符号,但惰性模式应该忽略它们。它在 Linux 上确实会忽略它们,并且在运行时使用符号后实际上会发生解析。

但是在Android中,它不起作用,虽然我使用惰性模式,但dlopen()由于未解析的符号而失败。

这是我正在谈论的代码

这是怎么回事 ?