TAR cross-compile error (arm-linux-gnueabi)
Hello, I'm having trouble cross-compiling TAR-1.30. I would like to get a static tar executable so that I can Copy it to my phone and use it to extract tar archives from the terminal (busybox tar does not work very well sometimes).
Here is the configure command that I used: Code:
./configure --prefix=/home/michele/tmp/arm-bin/install/ --host=arm-linux-gnueabi CFLAGS="-Os -g0" CXXFLAGS="-Os -g0" LDFLAGS="-s -static" Code:
CC areadlink-with-size.o as native compiler. These are the info on my cross-compiler (built manually): Code:
COLLECT_GCC=arm-linux-gnueabi-gcc Code:
../configure --target=arm-linux-gnueabi --disable-nls --disable-multilib CFLAGS="-Os -g0" CXXFLAGS="-Os -g0" LDFLAGS="-s" Can someone help me with this? The toolchain can cross-compile some complex packages such as: - binutils - gmp - mpfr - mpc - gcc - glibc (disable werror) - busybox - xz but it fails with this one. What can I do? |
What phone/OS? On Android, there are apps that can handel tar files, and I am sure similar apps exist for iOS.
Sorry, perhaps not what you are asking, but trying to understand why is this really needed? |
Quote:
Even if an application was not what I was looking for Thanks for your help. :) Does someone else know how to fix the problem with the build process of tar? It's very important to me to fix this issue |
Can someone help? Please, if you need some extra details just tell me, I'll try to give them to you.
EDIT: Ok, I've figured out the problem. My Cross compiler is a normal cross-compiler without a full limits.h. When you build TAR the compiler looks inside its internal fix-include directory that has a limits.h file. Unfortunately that file is not complete yet and the compilation fails. areadlink-with-size.c calls limits.h which is incomplete. the incomplete file is inside $GCC_INST_DIR/lib/gcc/arm-linux-gnueabi/$GCC_VERSION/include-fixed/ here is the code that we are interested in: Code:
/* Maximum length of a multibyte character. */ which calls $GCC_INST_DIR/arm-linux-gnueabi/include/bits/stdlib.h and it says: Code:
__NTH (wctomb (char *__s, wchar_t __wchar)) MB_LEN_MAX (inside the incomplete limits.h) is 1 16 is different than 1 and so it fails with the folowing error: # error "Assumed value of MB_LEN_MAX wrong" To fix the problem you have to go inside GCC's source directory and type the command: Code:
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ Code:
#include_next <limits.h> /* recurse down to the real one */ |
All times are GMT -5. The time now is 11:59 PM. |