Go to file
Giulio Benetti 7948dcf3a8 netsnmp: improve linking avoiding useless -lz listing in shared build
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>
(cherry picked from commit c5a7c287de)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-10-20 18:56:47 +02:00
arch arch: add Atom CPUs as Silvermont Architecture target 2018-01-01 13:05:16 +01:00
board board/technologic/ts7680: fix bogus size in genimage.cfg 2018-08-24 10:26:48 +02:00
boot boot/xloader: add upstream URL in Config.in help 2018-10-05 13:46:21 +02:00
configs configs/arm_juno: bump ATF to v1.3 2018-08-24 10:27:29 +02:00
docs docs/manual: expand on why using a branch name is not supported 2018-08-26 23:18:30 +02:00
fs fs/cpio/init: preserve arguments 2018-02-26 20:49:40 +01:00
linux linux: bump CIP to version v4.4.138-cip25 2018-08-24 00:17:44 +02:00
package netsnmp: improve linking avoiding useless -lz listing in shared build 2018-10-20 18:56:47 +02:00
support support/scripts/mkusers: preserve group members 2018-10-01 21:18:56 +02:00
system skeleton: PAGER without blank and unset at end of for loop 2018-06-17 17:19:52 +02:00
toolchain toolchain/buildroot: fix default of C library choice 2018-05-28 16:12:14 +02:00
utils utils/test-pkg: log the output of merge-config 2018-07-19 23:28:02 +02:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.flake8 .flake8: add config file for Python code style 2017-10-06 19:05:18 +02:00
.gitignore update gitignore 2013-05-04 12:41:55 +02:00
.gitlab-ci.yml support/testing: add test for file capabilities 2018-08-10 08:26:45 +02:00
.gitlab-ci.yml.in .gitlab-ci.yml: use image with flake8 2018-05-06 21:21:23 +02:00
CHANGES Update for 2018.02.6 2018-10-07 09:19:35 +02:00
Config.in Config.in: add BR2_HOST_GCC_AT_LEAST_8 2018-05-02 21:27:57 +02:00
Config.in.legacy package/transmission: remove BR2_PACKAGE_TRANSMISSION_REMOTE 2018-06-11 22:57:19 +02:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
DEVELOPERS woff2: new package 2018-10-05 15:17:08 +02:00
Makefile Update for 2018.02.6 2018-10-07 09:19:35 +02:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
README README: add reference to submitting-patches 2016-02-01 19:16:08 +01:00

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