I've got a problem creating a yocto (thud) recipe for the rpi_ws281x python module.
The machine itself is a raspberrypi3.
While building the recipe I get the following error:
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: python-rpi-ws281x-1.0-r0 do_compile: Function failed: do_compile (log file is located at /home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/temp/log.do_compile.48175)
ERROR: Logfile of failure stored in: /home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/temp/log.do_compile.48175
Log data follows:
| DEBUG: Executing shell function do_compile
| scons: Reading SConscript files ...
| scons: done reading SConscript files.
| scons: Building targets ...
| Version version.h
| CC main.o
| CC mailbox.o
| CC ws2811.o
| CC pwm.o
| CC pcm.o
| CC dma.o
| CC rpihw.o
| AR libws2811.a
| RANLIB libws2811.a
| LINK test
| scons: done building targets.
| running install
| running bdist_egg
| running egg_info
| creating rpi_ws281x.egg-info
| writing rpi_ws281x.egg-info/PKG-INFO
| writing top-level names to rpi_ws281x.egg-info/top_level.txt
| writing dependency_links to rpi_ws281x.egg-info/dependency_links.txt
| writing manifest file 'rpi_ws281x.egg-info/SOURCES.txt'
| reading manifest file 'rpi_ws281x.egg-info/SOURCES.txt'
| writing manifest file 'rpi_ws281x.egg-info/SOURCES.txt'
| installing library code to build/bdist.linux-x86_64/egg
| running install_lib
| running build_py
| creating build
| creating build/lib.linux-x86_64-2.7
| copying neopixel.py -> build/lib.linux-x86_64-2.7
| running build_ext
| building '_rpi_ws281x' extension
| swigging rpi_ws281x.i to rpi_ws281x_wrap.c
| swig -python -o rpi_ws281x_wrap.c rpi_ws281x.i
| creating build/temp.linux-x86_64-2.7
| arm-ab-linux-gnueabi-gcc -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0=/usr/src/debug/python-rpi-ws281x/1.0-r0 -fdebug-prefix-map=/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot= -fdebug-prefix-map=/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot-native= -fPIC -I/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot/usr/include/python2.7 -c rpi_ws281x_wrap.c -o build/temp.linux-x86_64-2.7/rpi_ws281x_wrap.o
| arm-ab-linux-gnueabi-gcc -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot -shared -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0=/usr/src/debug/python-rpi-ws281x/1.0-r0 -fdebug-prefix-map=/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot= -fdebug-prefix-map=/home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot-native= build/temp.linux-x86_64-2.7/rpi_ws281x_wrap.o -L../. -lws2811 -lrt -o build/lib.linux-x86_64-2.7/_rpi_ws281x.so
| /home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot-native/usr/bin/arm-ab-linux-gnueabi/../../libexec/arm-ab-linux-gnueabi/gcc/arm-ab-linux-gnueabi/8.2.0/ld: .././libws2811.a: error adding symbols: file format not recognized
| collect2: error: ld returned 1 exit status
| error: command 'arm-ab-linux-gnueabi-gcc' failed with exit status 1
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/temp/log.do_compile.48175)
ERROR: Task (/home/user/git/poky-ab/meta-3rdparty/recipes-ws281x/python-rpi-ws281x.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1125 tasks of which 1118 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
Summary: 1 task failed:
/home/user/git/poky-ab/meta-3rdparty/recipes-ws281x/python-rpi-ws281x.bb:do_compile
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
The recipe itself looks like this:
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9dcf340793a1d73c5211edc8238767dc"
SRC_URI = "git://github.com/jgarff/rpi_ws281x.git;protocol=https"
SRC_URI[md5sum] = "b903b8342864ae8422039d4a7479ba4c"
SRCREV = "ba3b5bdad55dc7754567a68c4364b1e772735f47"
#DEPENDS += "python-setuptools-native swig-native python-scons-native"
DEPENDS += "swig-native python-scons"
RDEPENDS_${PN} = "python"
S = "${WORKDIR}/git"
inherit scons setuptools
do_compile_prepend() {
cd ${S}/
scons
cd ${S}/python/
${PYTHON} setup.py install
}
What I'm wondering about is that scons creates some binary code for linux-x86_64.
Is there any possibility that I can convice scons to use the exported Environment of Yocto?
Thanks in advance,
homer836
Now it works.
I fixed the SContruct, created a patch and used the following recipe.
SConstruct:
#
# SConstruct
#
# Copyright (c) 2014 Jeremy Garff <jer # jers.net>
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are permitted
# provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other materials
# provided with the distribution.
# 3. Neither the name of the owner nor the names of its contributors may be used to endorse
# or promote products derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
import os
opts = Variables()
opts.Add(BoolVariable('V',
'Verbose build',
True))
opts.Add('TOOLCHAIN',
'Set toolchain for cross compilation (e.g. arm-linux-gnueabihf)',
'')
platforms = [
[
'userspace', # Target Name
[ 'linux', 'version' ], # Scons tool (linux, avr, etc.)
{ # Special environment setup
'LINKFLAGS' : [
"-lrt",
],
},
],
]
cc_environment = os.environ['CC']
split_cc_environment_variable = cc_environment.split()
cc_bin = split_cc_environment_variable[0]
cc_parameters = split_cc_environment_variable[1:]
ld_env = os.environ['LD']
split_ld_env_variable = ld_env.split()
ld_bin = split_ld_env_variable[0]
ld_params = split_ld_env_variable[1:]
clean_envs = {}
for platform, tool, flags in platforms:
env = Environment(
options = opts,
tools = tool,
toolpath = ['.'],
ENV = {'PATH' : os.environ['PATH']},
CC = cc_bin,
LD = ld_bin,
AR = os.environ['AR'],
RANLIB = os.environ['RANLIB'],
CCFLAGS = cc_parameters,
LINKFLAGS = ld_params,
LIBS = [],
)
env.MergeFlags(flags)
clean_envs[platform] = env
Help(opts.GenerateHelpText(clean_envs))
Export(['clean_envs'])
SConscript('SConscript');
Recipe:
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9dcf340793a1d73c5211edc8238767dc"
SRC_URI = "git://github.com/jgarff/rpi_ws281x.git;protocol=https \
file://0001-Patch-for-Yocto.patch"
SRC_URI[md5sum] = "b903b8342864ae8422039d4a7479ba4c"
SRCREV = "ba3b5bdad55dc7754567a68c4364b1e772735f47"
DEPENDS += "swig-native python-scons"
RDEPENDS_${PN} = "python"
S = "${WORKDIR}/git"
inherit scons setuptools
EXTRA_OESCONS += " CONFIG_ENVIRONMENT_IMPORT=True -mfl"
do_compile_prepend() {
export
cd ${S}/
scons
cd ${S}/python/
${PYTHON} setup.py build
${PYTHON} setup.py install
}
do_install() {
install -d ${D}${libdir}/python2.7
cp ${S}/python/build/lib.linux-x86_64-2.7/* ${D}${libdir}/python2.7/
}
FILES_${PN} += "${libdir}/python2.7/"
I went and looked at the repo you are trying to build. This SConstruct looks like it expects some TOOLCHAIN variable to be passed to it:
opts.Add('TOOLCHAIN',
'Set toolchain for cross compilation (e.g. arm-linux-gnueabihf)',
'')
Then later it uses that to set the compiler:
if env['TOOLCHAIN'] != '':
env['CC'] = env['TOOLCHAIN'] + '-gcc'
env['AR'] = env['TOOLCHAIN'] + '-ar'
SCons by default tries not to be dependent on the host environment. The SCons Environment must be setup in the SConstruct and SConscript files. This particular SConstruct does this by taking in the host PATH environment with os.environ['PATH'] and an alternate TOOLCHAIN option to setup the name of the compiler and linker to find in the path. This means the SConstruct is expecting your cross compiler to be in the PATH.
You can pass this Variable to SCons from the command line:
do_compile_prepend() {
cd ${S}/
scons TOOLCHAIN=arm-ab-linux-gnueabi
cd ${S}/python/
${PYTHON} setup.py install
}
thank you for your reply.
One step further...
But now I encouter the following error:
ERROR: python-rpi-ws281x-1.0-r0 do_compile: Function failed: do_compile (log file is located at /home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/temp/log.do_compile.3988)
ERROR: Logfile of failure stored in: /home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/temp/log.do_compile.3988
Log data follows:
| DEBUG: Executing shell function do_compile
| scons: Reading SConscript files ...
| scons: done reading SConscript files.
| scons: Building targets ...
| CC main.o
| In file included from main.c:33:
| /home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/recipe-sysroot-native/usr/lib/arm-ab-linux-gnueabi/gcc/arm-ab-linux-gnueabi/8.2.0/include/stdint.h:9:16: fatal error: stdint.h: No such file or directory
| # include_next <stdint.h>
| ^~~~~~~~~~
| compilation terminated.
| scons: *** [main.o] Error 1
| scons: building terminated because of errors.
| WARNING: exit code 2 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /home/user/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0/temp/log.do_compile.3988)
ERROR: Task (/home/user/git/poky-ab/meta-3rdparty/recipes-ws281x/python-rpi-ws281x.bb:do_compile) failed with exit code '1'
Is there any possibility to extend the std include path of scons?
user#smartbakery:~/git/poky-ab/build/tmp/work/cortexa7t2hf-neon-vfpv4-ab-linux-gnueabi/python-rpi-ws281x/1.0-r0$ find -name *.h|grep stdint
./recipe-sysroot-native/usr/lib/arm-ab-linux-gnueabi/gcc/arm-ab-linux-gnueabi/8.2.0/include/stdint-gcc.h
./recipe-sysroot-native/usr/lib/arm-ab-linux-gnueabi/gcc/arm-ab-linux-gnueabi/8.2.0/include/stdint.h
./recipe-sysroot-native/usr/lib/arm-ab-linux-gnueabi/gcc/arm-ab-linux-gnueabi/8.2.0/plugin/include/config/glibc-stdint.h
./recipe-sysroot/usr/include/c++/8.2.0/tr1/stdint.h
./recipe-sysroot/usr/include/stdint.h
./recipe-sysroot/usr/include/bits/stdint-uintn.h
./recipe-sysroot/usr/include/bits/stdint-intn.h
It seems that the compiler does not find /recipe-sysroot/usr/include/stdint.h.
Best regards,
homer836
Related
I am trying to install the Bernese GNSS Software 5.2 on Ubuntu 18.04. I already have installed Perl 5 and qt4.
The setup.sh runs but the compilings are giving error.
I first selected the compiler G95 and it gave error menu and FORTRAN programs and then with GNU compiler and the FORTRAN programs compiled well but the menu still giving error.
Also once I close the setup.sh I can not run the configure.pm that starts the configuration menu (and running the setup.sh again overwrites everything).
I am having the following error:
g++: error: .obj/release/menutils.o: No such file or directory
Makefile:225: recipe for target 'menu_tmp' failed
make: [menu_tmp] Error 1 (ignored)
================================================================================
Compilation finished
********************************************************************************
ERROR: Compilation not successful!
********************************************************************************
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
make: [.obj/release/menutils.o] Error 1 (ignored)
g++: error: .obj/release/menutils.o: No such file or directory
make: [menu_tmp] Error 1 (ignored)
'menu_tmp' and 'menu_tmp' are identical (not copied) at /BERN52/GPS/EXE/cmenu.pl line 223.
The configure.pm error not running seemed to be from exporting the script from windows to linux I solve it by installing http://dos2unix.sourceforge.net/ and running dos2unix configure.pm. After it executed the configuration menu correctly.
-To solve the compiling form the menu:
Running directly just the cmenu.pl that is the script that is called when compiling the menu it gives the same error but with more detail from the makefile. It is missing zlib on makefile.
/usr/bin/ld: .obj/release/menutils.o: undefined reference to symbol 'compress'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:225: recipe for target 'menu_tmp' failed
make: [menu_tmp] Error 1 (ignored)
================================================================================
Compilation finished
********************************************************************************
ERROR: Compilation not successful!
********************************************************************************
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
collect2: error: ld returned 1 exit status
make: [menu_tmp] Error 1 (ignored)
'menu_tmp' and 'menu_tmp' are identical (not copied) at ./cmenu.pl line 226.
I first tried to include the lib on the LIBS in the MakeFile but it continued failing on compilation because it was remaking the MakeFile every time i run the compilation and erasing my changes.
This is how I solved and compiled well:
First launched the setup.sh as usual install everything and gave the error when compiling the menu. Then, after running the dos2unix configure.pm so I can access the configuration menu:
1 - Install zlib
sudo apt-get install libz-dev
2 - At GPS/EXE/cmenu.pl comment line 116 (avoid remaking the MakeFile so our changes won't be erased when we try to compile)
# system("$qmake -Wall menu.tmp");
3 - At MENU/MakeFile line 19 add -lz
LIBS = $(SUBLIBS) -L/usr/lib/x86_64-linux-gnu -lQt3Support -lQtGui -lQtNetwork -lQtCore -lpthread -lz
4 - At MENU/MakeFile comment lines 227 to 255, that are remaking the MakeFile every run also.
# Makefile: menu.tmp /usr/share/qt4/mkspecs/linux-g++-64/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \
# /usr/share/qt4/mkspecs/common/linux.conf \
# /usr/share/qt4/mkspecs/common/gcc-base.conf \
# /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \
# /usr/share/qt4/mkspecs/common/g++-base.conf \
# /usr/share/qt4/mkspecs/common/g++-unix.conf \
# /usr/share/qt4/mkspecs/qconfig.pri \
# /usr/share/qt4/mkspecs/features/qt_functions.prf \
# /usr/share/qt4/mkspecs/features/qt_config.prf \
# /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
# /usr/share/qt4/mkspecs/features/default_pre.prf \
# /usr/share/qt4/mkspecs/features/release.prf \
# /usr/share/qt4/mkspecs/features/default_post.prf \
# /usr/share/qt4/mkspecs/features/shared.prf \
# /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
# /usr/share/qt4/mkspecs/features/warn_on.prf \
# /usr/share/qt4/mkspecs/features/qt.prf \
# /usr/share/qt4/mkspecs/features/unix/thread.prf \
# /usr/share/qt4/mkspecs/features/moc.prf \
# /usr/share/qt4/mkspecs/features/resources.prf \
# /usr/share/qt4/mkspecs/features/uic.prf \
# /usr/share/qt4/mkspecs/features/yacc.prf \
# /usr/share/qt4/mkspecs/features/lex.prf \
# /usr/share/qt4/mkspecs/features/include_source_dir.prf \
# /usr/lib/x86_64-linux-gnu/libQt3Support.prl \
# /usr/lib/x86_64-linux-gnu/libQtGui.prl \
# /usr/lib/x86_64-linux-gnu/libQtNetwork.prl \
# /usr/lib/x86_64-linux-gnu/libQtCore.prl
# $(QMAKE) -Wall -o Makefile menu.tmp
5 - Compile the menu again from the configure.pm and compiled successfully.
I am getting do_compile error for several .bb files of Yocto build even after getting all the dependencies and the building the directory from scratch.
ERROR: oe_runmake failed
ERROR: Function failed: do_compile (log file is located at
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky-
linux-gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063-
r0/temp/log.do_compile.14224)
ERROR: Logfile of failure stored in: /home/fsl-community-bsp-
jethro1/build/tmp/work/imx6q-poky-linux-gnueabi/linux-fslc-
imx/3.14-1.1.x+gitAUTOINC+327d5c9063-r0/temp/log.do_compile.14224
The entire log message reads as:
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4 uImage CC=arm-poky-linux-gnueabi-gcc -mno-thumb-
interwork -marm -fuse-ld=bfd LD=arm-poky-linux-gnueabi-ld.bfd
LOADADDR=0x10008000
| CHK include/config/kernel.release
| GEN /home/fsl-community-bsp-
jethro1/build/tmp/work/imx6q-poky-linux-gnueabi/linux-fslc-imx/3.14-
1.1.x+gitAUTOINC+327d5c9063-r0/build/Makefile
| CHK include/generated/uapi/linux/version.h
| Using /home/fsl-community-bsp-jethro1/build/tmp/work-
shared/imx6qmyproject/kernel-source as source for kernel
| CHK include/generated/utsrelease.h
| make[3]: `include/generated/mach-types.h' is up to date.
| CC scripts/mod/empty.o
| CC scripts/mod/devicetable-offsets.s
| MKELF scripts/mod/elfconfig.h
| HOSTCC scripts/mod/modpost.o
| HOSTCC scripts/mod/sumversion.o
| CALL /home/fsl-community-bsp-jethro1/build/tmp/work-
shared/imx6qmyproject/kernel-source/scripts/checksyscalls.sh
| GEN scripts/mod/devicetable-offsets.h
| HOSTCC scripts/mod/file2alias.o
| HOSTLD scripts/mod/modpost
| CHK include/generated/compile.h
| CHK kernel/config_data.h
| Kernel: arch/arm/boot/Image is ready
| Kernel: arch/arm/boot/zImage is ready
| Image arch/arm/boot/uImage is ready
| NOTE: make -j 4 imx6q-myproject-ldo.dtb
| CC scripts/mod/empty.o
| CC scripts/mod/devicetable-offsets.s
| MKELF scripts/mod/elfconfig.h
| GEN scripts/mod/devicetable-offsets.h
| HOSTCC scripts/mod/modpost.o
| HOSTCC scripts/mod/sumversion.o
| HOSTCC scripts/mod/file2alias.o
| HOSTLD scripts/mod/modpost
The final make error after parsing some paths are:
| make[3]: *** No rule to make target `arch/arm/boot/dts/imx6q-
myproject-ldo.dtb'. Stop.
| make[2]: *** [imx6q-myproject-ldo.dtb] Error 2
| make[1]: *** [sub-make] Error 2
| make: *** [all] Error 2
| ERROR: oe_runmake failed
The do_compile function from the poky reads as:
| ERROR: Function failed: do_compile (log file is located at
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky-linux-
gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063-
r0/temp/log.do_compile.14224)
The final Bitbake task error reads as:
ERROR: Task 47 (/home/fsl-community-bsp-jethro1/sources/meta-fsl-
arm/recipes-kernel/linux/linux-fslc-imx_3.14-1.1.x.bb, do_compile)
failed with exit code '1'
Right now my guesses are, the cross compiler is not mentioned properly or its path is not identifed. Or it could be the issue of device tree files where .bfd file and .dtb files do not compile to give the final dts folder in the Linux OS built for iMX6 ARM processors?
As stated in the comments by the PO above:
The issue got resolved when I gave a proper path for the dtb file, and used make command properly.
Update:
The issue was not of the path, but of the c preprocessors that are needed for >the device tree compiler to identify dts and convert them to dtb.
Instead of the make command, I used the dtc command
I am trying to cross compile openssl using the x86_64-linux-gnu-gcc on a Fedora 29 host.
I am getting this error:
cryptlib.h:62:11: fatal error: stdlib.h: No such file or directory
The compile command is:
x86_64-linux-gnu-gcc -o cryptlib.o cryptlib.c
As I understand it, the compiler should find stdlib.h in it's standard path since it has been included with <..>.
I tried testing for it using the pre processor, which said that it can't find it.
echo '#include <stdlib.h>' | x86_64-linux-gnu-cpp -H -o /dev/null
:1:10: fatal error: stdlib.h: No such file or directory
I tested for another header file, it it was able to find it.
echo '#include <stdbool.h>' | x86_64-linux-gnu-cpp -H -o /dev/null
. /usr/lib/gcc/x86_64-linux-gnu/8/include/stdbool.h
Has anyone come across this issue ?.
Regards
Chandana
I tried to compile ICU 59.1 with MinGW-w64 according to Qt manual (MinGW-64-bit). Unfortunately, I got the following error:
$ make && make install
rebuilding config/icucross.mk
rebuilding config/icucross.inc
cd ./config; \
make -f pkgdataMakefile
make[1]: вход в каталог «/c/Qt-deps/icu-59_1/source/config»
*** ERROR - configure could not detect your platform
*** see the readme.html
*** or, try copying icu/source/config/mh-linux to mh-unknown
*** and editing it.
exit 1
rm -rf pkgdata.inc
make[1]: выход из каталога «/c/Qt-deps/icu-59_1/source/config»
rm -rf config/icu-config
/usr/bin/install -c ./config/icu-config-top config/icu-config
chmod u+w config/icu-config
LC_ALL=C /usr/bin/sed -f ./config/make2sh.sed < ./config/Makefile.inc | grep -v '#M#' | uniq >> config/icu-config
LC_ALL=C /usr/bin/sed -f ./config/make2sh.sed < ./config/mh-unknown | grep -v '#M#' | uniq >> config/icu-config
cat ./config/icu-config-bottom >> config/icu-config
chmod u-w config/icu-config
config/icu-uc.pc updated.
config/icu-i18n.pc updated.
config/icu-io.pc updated.
Note: rebuild with "make VERBOSE=1 " to show all compiler parameters.
/bin/sh ./mkinstalldirs lib
mkdir lib
/bin/sh ./mkinstalldirs bin
mkdir bin
make[0]: Making `all' in `stubdata'
make[1]: вход в каталог «/c/Qt-deps/icu-59_1/source/stubdata»
*** ERROR - configure could not detect your platform
*** see the readme.html
*** or, try copying icu/source/config/mh-linux to mh-unknown
*** and editing it.
exit 1
make[1]: выход из каталога «/c/Qt-deps/icu-59_1/source/stubdata»
make: *** [Makefile:147: all-recursive] Ошибка 2
I have tried to compile it twice on two different computers: the 1st one - Windows 10 Pro, the last one - Windows 7 Ultimate. Results are the same. Used tools: MSYS2 x64 (20161025). So, what am I doing wrong?
The error "configure could not detect your platform" can probably be fixed by passing the arguments --build=$MINGW_CHOST --host=$MINGW_CHOST to the configure script. If you are in the right type of MSYS2 shell, $MINGW_CHOST should be i686-w64-mingw32 or x86_64-w64-mingw32
For more useful tips for building ICU, look at the build script that the MSYS2 developers have crafted:
https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-icu
I have fixed the same issue (except that used ICU 55.1) replacing ../source/config/mh-unknown with the contents of ../source/config/mh-mingw64
I have build icu with same problem.
I have run this script for correct the problem:
del M:\work\code\qt\icu4c-68_2\icu4c\source\config\mh-unknow
copy M:\work\code\qt\icu4c-68_2\icu4c\source\config\mh-msys-msvc M:\work\code\qt\icu4c-68_2\icu4c\source\config\mh-unknow
I've been building freedesktop cppunit with mingw
https://www.freedesktop.org/wiki/Software/cppunit/
I've made some fixes to source files and makefiles and been able to
successfully execute commmands:
./autogen.sh
./configure
make
without any errors.
There was a need to set
m4_DATA = m4
instead of value "cppunit.m4" in Makefile.am(there was no such dir in build and it looks like such dir is "m4" dir).
After successful make execution doing
make --debug install
failed with error:
File install-m4DATA not found
from Makefile.am:
m4dir = $(datadir)/aclocal //what is datadir btw?
automake generated Makefile task:
install-m4DATA: $(m4_DATA)
#$(NORMAL_INSTALL) // fails at this line
test -z "$(m4dir)" || $(MKDIR_P) "$(DESTDIR)$(m4dir)"
#list='$(m4_DATA)'; test -n "$(m4dir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(m4dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(m4dir)" || exit $$?; \
done
before that task NORMAL_INSTALL is set to:
NORMAL_INSTALL = :
How to fix "make install" execution.
Will it work if i have only mingw envieronment on my PC?
Version is 1.13.2 fresh from git repo.
I also post lines from "make --debug install" output
File 'install-m4DATA' does not exist.
Must remake target 'install-m4DATA'.
test -z "/usr/local/share/aclocal" || /usr/bin/mkdir -p "/usr/local/share/aclocal"
/usr/bin/install -c -m 644 ./m4 '/usr/local/share/aclocal'
Makefile:432: recipe for target 'install-m4DATA' failed
make[2]: Leaving directory 'c:/Users/user/projects/cppunit'
Makefile:799: recipe for target 'install-am' failed
make[1]: Leaving directory 'c:/Users/user/projects/cppunit'
Makefile:479: recipe for target 'install-recursive' failed
It also prints that that script omits directory at line
/usr/bin/install -c -m 644 ./m4 '/usr/local/share/aclocal'
Possibly here must go files from directory but not directory itself.
How to fix it to do that(i'm not familiar with Makefiles and bash)?