a8cc6eeec5
Some toolchains used in Buildroot (x86-64 and mips64) have a problem to compile a set of object files into one object file as it is done for the `builtin-target` declared in swupdate's Kbuild Makefile.build. This target collects all object files from every subdirectory declared in `objs-dir` and compiles them into a single object file named `build-in.o` using the linker ld. For the addressed toolchains the default emulation of ld is not the correct one leading to different kind of relocation errors: /usr/bin/i686-pc-linux-gnu-ld: Relocatable linking with relocations from format elf64-x86-64 (core/swupdate.o) to format elf32-i386 (core/built-in.o) is not supported. or /usr/bin/mips-linux-gnu-ld: handlers/raw_handler.o: endianness incompatible with that of the selected emulation or /usr/bin/mips64el-linux-ld: core/swupdate.o: ABI is incompatible with that of the selected As there is no need to have single object file `built-in.o` to be compiled for the subdirectories core and handlers we can easily allow swupdate to be built with these toolchains by compiling the source files from core and handlers with the `lib-target` target by assigning them to the `libs-y` variable as it is done for all other subdirectories. The `lib-target` compiles a set of object files into one archive file. With this target we avoid using the ld linker and use the ar archiver instead. Add a patch from upstream to fix a whole bunch of autobuild errors. Fixes: http://autobuild.buildroot.net/results/de9/de920298075d32f3de83a0cfb7417846eb833425/ http://autobuild.buildroot.net/results/975/975915aa33005806e78260bae385cd4b3e359ca8/ http://autobuild.buildroot.net/results/c54/c54e7a2ea353d95d41a1e966de0dffa7b6ac432e/ http://autobuild.buildroot.net/results/019/0198596ebfed05ab86552b628da2274d55bf42ae/ and many more. Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
||
---|---|---|
.. | ||
Config.in | ||
swupdate.config | ||
swupdate.hash | ||
swupdate.mk |