aboutsummaryrefslogtreecommitdiff
path: root/depends
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2022-07-27 12:56:03 +0100
committerfanquake <fanquake@gmail.com>2022-07-27 12:56:17 +0100
commit207a22877330709e4462e6092c265ab55c8653ac (patch)
treed9f702b52521e6efb4b2f44f87818525aee7fdd0 /depends
parent9ba73758c908ce0c49f1bd9727ea496958e24d54 (diff)
parente838a9847580527b8321d65e57b1c53cc2af6bf4 (diff)
Merge bitcoin/bitcoin#25697: depends: expat 2.4.8 & fix building with -flto
e838a9847580527b8321d65e57b1c53cc2af6bf4 depends: re-enable using -flto when building expat (fanquake) 304452558c7f6f5e32ba13d8f05325790c8a4f5f depends: expat 2.4.8 (fanquake) Pull request description: Currently, when building the expat package in depends, using `-flto` (`LTO=1`), the configure check can fail, because it cannot determine the system endianess: ```bash configure:18718: result: unknown configure:18733: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help ``` Fix that by defining `_DEFAULT_SOURCE`, which in turn defines `__USE_MISC` (`features.h`): ```c #if defined _DEFAULT_SOURCE # define __USE_MISC1 #endif ``` which exposes additional definitions in `endian.h`: ```c #include <features.h> /* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER. */ #include <bits/endian.h> #ifdef __USE_MISC # define LITTLE_ENDIAN__LITTLE_ENDIAN # define BIG_ENDIAN__BIG_ENDIAN # define PDP_ENDIAN__PDP_ENDIAN # define BYTE_ORDER__BYTE_ORDER #endif ``` and gives us a working configure. You could test building this change with Guix + LTO with [this branch](https://github.com/fanquake/bitcoin/tree/lto_in_guix). Note that that build may fail for other reasons (on x86_64), unrelated to this change. Some related upstream discussion: https://bugs.gentoo.org/757681 https://forums.gentoo.org/viewtopic-t-1013786.html ACKs for top commit: hebasto: re-ACK e838a9847580527b8321d65e57b1c53cc2af6bf4, only [suggested](https://github.com/bitcoin/bitcoin/pull/25697#discussion_r929735675) changes since my recent [review](https://github.com/bitcoin/bitcoin/pull/25697#pullrequestreview-1050657421). jarolrod: code review ACK e838a9847580527b8321d65e57b1c53cc2af6bf4 Tree-SHA512: 9dbf64c9bd1fd995a4d1addc011ffeff83d50df736030012346c97605e63aed4b5bac390a81abe646c1be28ad6fd600f64560dcb26bbc2edf5d513ca3b180bfa
Diffstat (limited to 'depends')
-rw-r--r--depends/packages/expat.mk9
1 files changed, 6 insertions, 3 deletions
diff --git a/depends/packages/expat.mk b/depends/packages/expat.mk
index 349319138e..bb203d06f8 100644
--- a/depends/packages/expat.mk
+++ b/depends/packages/expat.mk
@@ -1,15 +1,18 @@
package=expat
-$(package)_version=2.4.1
+$(package)_version=2.4.8
$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$($(package)_version))/
$(package)_file_name=$(package)-$($(package)_version).tar.xz
-$(package)_sha256_hash=cf032d0dba9b928636548e32b327a2d66b1aab63c4f4a13dd132c2d1d2f2fb6a
+$(package)_sha256_hash=f79b8f904b749e3e0d20afeadecf8249c55b2e32d4ebb089ae378df479dcaf25
+# -D_DEFAULT_SOURCE defines __USE_MISC, which exposes additional
+# definitions in endian.h, which are required for a working
+# endianess check in configure when building with -flto.
define $(package)_set_vars
$(package)_config_opts=--disable-shared --without-docbook --without-tests --without-examples
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
$(package)_config_opts += --without-xmlwf
$(package)_config_opts_linux=--with-pic
- $(package)_cflags += -fno-lto
+ $(package)_cppflags += -D_DEFAULT_SOURCE
endef
define $(package)_config_cmds