Search code examples
androidlinuxopen-sourceglibctermux

Want to build & install Glibc in Android (bionic)


But i am getting error..

My configure option was

../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

I am trying to compile glibc for Android (bionic) base Termux ..

Compiling with gcc but depending on bionic

aarch64-linux-android

My host processor aarch64 My target processor aarch64 My host platform Android 12 (termux) My target platform Android 12 (termux)

I want to build & install in termux.. And termux not depending on aarch64-linux-gnu.. Termux depends on aarch64-linux-android

mey be it is not possible.. but i am trying to do it for experimental purpose..

I have all dependency package installed like gcc, clang, python etc..

Somewhere i found glibc for termux.. But it is not depending on aarch64-linux-android

I know developer can do anything.. I don't know any computer language so i want help..

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                                                                                                                        

Somehow i removed a single line 134 from syslog.c solved this issue..

But after last position i received too many undefined reference to error..

https://pastebin.com/U8NcNf97

Don't know how do I solve.. Thank you..


Solution

  • I don't want to offend you, but you are essentially wasting your time trying to compile glibc with bionic compilers. To compile glibc, you need glibc (i.e. glibc-based compiler and dependencies) - this is the most correct approach. It may be possible to compile glibc with bionic, but the setup process will be terribly complicated and time consuming (plus, it will be a completely different library, in effect).

    Also, I want to say that you configured PREFIX incorrectly in configure. It's better to separate glibc and all its bases from the bionic-based termux system, then you risk breaking termux. In addition to properly configuring configure, one should remove running unsupported system calls in glibc source files, this is important as such system calls can cause a Bad system call error when starting any glibc-based program.

    For understanding, I have experience compiling glibc for termux - https://github.com/Maxython/glibc-for-termux.