uClinux "make menuconfig" build error on Ubuntu 18.04 - linux

There is quite old uClinux-dist-20080808 with uClinux-dist-20080808-20090112 and uClinux_on_stm32 patches for STM32F10x MCU, as described here AN3012.
I use Ubuntu 18.04 (inside VirtualBox) to build uClinux and go through AN3012 step-by-step.
So, I run "make menuconfig", enter settings as shown on page 15 (AN3012) and then exit menu. There are a number of messages in terminal and finally I got this:
configuration written to .config
make[ 2]: Leaving directory '/home/maksim/Projects/STM/uClinux-dist/config'
make[ 1]: Leaving directory '/home/maksim/Projects/STM/uClinux-dist'
make[ 1]: Entering directory '/home/maksim/Projects/STM/uClinux-dist'
Makefile:228: *** mixed implicit and normal rules: deprecated syntax
Makefile:245: *** mixed implicit and normal rules: deprecated syntax
KCONFIG_NOTIMESTAMP=1 make ARCH=arm CROSS_COMPILE=arm-uclinuxeabi- -C linux-2.6.x menuconfig
make[ 2]: Entering directory '/home/maksim/Projects/STM/uClinux-dist/linux-2.6.x'
Makefile:434: *** mixed implicit and normal rules: deprecated syntax
Makefile:1563: *** mixed implicit and normal rules: deprecated syntax
make[ 2]: *** No rule to make target 'menuconfig'. Stop.
make[ 2]: Leaving directory '/home/maksim/Projects/STM/uClinux-dist/linux-2.6.x'
Makefile:183: recipe for target 'linux_menuconfig' failed
make[ 1]: *** [linux_menuconfig] Error 2
make[ 1]: Leaving directory '/home/maksim/Projects/STM/uClinux-dist'
Makefile:127: recipe for target 'menuconfig' failed
make: *** [menuconfig] Error 2
Please help to understand what is wrong and fix it. Many thanks for any help!
Notes for those who want to reproduce the issue:
1) you need to fix the uCLinux-dist/kconfig/config/zconf.hash.c (insert the snippet below at line 165)
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
__attribute__ ((__gnu_inline__))
#endif
2) uClinux uClinux-dist-20080808 is available here
3) uClinux-dist-20080808-20090112 patch is available here
4) uClinux_on_stm32 patch is available here here

The solution is to use older Linux version. Ubuntu 12.04.5 is OK.
Do not forget to add CodeSourcery /bin folder to PATH.

Related

How to compile linux kernel subdirectory?

I want to compile linux kernel subdirectory just like this:
make M=drivers/staging/comedi/
Unfortunately when I do this I get this error:
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
Makefile:648: include/config/auto.conf: Nie ma takiego pliku ani katalogu
make: *** [Makefile:719: include/config/auto.conf] Błąd 1
It may be fixed by this command:
make oldconfig
After executing it, I have to press enter for 2 minutes to select the default options everywhere, and then I get this error anyway:
AR drivers/staging/comedi//built-in.a
WARNING: Symbol version dump "Module.symvers" is missing.
Modules may not have dependencies or modversions.
MODPOST drivers/staging/comedi//Module.symvers
/bin/sh: scripts/mod/modpost: Nie ma takiego pliku ani katalogu
make[1]: *** [scripts/Makefile.modpost:111: drivers/staging/comedi//Module.symvers] Błąd 127
make: *** [Makefile:1701: modules] Błąd 2
I have seen many times in the videos people just building a subdirectory with one make M=somedir command. Why doesn't it work for me?

PULP SDK build process

I'm new to this website and it is the first time I've worked with the RISC-V processor. I'm following the tutorial of the PULP SDK build process "https://github.com/pulp-platform/pulp-sdk".
But, I'm blocked at the stage of SDK build when I tape the command "$ make all" and I can't understand what's mean these errors.
Below the errors:
sdk:json-tools:build: make all install
make[1]: Entering directory '/home/pulp/project/pulpissimo/pulp-sdk/json-tools'
#### Building in /home/pulp/project/pulpissimo/pulp-sdk/build/sdk/json-tools
#### Release type is RelWithDebInfo
#### Installing to /home/pulp/project/pulpissimo/pulp-sdk/pkg/sdk/dev/install/ws
( cd /home/pulp/project/pulpissimo/pulp-sdk/build/sdk/json-tools ; make all VERBOSE=0 )
make[2]: Entering directory '/home/pulp/project/pulpissimo/pulp-sdk/build/sdk/json-tools'
make[2]: *** No rule to make target 'all'. Stop.
make[2]: Leaving directory '/home/pulp/project/pulpissimo/pulp-sdk/build/sdk/json-tools'
Makefile:46: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/pulp/project/pulpissimo/pulp-sdk/json-tools'
Reached EOF with exit status 2
FATAL ERROR: the command 'build' has failed
Makefile:6: recipe for target 'all' failed
make: *** [all] Error 255
Thank you in advance
Have you selected the target as advised in the documentation before running make all?
By running source configs/pulpissimo.sh for example.
I selected the target as advised in the documentation before running make all. In fact, it was a Vivado cmake problem that starts automatically when I run the make all command and it's an old version of cmake.
I solved this problem by uncommenting the line source /opt/Xilinx/Vivado/2018.3/settings64.sh. The day I need to launch Vivado I have to run this line on the command line in the terminal.

Error building libgfortran_6.2.bb recipe in morty: backtrace-supported.h: No such file or directory

I am trying to build the libgfortran_6.2.bb recipe in Morty.
I have included in my local.conf:
FORTRAN_forcevariable = ",fortran"
RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath libgfortran"
IMAGE_INSTALL_append = " gfortran gfortran-symlinks libgfortran libgfortran-dev"
But I get the error:
../../../../../../../../work-shared/gcc-linaro-6.3-r2017.02/git/libgfortran/runtime/backtrace.c:37:33: fatal error: backtrace-supported.h: No such file or directory compilation terminated.
Makefile:2419: recipe for target 'backtrace.lo' failed make[1]: *** [backtrace.lo] Error 1
How can this be solved?
Unfortunately the fortran support in OE was broken for quite some time. This patch series brought in the needed fixes, but did not arrive before the rocko release development cycle. The series looks simple enough to be backported for your specific needs if desired, otherwise check if you can just forward your project to rocko.

Cross-Compile Kernel Module - error fixdep : no such file or directory

I am trying to cross-compile a TP-Link module for ARM920T of which the
details are following -
Module Source - $HOME/Desktop/ashish/TL-WN725N_V2_150911/Driver/
Toolchain Path - /usr/local/3.4/arm-linux-uclibc/bin/arm-linux-uclibc-gcc
I have exported path for my toolchain using -
export PATH=$PATH:/usr/local/3.4/arm-linux-uclibc/bin
I am running the following from the top level kernel source directory
($HOME/lhotse/products/p101/sw/branches/release4.X/kernel/linux-2.6.8.1)
of my target system
make ARCH=arm CROSS_COMPILE=arm-linux-uclibc- M=/home/gauravmittal/Desktop/ashish/TL-WN725N_V2_150911/Driver/ modules
The command throwing the following error -
"******************************************"
"NO SKRC,we will use default KSRC"
"******************************************"
CC [M] /home/gauravmittal/Desktop/ashish/TL-WN725N_V2_150911/Driver/core/rtw_cmd.o
mv: cannot stat
`/home/gauravmittal/Desktop/ashish/TL-WN725N_V2_150911/Driver/core/.tmp_rtw_cmd.o':
No such file or directory
make[2]: *** [/home/gauravmittal/Desktop/ashish/TL-WN725N_V2_150911/Driver/core/rtw_cmd.o]
Error 1
make[1]: *** [_module_/home/gauravmittal/Desktop/ashish/TL-WN725N_V2_150911/Driver]
Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-23-generic'
make: *** [modules] Error 2
When I do a just make on the top level driver directory, it successfully
creates a .ko file for me and I am able to install the module on my
workstion (running on kernel 2.6.24-23-generic), but couldn't find
where am I going wrong during cross-compiling the same.
Just that I am not able to understand how to move forward, as
relatively new to Embedded Development, any kind of help would be
appreciated.
EDIT 2 :
Started things from scratch again.
I have downloaded the linux source compatible to by target (linux-2.6.8.1) and have included the module source in linux-2.6.8.1/drivers/net/wireless/tplink
I have also copied the content of Kconfig from module source directory under wireless Kconfig to get it appearing in the make menuconfig menu. I did a make menuconfig and enabled the option for the same.
Now I did
make ARCH=arm CROSS_COMPILE=arm-linux-uclibc- KSRC=/usr/src/linux-headers-2.6.24.23-generic/ M=${PWD}/drivers/net/wireless/tplink/ modules
The output is as under -
CC [M] /home/gauravmittal/Desktop/ashish/linux-2.6.8.1/drivers/net/wireless/tpwifi/core/rtw_cmd.o
fixdep: /home/gauravmittal/Desktop/ashish/linux-2.6.8.1/drivers/net/wireless/tpwifi/core/.rtw_cmd.o.d:
No such file or directory
make[1]: *** [/home/gauravmittal/Desktop/ashish/linux-2.6.8.1/drivers/net/wireless/tpwifi/core/rtw_cmd.o]
Error 2
make: *** [_module_/home/gauravmittal/Desktop/ashish/linux-2.6.8.1/drivers/net/wireless/tpwifi]
Error 2
I have tried searching a lot on the Internet but could not fix this. I am stuck at this from long..any help would be greatly appreciated.

build octave package from source

I want to install octaviz package in octave software.
From the documentation there is stated:
-You'll need octave 2.1.53 or later and VTK CVS to build octaviz. To compile octaviz, run ccmake . in the root directory of the source tree, then make and finally make install.
I first ran ccmake ., and it completed successfully after I installed some libs that I was missing.
But, the I ran "make" and it exits with the following errors:
>> make
[ 1%] Built target vtkWrapOctave
[ 1%] Building CXX object Common/CMakeFiles/octaviz.dir/octaviz.o
/home/user12345/octave/octaviz/Common/octaviz.cc:31:24: fatal error: octave/oct.h: No such file or directory
#include <octave/oct.h>
^
compilation terminated.
make[2]: *** [Common/CMakeFiles/octaviz.dir/octaviz.o] Error 1
make[1]: *** [Common/CMakeFiles/octaviz.dir/all] Error 2
make: *** [all] Error 2
Any idea what I am missing here?
You are missing the octave/oct.h header. This usually means that you don't have Octave installed. If you do have it installed, maybe you are missing the header files and shared libraries (if you are using Linux, did you install octave's -dev or -devel packaqes?) If you have them installed, you must have ran the configure script incorrectly. Either specify the correct options or set the CXX_FLAGS. If you don't know about compiler flags you probably should not change them and instead figure out how to install the octave libraries correctly.

Resources