想要在Android中构建和安装Glibc(仿生)



但是我得到错误…

配置选项是

../configure CFLAGS="-march=native -Wp,-D_FORTIFY_SOURCE=2 -O2 -pipe" --prefix=$PREFIX --libdir=$PREFIX/lib --libexecdir=$PREFIX/lib --with-headers=$PREFIX/include --enable-bind-now --enable-cet --enable-kernel=5.10 --enable-stack-protector=strong --disable-profile --disable-crypt --disable-werror --enable-systemtap --target=aarch64-linux-android --host=aarch64-linux-android

我正在尝试编译glibc Android(仿生)基地Termux ..

使用gcc编译但依赖于bionic

aarch64-linux-android

我的主机处理器aarch64我的目标处理器是aarch64我的主机平台Android 12 (termux)我的目标平台Android 12 (termux)

我想建立&安装在termux..和termux不依赖于aarch64-linux-gnu..Termux依赖于aarch64-linux-android

也许这是不可能的……但我只是想做实验。

我已经安装了所有的依赖包,如gcc, clang, python等。

我在某处找到了glibc for termux..但这并不取决于aarch64-linux-android

我知道开发者可以做任何事情…我不懂任何计算机语言,所以我需要帮助。

My error log

In file included from <command-line>:
syslog.c: In function '__vsyslog_internal':
syslog.c:94:30: error: inlining failed in call to 'always_inline' 'syslog': function not inlinable                                                                                                                        

不知何故,我从syslog.c中删除了一行134,解决了这个问题。

但是在最后一个位置之后,我收到了太多未定义的错误引用…

https://pastebin.com/U8NcNf97

不知道该怎么解决…谢谢你. .

我不想冒犯您,但是您实际上是在浪费时间,试图用bionic编译器编译glibc。要编译glibc,你需要glibc(即基于glibc的编译器和依赖项)——这是最正确的方法。也许可以用bionic编译glibc,但是设置过程将非常复杂和耗时(另外,它实际上将是一个完全不同的库)。

另外,我想说你在configure中错误地配置了PREFIX。最好将glibc及其所有碱基从基于仿生学的termux系统中分离出来,否则可能会破坏termux。除了正确配置configure之外,还应该删除正在运行的不支持的系统调用glibc源文件中,这很重要,因为系统调用在启动任何基于glibc的程序时会导致Bad system call错误。

为了理解,我有经验编译glibc为termux - https://github.com/Maxython/glibc-for-termux。

最新更新