Go to file
Thomas Petazzoni 17fedf85c5 package/lmbench: fix build by adjusting LDLIBS logic
The lmbench package (largely unmaintained upstream, last release in
2006) uses a home-grown build system. The scripts/build script sets
LDLIBS to -lm and Buildroot's makefile changes that to:

LDLIBS+=-lm

Except that when Buildroot passes LDLIBS="`$(PKG_CONFIG_HOST_BINARY)
--libs libtirpc`", the LDLIBS variable ends up being equal to:

       -ltirpc-lm

Yes, without any space between -ltirpc and -lm.

Due to this, the checks in scripts/build that use ${LDLIBS} all fail,
and in particular the test that checks when socklen_t is a known type
fails, causing lmbench to provide its own definition, which clashes
with the C library headers definition, and therefore causing build
failures such as:

bench.h:81:13: error: conflicting types for 'socklen_t'; have 'int'

This commit fixes that by adjusting scripts/build using a patch to
properly allow passing additional ${LDLIBS} value, with the needed
space to separate the value from -lm.

Fixes:

  http://autobuild.buildroot.net/results/f1715de95b46a1d08143e529bd4574bc7dbcfb3e/

We have been unable to determine exactly when this issue was
introduced. The first build failure we could find is the one
referenced above, which dates back from Aug 19, 2024. Since this date,
lmbench has been consistently failing on a very regular
basis. However, prior to Aug 19, 2024, the previous failure was from
December 2022, and was unrelated. It is unclear what changed in Aug
2024 to cause this issue to surface. The one thing that changed right
before commit ce3dedc2 (first failing commit) are changes to
genrandconfig, which ensures all autobuilders now generated fully
random configurations instead of configurations based on a
well-defined list of arch/toolchain configurations. But even with
this, this lmbench issue should have appeared earlier, and we have
been unable to find a scientific explanation.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 80f25d47060dea19b8f3b5fd84b6238375c54729)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-12-07 10:45:13 +01:00
.github .github: add a pull request warning that explains the mailing list workflow 2024-05-07 18:09:38 +02:00
.gitlab/issue_templates gitlab: fix issue template 2024-09-19 11:11:28 +02:00
arch arch/Config.in.arc: fix indentation 2024-09-19 09:10:58 +02:00
board board/zynqmp/kria/readme.txt: add usb start 2024-12-06 20:49:50 +01:00
boot boot/grub2/readme.txt: don't specify /dev/loop0 2024-12-06 23:27:02 +01:00
configs configs/stm32mp157a_dk1: add hashes 2024-07-31 18:48:06 +02:00
docs docs/website: fix the link to the mailman archives 2024-11-13 09:36:28 +01:00
fs fs/tar: use appropriate TAR 2024-06-15 20:28:56 +02:00
linux {linux, linux-headers}: bump 6.{1, 6, 11}.x series 2024-12-06 10:24:33 +01:00
package package/lmbench: fix build by adjusting LDLIBS logic 2024-12-07 10:45:13 +01:00
support support/testing: improve mosquitto test reliability 2024-12-06 10:25:58 +01:00
system system: expose BR2_ROOTFS_POST_SCRIPT_ARGS for PRE_BUILD scripts 2024-04-28 14:07:55 +02:00
toolchain toolchain/toolchain-wrapper.c: fix 'potentially' typo 2024-10-12 15:57:13 +02:00
utils utils/genrandconfig: handle BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y 2024-11-12 22:44:49 +01:00
.b4-config .b4-config: configure b4 for Buildroot 2024-08-20 19:11:53 +02:00
.checkpackageignore package/android-tools: fix b64_pton() issue with GCC >= 14.x 2024-12-06 23:43:14 +01:00
.clang-format .clang-format: initial import from Linux 5.15.6 2022-01-01 15:01:13 +01:00
.defconfig
.editorconfig editorconfig: leave patch files alone wrt trainling spaces 2024-06-16 12:24:58 +02:00
.flake8 Revert ".flake8: fix check for 80/132 columns" 2021-01-02 17:38:20 +01:00
.gitignore
.gitlab-ci.yml support/misc/gitlab-ci.yml.in: retry a job only if it failed due to a runner issue 2023-08-27 10:09:37 +02:00
.shellcheckrc utils/check-package: improve shellcheck reproducibility 2022-07-25 23:52:47 +02:00
CHANGES Update for 2024.02.8 2024-11-14 17:25:26 +01:00
Config.in Config.in: fix _FORTIFY_SOURCE help string typos 2024-12-06 10:21:22 +01:00
Config.in.legacy toolchain: drop codescape mips toolchains 2024-03-22 20:51:35 +01:00
COPYING
DEVELOPERS DEVELOPERS: drop Yann's entries 2024-12-06 20:51:18 +01:00
Makefile Update for 2024.02.8 2024-11-14 17:25:26 +01:00
Makefile.legacy
README docs: move the IRC channel away from Freenode 2021-05-29 22:16:23 +02: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 OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches