Some doubts on kernel building - linux-kernel

I was trying to build a kernel for my android device. I would have used my Linux system for building a kernel but unfortunately it had its hdd failed. So I am now using Windows 10 WSL for building the kernel. I am really new in building kernel and I have a few doubts:
When I tried to use arm-linux-gnueabihf 4.7 for making clean I got this error:
ccache execv 'my toolchain path' execv format error
I tried it with few other toolchains but same error came. Then I used arm-eabi 4.8 which worked correctly. This solved the problem but I would like to know what the error was and what caused it and is there a fix?
How should I know what toolchain I should use for building kernels like some people tell me to use a toolchain some people tell me to use someother toolchain.
When I tried to build the kernel with arm-eabi 4.8 I got an error
/home/inkiluz/kernel/security/tima_uevent/tima_uevent.c:217:1: fatal error: opening dependency file security/tima_uevent/.tima_uevent.o.d: No such file or directory
module_exit(tima_uevent_exit);
^
compilation terminated.
Is this a toolchain error or did i do something wrong? How can I rectify this?
Here is the the error log: https://del.dog/diwijegetu.
Please do help me out...

Related

Can't compile linux kernel 5.10 with BTF type info enabled

I am want to compile linux 5.10.162 with CONFIG_DEBUG_INFO_BTF=y, the end goal being to enable bpf CO-RE. However, the build is failing with:
+ ./tools/bpf/resolve_btfids/resolve_btfids vmlinux
FAILED unresolved symbol udp_sock
I first thought it was something similar to this issue, but after moving to a newer gcc, the issue persists.
Relevant packages:
gcc 11.1.0 (also tested with 10.2)
dwarves 1.24 (also tested with 1.22)
Bear in mind don't have much experience compiling linux. Let me know if the config will be of use.

GCC giving an error for a file that has no errors and saying it's the wrong file format/extension

I am compiling an app for 32bit machines since the creator of the app made it 64 bit. I made sure all the libraries and DLLs are 32bit, which they are. I have an issue when I compile, however. When I compile using sh make.sh, I get an error when it gets to the GCC building part. make.sh just makes sure that all the needed libraries are there for this project. There's no errors in the Makefile, make.sh, or any of the C++ files. I've been wasting hours trying to figure this out.
Here's a screenshot if it helps:
Needed to enable -D_WIN32 os flag in make.sh.

How do I resolve the following libtool 64-bit compilation error

I'm trying to compile the NTL library (host is 64 bit, but target platform is 32), but I'm having some trouble with libtool. The command, alongside with the output can be found in this pastebin. I know I'm doing something wrong with the rpath structure, but I'm not all too familiar with it to know exactly what. Any help?
EDIT: Configure is run as:
./configure CC=/tmp/ntl-build/bin/arm-linux-androideabi-gcc CXX=/tmp/ntl-build/bin/arm-linux-androideabi-g++ SHARED=on AR=/tmp/ntl-build/bin/arm-linux-androideabi-ar RANLIB=/tmp/ntl-build/bin/arm-linux-androideabi-ranlib NTL_GMP_LIP=on GMP_PREFIX=/prod/android-ndk-r8/workspace/verifiable/gmp-precompiled/armeabi-v7a DEF_PREFIX=/tmp/ntl-build/install_dir
How's FFT.o compiled? The huge cascade of error messages that ends with:
.libs/FFT.o: could not read symbols: File in wrong format
indicates that something doesn't match up. From the paste, it seems as if you have cross compiled with the Android NDK tools, but are linking with the native (x86_64) gcc (which in turn calls the native ld).

Error while compiling module for linux kernel

I am using Fedora 16.The kernel is 3.3.2.-6.fc16.i686.PAE.I have installed the correct kernel devel.But when I am trying to compile any module against it I am getting an error mentioned below
No rule to make target
/usr/src/kernels/3.3.2-6.fc16.i686.PAE/arch/x86/syscalls/syscall_32.tbl',
needed byarch/x86/syscalls/../include/generated/asm/unistd_32.h'.
Stop.
Any idea what is wrong and what needs to be done?
If you have the kernel sources, just compile it again and try compiling your module.

CROSS-COMPILE FOR MIPS PROCESSOR

i have developed an application for android platform.It is for ARM processor.It's working fine.I want to try the same application on Android running on MIPS(32 bit) processor.I tried to cross-compile the application but could not generate the shared library.I am using MIPS ndk and android source code customized for MIPS processor.While generating static library , it is not showing any errors but while generating the shared library,i am getting following errors:
/home/user/android-ndk-r7m/toolchains/mips-linux-android-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/mips-linux-android/4.4.3/../../../../mips-linux-android/bin/ld: /home/user/workspace/testing/ccl_obj/libccl.a(teccl_call_initiate.o): relocation R_MIPS_HI16 against `__gnu_local_gp' can not be used when making a shared object; recompile with -fPIC
/home/user/workspace/testing/ccl_obj/libccl.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: * [obj/local/mips-r2/libhello-jni.so] Error 1
Please suggest any solution.
Thanks
The error seems to suggest what to do.
When compiling your source code, add the -fPIC compiler flag.
Just in case if somebody face this problem.run
make clean
make
I got similar problem today and running clean resolved my problem.

Resources