Skip to content

Commit 8745296

Browse files
committed
Merge bitcoin/bitcoin#22380: build: add and use C_STANDARD and CXX_STANDARD in depends
f7595f1 build: add and use CXX_STANDARD in depends (fanquake) 7e7b3e4 build: add and use C_STANDARD in depends (fanquake) Pull request description: By explicitly setting a C standard version we avoid any potential for issues/differences in libraries that may come about due to C STD version, as well as avoid potentially being opted into newer code / features in libraries when compiler defaults change (i.e as of 11.0.0, Clang now defaults to gnu17 over gnu11). This should be a no-op for our release builds, because it's just explicitly setting the default that is [already being used](https://github.com/fanquake/core-review/blob/master/compiler-defaults.md). However this is relevant for anyone building depends with a newer compiler. I found [one broken `__STDC_VERSION__` check in the](miniupnp/miniupnp#552) miniupnpc header. At the same time, add `CXX_STANDARD` for setting our C++ standard, and use that over setting `-std=c++17` for cxx packages. Guix builds: ```bash ``` ACKs for top commit: dongcarl: Code Review ACK f7595f1 laanwj: Code review ACK f7595f1 Tree-SHA512: 9255190d91ba3de20762b1d6af35c59d64f3d77a52bbe9a3f1dfb6bcf16daef66054ebef96b58e7285cd01bf613e69a78bd5e8681c21293e254f23d1fa7b0f71
2 parents 7f2c983 + f7595f1 commit 8745296

File tree

12 files changed

+27
-18
lines changed

12 files changed

+27
-18
lines changed

depends/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ MULTIPROCESS ?=
4545
LTO ?=
4646
FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
4747

48+
C_STANDARD ?= c11
49+
CXX_STANDARD ?= c++17
50+
4851
BUILD = $(shell ./config.guess)
4952
HOST ?= $(BUILD)
5053
PATCHES_PATH = $(BASEDIR)/patches

depends/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ The following can be set when running make: `make FOO=bar`
9696
- `BASE_CACHE`: Built packages will be placed here
9797
- `SDK_PATH`: Path where SDKs can be found (used by macOS)
9898
- `FALLBACK_DOWNLOAD_PATH`: If a source file can't be fetched, try here before giving up
99+
- `C_STANDARD`: Set the C standard version used. Defaults to `c11`.
100+
- `CXX_STANDARD`: Set the C++ standard version used. Defaults to `c++17`.
99101
- `NO_QT`: Don't download/build/cache Qt and its dependencies
100102
- `NO_QR`: Don't download/build/cache packages needed for enabling qrencode
101103
- `NO_ZMQ`: Don't download/build/cache packages needed for enabling ZeroMQ

depends/hosts/android.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ android_CXX=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang++
66
android_CC=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang
77
endif
88

9+
android_CFLAGS=-std=$(C_STANDARD)
10+
android_CXXFLAGS=-std=$(CXX_STANDARD)
11+
912
ifneq ($(LTO),)
1013
android_CFLAGS += -flto
1114
android_LDFLAGS += -flto

depends/hosts/darwin.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,15 @@ darwin_CXX=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
109109
-Xclang -internal-externc-isystem$(clang_resource_dir)/include \
110110
-Xclang -internal-externc-isystem$(OSX_SDK)/usr/include
111111

112-
darwin_CFLAGS=-pipe
112+
darwin_CFLAGS=-pipe -std=$(C_STANDARD)
113+
darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
113114

114115
ifneq ($(LTO),)
115116
darwin_CFLAGS += -flto
117+
darwin_CXXFLAGS += -flto
116118
darwin_LDFLAGS += -flto
117119
endif
118120

119-
darwin_CXXFLAGS=$(darwin_CFLAGS)
120-
121121
darwin_release_CFLAGS=-O2
122122
darwin_release_CXXFLAGS=$(darwin_release_CFLAGS)
123123

depends/hosts/freebsd.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
freebsd_CFLAGS=-pipe
1+
freebsd_CFLAGS=-pipe -std=$(C_STANDARD)
2+
freebsd_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
23

34
ifneq ($(LTO),)
45
freebsd_CFLAGS += -flto
6+
freebsd_CXXFLAGS += -flto
57
freebsd_LDFLAGS += -flto
68
endif
79

8-
freebsd_CXXFLAGS=$(freebsd_CFLAGS)
9-
1010
freebsd_release_CFLAGS=-O2
1111
freebsd_release_CXXFLAGS=$(freebsd_release_CFLAGS)
1212

depends/hosts/linux.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
linux_CFLAGS=-pipe
1+
linux_CFLAGS=-pipe -std=$(C_STANDARD)
2+
linux_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
23

34
ifneq ($(LTO),)
45
linux_CFLAGS += -flto
6+
linux_CXXFLAGS += -flto
57
linux_LDFLAGS += -flto
68
endif
79

8-
linux_CXXFLAGS=$(linux_CFLAGS)
9-
1010
linux_release_CFLAGS=-O2
1111
linux_release_CXXFLAGS=$(linux_release_CFLAGS)
1212

depends/hosts/mingw32.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ ifneq ($(shell $(SHELL) $(.SHELLFLAGS) "command -v $(host)-g++-posix"),)
22
mingw32_CXX := $(host)-g++-posix
33
endif
44

5-
mingw32_CFLAGS=-pipe
5+
mingw32_CFLAGS=-pipe -std=$(C_STANDARD)
6+
mingw32_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
67

78
ifneq ($(LTO),)
89
mingw32_CFLAGS += -flto
10+
mingw32_CXXFLAGS += -flto
911
mingw32_LDFLAGS += -flto
1012
endif
1113

12-
mingw32_CXXFLAGS=$(mingw32_CFLAGS)
13-
1414
mingw32_release_CFLAGS=-O2
1515
mingw32_release_CXXFLAGS=$(mingw32_release_CFLAGS)
1616

depends/hosts/netbsd.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
netbsd_CFLAGS=-pipe
1+
netbsd_CFLAGS=-pipe -std=$(C_STANDARD)
2+
netbsd_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
23

34
ifneq ($(LTO),)
45
netbsd_CFLAGS += -flto
6+
netbsd_CXXFLAGS += -flto
57
netbsd_LDFLAGS += -flto
68
endif
79

depends/hosts/openbsd.mk

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
openbsd_CFLAGS=-pipe
2-
openbsd_CXXFLAGS=$(openbsd_CFLAGS)
1+
openbsd_CFLAGS=-pipe -std=$(C_STANDARD)
2+
openbsd_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
33

44
ifneq ($(LTO),)
55
openbsd_CFLAGS += -flto
6+
openbsd_CXXFLAGS += -flto
67
openbsd_LDFLAGS += -flto
78
endif
89

depends/packages/bdb.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ $(package)_config_opts_netbsd=--with-pic
1515
$(package)_config_opts_openbsd=--with-pic
1616
$(package)_config_opts_android=--with-pic
1717
$(package)_cflags+=-Wno-error=implicit-function-declaration
18-
$(package)_cxxflags+=-std=c++17
1918
$(package)_cppflags_mingw32=-DUNICODE -D_UNICODE
2019
endef
2120

0 commit comments

Comments
 (0)