-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cross compiler toolchain for linux, mac and windows #1
Comments
Linux and mac toolchains can now be exported. Modified version of meta-mingw has created, where mingw binaries where update from v3 to v5 to ensure Qt could compile correctly. However after looking at meta-darwin the following errors occur ERROR: No recipes available for:
/home/electronics/Documents/meta-qutipi/vendor/meta-darwin/recipes-core/zlib/zlib_1.2.8.bbappend
/home/electronics/Documents/meta-qutipi/vendor/meta-darwin/recipes-devtools/binutils/binutils-cross-canadian_2.24.bbappend
/home/electronics/Documents/meta-qutipi/vendor/meta-darwin/recipes-devtools/gcc/gcc-cross-canadian_4.9.bbappend
/home/electronics/Documents/meta-qutipi/vendor/meta-darwin/recipes-devtools/gcc/gcc-crosssdk-initial_4.9.bbappend
/home/electronics/Documents/meta-qutipi/vendor/meta-darwin/recipes-devtools/gcc/gcc-crosssdk_4.9.bbappend
/home/electronics/Documents/meta-qutipi/vendor/meta-darwin/recipes-devtools/gcc/gcc-runtime_4.9.bbappend
/home/electronics/Documents/meta-qutipi/vendor/meta-darwin/recipes-devtools/gcc/libgcc_4.9.bbappend
/home/electronics/Documents/meta-qutipi/vendor/meta-darwin/recipes-devtools/qemu/qemu_2.1.0.bbappend After renaming the recipes to ensure they extend the correct meta layers the following errors occur ERROR: ExpansionError during parsing /home/electronics/Documents/meta-qutipi/vendor/poky-rocko/meta/recipes-devtools/gcc/gcc-crosssdk_7.3.bb | ETA: 0:00:03
Traceback (most recent call last):
bb.data_smart.ExpansionError: Failure expanding variable EXTRA_OECONF_darwin[:=], expression was ${@oe_filter_out('--with-gnu-ld', '${@oe_filter_out('--with-linker-hash-style=sysv', ' --enable-clocale=generic --with-gnu-ld --enable-shared --enable-languages=c,c++,objc --enable-threads=posix --disable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=i386-pokysdk-darwin- --without-local-prefix --disable-lto --enable-libssp --enable-libitm --disable-bootstrap --disable-libmudflap --with-system-zlib --with-linker-hash-style=sysv --enable-linker-build-id --with-ppl=no --with-cloog=no --enable-checking=release --enable-cheaders=c_global --without-isl --with-gxx-include-dir=/not/exist/opt/qutipi/2.4.2/sysroots/i386-pokysdk-darwin/usr/include/c++/7.3.0 --with-sysroot=/not/exist --with-build-sysroot=/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot --without-long-double-128 --enable-poison-system-directories --with-mpfr=/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot-native/usr --with-system-zlib --disable-static ${PACKAGECONFIG_CONFARGS} --disable-nls --enable-initfini-array', d)} --disable-static ${PACKAGECONFIG_CONFARGS} ${@gettext_oeconf(d)} --enable-initfini-array', d)} which triggered exception SyntaxError: invalid syntax (EXTRA_OECONF_darwin[:=], line 1) |
The above issue with meta-darwin was fixed by changing EXTRA_OECONF_darwin = "${@oe_filter_out('--with-gnu-ld', '${EXTRA_OECONF}', d)}"
EXTRA_OECONF_darwin := "${@oe_filter_out('--enable-libssp', '${EXTRA_OECONF}', d)}"
EXTRA_OECONF_darwin := "${@oe_filter_out('--with-gxx-include-dir=${STAGING_DIR_TARGET}${target_includedir}/c\+\+', '${EXTRA_OECONF}', d)}" to EXTRA_OECONF_remove_darwin = "--with-gnu-ld"
EXTRA_OECONF_remove_darwin = "--enable-libssp"
EXTRA_OECONF_remove_darwin = '--with-gxx-include-dir=${STAGING_DIR_TARGET}${target_includedir}/c\+\+' However this moves us onto the next error ERROR: Nothing PROVIDES 'virtual/nativesdk-libc' (but /home/electronics/Documents/meta-qutipi/vendor/poky-rocko/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb DEPENDS on or otherwise requires it)
nativesdk-glibc PROVIDES virtual/nativesdk-libc but was skipped: PREFERRED_PROVIDER_virtual/nativesdk-libc set to nativesdk-osx-runtime, not nativesdk-glibc
nativesdk-osx-runtime PROVIDES virtual/nativesdk-libc but was skipped: PREFERRED_PROVIDER_virtual/nativesdk-i386-pokysdk-darwin-libc-initial set to nativesdk-glibc-initial, not nativesdk-osx-runtime
NOTE: Runtime target 'nativesdk-packagegroup-sdk-host' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['nativesdk-packagegroup-sdk-host', 'virtual/nativesdk-libc']
ERROR: Required build target 'meta-toolchain' has no buildable providers.
Missing or unbuildable dependency chain was: ['meta-toolchain', 'nativesdk-packagegroup-sdk-host', 'virtual/nativesdk-libc'] |
Above error fixed, moving onto the next issue. make[1]: Leaving directory '/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/gcc-7.3.0/build.x86_64-linux.i386-pokysdk-darwin/libcpp'
make[1]: Entering directory '/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/gcc-7.3.0/build.x86_64-linux.i386-pokysdk-darwin/fixincludes'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/gcc-7.3.0/build.x86_64-linux.i386-pokysdk-darwin/fixincludes'
make[1]: Entering directory '/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/gcc-7.3.0/build.x86_64-linux.i386-pokysdk-darwin/gcc'
/home/electronics/Documents/meta-qutipi/build/tmp/work-shared/gcc-7.3.0-r0/gcc-7.3.0/missing flex -ogengtype-lex.c ../../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/gcc/gengtype-lex.l && { \
echo '#include "bconfig.h"' > gengtype-lex.c.tmp; \
cat gengtype-lex.c >> gengtype-lex.c.tmp; \
mv gengtype-lex.c.tmp gengtype-lex.c; \
}
/home/electronics/Documents/meta-qutipi/build/tmp/work-shared/gcc-7.3.0-r0/gcc-7.3.0/missing: line 81: flex: command not found
WARNING: 'flex' is missing on your system.
You should only need it if you modified a '.l' file.
You may want to install the Fast Lexical Analyzer package:
<http://flex.sourceforge.net/>
Makefile:2799: recipe for target 'gengtype-lex.c' failed
make[1]: [gengtype-lex.c] Error 127 (ignored)
echo timestamp > gcc.pod
perl ../../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/gcc/../contrib/texi2pod.pl ../../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/gcc/doc/invoke.texi > gcc.pod
g++ -c -isystem/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot-native/usr/include -O2 -pipe -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wno-error -DHAVE_CONFIG_H -DGENERATOR_FILE -fno-PIE -I. -Ibuild -I../../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/gcc -I../../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/gcc/build -I../../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/gcc/../include -I../../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/gcc/../libcpp/include -isystem/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot-native/usr/include \
-o build/gengtype-lex.o gengtype-lex.c
g++: error: gengtype-lex.c: No such file or directory
g++: fatal error: no input files
compilation terminated.
Makefile:2596: recipe for target 'build/gengtype-lex.o' failed
make[1]: *** [build/gengtype-lex.o] Error 1
make[1]: *** Waiting for unfinished jobs....
rm gcc.pod
make[1]: Leaving directory '/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/gcc-7.3.0/build.x86_64-linux.i386-pokysdk-darwin/gcc'
Makefile:4211: recipe for target 'all-gcc' failed
make: *** [all-gcc] Error 2
ERROR: oe_runmake failed
WARNING: /home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/temp/run.do_compile.1307:1 exit 1 from 'exit 1'
ERROR: Function failed: do_compile (log file is located at /home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/temp/log.do_compile.1307) |
Above issue fixed, moving onto the next issue checking whether ln -s works... yes
| checking for i386-pokysdk-darwin-gcc... /home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/gcc-7.3.0/build.x86_64-linux.i386-pokysdk-darwin/./gcc/xgcc -B/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/gcc-7.3.0/build.x86_64-linux.i386-pokysdk-darwin/./gcc/ -B/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot-native/usr/i386-pokysdk-darwin/bin/ -B/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot-native/usr/i386-pokysdk-darwin/lib/ -isystem /home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot-native/usr/i386-pokysdk-darwin/include -isystem /home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot-native/usr/i386-pokysdk-darwin/sys-include --sysroot=/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/recipe-sysroot
| checking for suffix of object files... configure: error: in `/home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/gcc-7.3.0/build.x86_64-linux.i386-pokysdk-darwin/i386-pokysdk-darwin/libgcc':
| configure: error: cannot compute suffix of object files: cannot compile
| See `config.log' for more details.
| Makefile:11174: recipe for target 'configure-target-libgcc' failed
| make: *** [configure-target-libgcc] Error 1
| ERROR: oe_runmake failed
| WARNING: /home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/temp/run.do_compile.11905:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at /home/electronics/Documents/meta-qutipi/build/tmp/work/x86_64-linux/gcc-crosssdk-initial-i386-pokysdk-darwin/7.3.0-r0/temp/log.do_compile.11905) |
Mac compiler wont be exported any time soon. From what i can gather, generating the init cross compiler Linux -> Darwin is the main problem. odcctools which is no longer maintained only supports gcc 4 and poky supports 6 & 7. Possible way around is to use clang but is too much work for now. |
Over the past few days multiple issues have been fixed for the linux and windows sdk. Mainly to do with missing libraries and binaries. |
Create linux, mac and windows cross compilers
See below for example:
https://link.springer.com/content/pdf/10.1007%2F978-1-4302-6838-3.pdf
https://www.intel.com/content/dam/www/public/us/en/documents/guides/galileo-quark-x1000-bsp-guide.pdf
The text was updated successfully, but these errors were encountered: