In commit: https://git.buildroot.net/buildroot/commit/?id=13722d58f77d0e9fea9eefc50bf083d19f835433 Patch "0003-configure-Invert-AC_CHECK_LIB-EVP_md5-.-without-lz-w.patch" was intended to fix AC_CHECK_FUNCS() failure on openssl functions. This was due to missing -lz during static linking. But the patch is wrong and results in explicitly linking against -lz in both shared and static build. This makes no sense, since shared linking has transitive dependency so it doesn't need to list -lz after -lssl, -lssl is enough. Differently static linking needs -lz to be listed after -lssl. So the real cause of previous build failure: http://autobuild.buildroot.net/results/881/881139fb049738b16609d39ad5a49bd77ff6b4aa/ is that when AC_CHECK_FUNCS(), $LIBS variable is overwritten with $LIBCRYPTO without taking into accout previous $LIBS content(i.e. where -lz is present). This results in AC_CHEC_FUNCS() to fail while trying to statically link without listing -lz. Then: - Remove current "0003-configure-Invert-AC_CHECK_LIB-EVP_md5-.-without-lz-w.patch" - Add patch "0003-configure-fix-AC_CHECK_FUNCS-EVP_sha224-EVP_sha384-..patch" where add $LIBS content to tail of new $LIBS variable like this: LIBS="$LIBCRYPTO $LIBS" NOTE: $LIBS is at the end to ensure static linking to work correctly. - Add patch 0004-configure-fix-AC_CHECK_FUNCS-TLS_method-TLSv1_method.patch where add $LIBS content to tail of new $LIBS variable like this: LIBS="-lssl $LIBCRYPTO $LIBS" NOTE: $LIBS is at the end to ensure static linking to work correctly. This way AC_CHECK_FUNCS(), when static linking, try to link with -lz too appending it at the end of linking library list. And after every AC_CHECK_FUNCS(), previously saved $LIBS variable gets back to its original value(i.e. containing -lz if present) resulting in having or not -lz appended to library list according to static or shared build. Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitlab-ci.yml.in | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on Freenode IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches