We have a project that requires a setup with an environment to develop embedded system as host on FC17 AMD64 and target ARM/DSP Omap l138.
So, the kernel headers have to be generated in order to bind the development environment communication between host and target. Thus, it was installed:
# yum install kernel-headers-$(uname -r)
# yum install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel
Steps to build:
# cd /usr/src/kernels/3.4.4-5.fc17.x86_64/kernel
# ls
debug events gcov irq Kconfig.freezer Kconfig.hz Kconfig.locks Kconfig.preempt Makefile power sched time trace
# make ARCH=ARM headers_check
make: *** No rule to make target `headers_check'. Stop.
# make ARCH=ARM INSTALL_HDR_PATH=/home/user/dev/omap/ headers_install;
make: *** No rule to make target `headers_check'. Stop.
Any suggestion what might be the problem?
All comments and suggestions are highly appreciated.
Examine your Makefile, it seems that headers_check is not defined in it.
Maybe "make help" will be useful to you.
Just my 5 cents.
Related
I made a softwareupdate on a simulationsoftware which needs a newer version of glibc. Therefore I wanted to install the glibc version 2.14 on a new prefix.
According to How to upgrade glibc from version 2.12 to 2.14 on CentOS?
i tried to install it on a sles11sp3
mkdir /var/mpi/Libraries/glibc_install; cd /var/mpi/Libraries/glibc_install
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/var/mpi/Libraries/glibc-2.14
make -j4
During the make I get the following error:
readlink.c:26: error: conflicting types for ‘__readlink’
../include/unistd.h:120: error: previous declaration of ‘__readlink’ was here
make[2]: *** [/var/mpi/Libraries/glibc_install/glibc-2.14/build/io/readlink.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/var/mpi/Libraries/glibc_install/glibc-2.14/io'
make[1]: *** [io/subdir_lib] Error 2
make[1]: Leaving directory `/var/mpi/Libraries/glibc_install/glibc-2.14'
make: *** [all] Error 2
Do you have a clue how to solve this problem?
io/readlink.c is just a stub implementation which always fails at run time. It is not supposed to be compiled at all when building for GNU/Linux. Instead, the implementation should come from the generic system call wrapper in sysdeps/unix/syscalls.list:
readlink - readlink i:spi __readlink readlink
However, recent Linux architectures (those called generic in Linux parlance, currently aarch64, csky, nios2, and riscv) no longer have a readlink system call, and the function as to be implemented using readlinkat. This implementation is in the file sysdeps/unix/sysv/linux/generic/readlink.c.
It's not clear what you are doing so that the wrong file is compiled. Are you sure you have installed compatible kernel headers?
The particular upstream commit (which went into glibc 2.15):
commit 95b7042bac3e2cfc6fef7aec6acc7d46dd50eba5
Author: Roland McGrath <roland#hack.frob.com>
Date: Fri Nov 11 10:02:42 2011 -0800
Fix __readlink declaration.
But given the fundamental nature of the build problem you encountered, I doubt that applying this patch, while addressing the immediate build failure, will give you a functional glibc build in the end.
GLIBC : 2.14 → 2011-06-01. The "bugfix version" 2.14.1 → 2011-10-07 https://ftp.gnu.org/gnu/glibc/
Note : make -j4 is not recommended for glibc, as far as I remember.
My tests (old SLE11 SP2) : The SLE 11 SP2 gcc 4.3.2 is too old for glibc-2.14.1, may be the SP3 minor gcc update (to 4.3.4) is also too old?
Using the "extra EL 6 gcc-4.9.3" .... for glibc-2.14.1 :
cd build-glibc214/ # the recommended build directory outside the glibc source
export CC=gcc49 CXX=g++49 && ../glibc-2.14.1/configure --prefix=/opt/glibc214
make # no errors
# make install # OK
Extra gcc´s : how to install gcc 4.9.2 on RHEL 7.4
Good day,
I really spent almost all after-noon looking to install lua5.3 on Centos 7.
I mostly found information to install Lua5.1 but we really need a version 5.2 or 5.3.
If I found information for 5.3, it was not for Centos.
Until now, the best I could do, is to download the source version from lua web site
enter link description here
But I still can not install it.
Here are my steps, may be you can help to continue
curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz
tar zxf lua-5.3.4.tar.gz
cd lua-5.3.4
make linux test
The problem, from that point how can I install it.
I tried
make
and
make linux
make linux make me a fatal error
[root#pc6 lua-5.3.4]# make linux cd src && make linux make1:
Entering directory /root/install-package/lua-5.3.4/src' make all
SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline" make[2]:
Entering directory/root/install-package/lua-5.3.4/src' gcc
-std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lua.o lua.c lua.c:82:31: fatal error: readline/readline.h: No such
file or directory #include
^ compilation terminated. make[2]: * [lua.o] Error 1 make[2]: Leaving directory
/root/install-package/lua-5.3.4/src' make[1]: *** [linux] Error 2
make[1]: Leaving directory/root/install-package/lua-5.3.4/src' make:
* [linux] Error 2
So what do you suggest me to do. Centos 7 has been istalled today. May do I miss to install a dependent a library?
Thank for your help
The download page which you mention says:
There are detailed instructions in the package
This link points to the README, which says:
If you're running Linux and get compilation errors, make sure you have installed the readline development package (which is probably named libreadline-dev or readline-devel).
If you don't want to install readline, try make posix or make posix MYCFLAGS=-DLUA_USE_DLOPEN MYLIBS=-ldl instead. You may need to do make clean first.
If you are feeling lazy, the IUS repo has prebuilt packages of lua5.3 for el7 under the name lua53u (u presumably stands for "update") (and lua53u-devel, etc, depending on what you need).
Simply enable the repo and then install:
# enable repos
yum install -y epel-release https://repo.ius.io/ius-release-el7.rpm
# install
yum install -y lua53u
I'm trying to cross-compile Mali DX910-SW-99002-r7p0-00rel0 Driver in my Linux x86 (Ubuntu) machine for an ARM64 machine linux kernel version 4.4.83.
I followed the instructions given in the readme file:
DX910-SW-99002-r7p0-00rel0/driver/src/devicedrv/ump/readme.txt
select Mali as a module (M) within the menuconfig:
CONFIG_MALI400=m
CONFIG_MALI450=y
KDIR=~/linux-4.4.83 USING_UMP=1 BUILD=debug make
cannot find bingcc
KDIR=./linux-4.4.83 CONFIG=default BUILD=debug make
cannot find bingcc
My question is:
The two compile commands (items 2. and 3. above) both yield the same failure result as the following:
KDIR=~/linux-4.4.83 USING_UMP=1 BUILD=debug make
make: gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux- gnu/bingcc: Command not found
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CC kernel/bounds.s
/bin/sh: 1: gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/bingcc: not found
Kbuild:44: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 127
Makefile:1007: recipe for target 'prepare0' failed
What should be done to fix these?
If you want to use GNU C compiler from gcc-aarch64-linux-gnu Ubuntu package, then you'd better make sure that the package is indeed installed and then specify one more option to make, in example:
KDIR=~/linux-4.4.83 USING_UMP=1 BUILD=debug ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make.
However, I see linaro mentioned in your output. So, alternatively, you may consider following this guide on toolchain setup and usage.
I am trying to make Spooles 2.2-9 on Mint Maya linux distro and I get the following error.
aaron#atown ~/Downloads/spooles $ sudo make global
cd A2/src ; make -f makeGlobalLib
make[1]: Entering directory `/home/aaron/Downloads/spooles/A2/src'
makeGlobalLib:19: warning: overriding commands for target `.c.o'
../../Make.inc:90: warning: ignoring old commands for target `.c.o'
/usr/lang-4.0/bin/cc -c -O basics.c -o A2_basics.o
make[1]: /usr/lang-4.0/bin/cc: Command not found
make[1]: *** [basics.o] Error 127
make[1]: Leaving directory `/home/aaron/Downloads/spooles/A2/src'
make: *** [global] Error 2
I am new to linux so any help would be most useful.Thanks
Have you tried installing it from your software package manager? I know that package is provided by Ubuntu and Debian, and Mint is a derivative so it should have it available for installation. No need to build it yourself.
If you do want to compile it yourself, first note you should never build software as root (don't prefix the make command with sudo). It's possible that if there's an install step you'll need to run that as root, but generally not the build.
Second it looks like by default this package is configured to build on OSX (I think /usr/lang-4.0/bin/cc is an OSX path... maybe?). In any event, that's not where the compiler lives on Linux: try this to override the compiler:
make CC=gcc global
It's also possible that your system does not have a compiler installed. If you get an error from the above then use your software package manager to install the gcc package.
I am trying to run 'make' on a module in User Mode Linux to install a simple makefile. Here is my make file:
obj-m := hello.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
When I run this in User Mode Linux I get the following error:
make[1]: Entering directory `/lib/modules/2.6.28/build'
make[1]: *** No rule to make target `modules'. Stop.
make[1]: Leaving directory `/lib/modules/2.6.28/build'
make: *** [default] Error 2
The problem is that no files are present under /lib/modules/. There's no directory for 2.6.28 or build. From what I've read, these should be symlinks to /usr/src, but under /usr/src, I don't see any files under that either.
Sources and headers of your UML kernel must be used to compile module for it.
You can compile it either inside UML or just in main system, but you must to use UML's kernel's headers and build scripts
You need to build and install the version of the kernel you are compiling for. Get the source from kernel.org, configure (I think make menuconfig picks the config up from the running kernel), build, and install it. You can do the build in your home directory under regular user, then of course you would need root to install it.
Edit:
Just in case you missed this - here's User Mode Linux HOWTO. It contains specific items for building and installing kernel and modules. Hope this helps.