Go to file
Giulio Benetti c5a7c287de 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>
2018-10-20 00:11:53 +02:00
arch arch: drop BR2_GCC_TARGET_CPU_REVISION option 2018-10-01 14:52:32 +02:00
board configs/bananapi_m2_ultra: new defconfig 2018-10-14 10:10:36 +02:00
boot boot/uboot: fix environment image generation on big endian systems 2018-10-14 21:11:58 +02:00
configs configs/raspberrypi*: bump kernel version to 6d27aa156c 2018-10-15 13:15:19 +02:00
docs docs/website: add TkOS to the sponsors 2018-10-17 21:27:14 +02:00
fs fs/btrfs: remove destination file before generation 2018-08-25 23:59:23 +02:00
linux {linux, linux-headers}: fix linux-4.9.133.tar.xz checksum 2018-10-17 21:45:41 +02:00
package netsnmp: improve linking avoiding useless -lz listing in shared build 2018-10-20 00:11:53 +02:00
support support/testing: fix TestATFMarvell test case 2018-10-14 19:38:32 +02:00
system system: update Config.in comment about systemd dependencies 2018-09-15 00:05:48 +02:00
toolchain pkg-toolchain-external.mk: fix s/CC_TARGET_ARCH/GCC_TARGET_ARCH/ typo 2018-10-01 17:33:59 +02:00
utils utils/get-developers: fix python 3.x compatibility 2018-10-12 09:05:50 +02:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.flake8 .flake8: ignore utils/diffconfig 2018-03-13 22:37:54 +01:00
.gitignore update gitignore 2013-05-04 12:41:55 +02:00
.gitlab-ci.yml configs/bananapi_m2_ultra: new defconfig 2018-10-14 10:10:36 +02:00
.gitlab-ci.yml.in Makefile: introduce check-package target 2018-08-12 14:39:32 +02:00
CHANGES Update for 2018.08.1 2018-10-07 11:44:17 +02:00
Config.in Config.in: add BR2_HOST_GCC_AT_LEAST_8 2018-05-02 14:50:14 +02:00
Config.in.legacy package/linux-headers: really drop the 4.17 choice 2018-10-07 21:45:16 +02:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
DEVELOPERS python-py: new package 2018-10-15 14:36:45 +02:00
Makefile arch: add support for RISC-V 64-bit (riscv64) architecture 2018-09-23 23:42:41 +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