Skip to content

Commit edd6d83

Browse files
committed
Merge bitcoin/bitcoin#27662: build: Bump minimum supported GCC to g++-9
fa953f1 build: Bump minimum supported GCC to g++-9 (MarcoFalke) fa69955 ci: Bump centos:stream8 to centos:stream9 (MarcoFalke) fa6a755 ci: Document the false positive error for g++-9 (MarcoFalke) Pull request description: It is a bit frustrating to write valid C++ code only to realize that g++-8 fails to parse it later on. The only non-EOL operating system still shipping with g++-8 is CentOS Stream 8. I think it is reasonable for users of affected Linux distributions to: * Upgrade their operating system, or compiler to a supported version. * Alternatively, stay with a previous release of Bitcoin Core as long as it is supported. Fixes bitcoin/bitcoin#27537 ACKs for top commit: hebasto: ACK fa953f1 fanquake: ACK fa953f1 Tree-SHA512: b9cf7e763d3071e1e008c5010de19601d4773afe46d58cf869d3f59285c53240c739a1cd7235a5525ede1bbdf6b6cb6fb091c8fc314864a28d5b27a400bb7632
2 parents 6cc136b + fa953f1 commit edd6d83

File tree

10 files changed

+14
-58
lines changed

10 files changed

+14
-58
lines changed

.cirrus.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,11 @@ task:
217217
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
218218

219219
task:
220-
name: '32-bit + dash [gui] [CentOS 8]'
220+
name: '32-bit + dash [gui] [CentOS 9]'
221221
<< : *GLOBAL_TASK_TEMPLATE
222222
container:
223223
docker_arguments:
224-
CI_IMAGE_NAME_TAG: quay.io/centos/centos:stream8
224+
CI_IMAGE_NAME_TAG: quay.io/centos/centos:stream9
225225
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
226226
# For faster CI feedback, immediately schedule one task that runs all tests
227227
<< : *CREDITS_TEMPLATE

build-aux/m4/l_filesystem.m4

Lines changed: 0 additions & 38 deletions
This file was deleted.

ci/test/00_setup_env_i686_centos.sh

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ export LC_ALL=C.UTF-8
88

99
export HOST=i686-pc-linux-gnu
1010
export CONTAINER_NAME=ci_i686_centos
11-
export CI_IMAGE_NAME_TAG="quay.io/centos/centos:stream8"
12-
# Use minimum supported python3.8 and gcc-8, see doc/dependencies.md
13-
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python38 python38-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison"
11+
export CI_IMAGE_NAME_TAG="quay.io/centos/centos:stream9"
12+
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux"
1413
export PIP_PACKAGES="pyzmq"
1514
export GOAL="install"
16-
export NO_WERROR=1 # GCC 8
15+
export NO_WERROR=1 # Suppress error: #warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform [-Werror=cpp]
1716
export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-reduce-exports"
1817
export CONFIG_SHELL="/bin/dash"
19-
export TEST_RUNNER_ENV="LC_ALL=en_US.UTF-8"

ci/test/00_setup_env_native_qt5.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ export LC_ALL=C.UTF-8
88

99
export CONTAINER_NAME=ci_native_qt5
1010
export CI_IMAGE_NAME_TAG="ubuntu:20.04"
11-
# Use minimum supported python3.8 and gcc-8 (or best-effort gcc-9), see doc/dependencies.md
11+
# Use minimum supported python3.8 and gcc-9, see doc/dependencies.md
1212
export PACKAGES="gcc-9 g++-9 python3-zmq qtbase5-dev qttools5-dev-tools libdbus-1-dev libharfbuzz-dev"
1313
export DEP_OPTS="NO_QT=1 NO_UPNP=1 NO_NATPMP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1 CC=gcc-9 CXX=g++-9"
1414
export TEST_RUNNER_EXTRA="--previous-releases --coverage --extended --exclude feature_dbcrash" # Run extended tests so that coverage does not fail, but exclude the very slow dbcrash
1515
export RUN_UNIT_TESTS_SEQUENTIAL="true"
1616
export RUN_UNIT_TESTS="false"
1717
export GOAL="install"
18-
export NO_WERROR=1
18+
export NO_WERROR=1 # -Werror=maybe-uninitialized
1919
export DOWNLOAD_PREVIOUS_RELEASES="true"
2020
export BITCOIN_CONFIG="--enable-zmq --with-libs=no --with-gui=qt5 --enable-reduce-exports \
2121
--enable-debug CFLAGS=\"-g0 -O2 -funsigned-char\" CXXFLAGS=\"-g0 -O2 -funsigned-char\""

ci/test/01_base_install.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ if [ -n "$DPKG_ADD_ARCH" ]; then
1818
fi
1919

2020
if [[ $CI_IMAGE_NAME_TAG == *centos* ]]; then
21-
${CI_RETRY_EXE} bash -c "dnf -y install epel-release"
22-
${CI_RETRY_EXE} bash -c "dnf -y --allowerasing install $CI_BASE_PACKAGES $PACKAGES"
21+
bash -c "dnf -y install epel-release"
22+
bash -c "dnf -y --allowerasing install $CI_BASE_PACKAGES $PACKAGES"
2323
elif [ "$CI_USE_APT_INSTALL" != "no" ]; then
2424
if [[ -n "${APPEND_APT_SOURCES_LIST}" ]]; then
2525
echo "${APPEND_APT_SOURCES_LIST}" >> /etc/apt/sources.list

ci/test/06_script_b.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ fi
5252

5353
if [ -z "$NO_DEPENDS" ]; then
5454
if [[ $CI_IMAGE_NAME_TAG == *centos* ]]; then
55-
SHELL_OPTS="LC_ALL=en_US.UTF-8 CONFIG_SHELL=/bin/dash"
55+
SHELL_OPTS="CONFIG_SHELL=/bin/dash"
5656
else
5757
SHELL_OPTS="CONFIG_SHELL="
5858
fi

configure.ac

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,6 @@ else
115115
AX_CXX_COMPILE_STDCXX([20], [noext], [mandatory])
116116
fi
117117

118-
dnl check if additional link flags are required for std::filesystem
119-
CHECK_FILESYSTEM
120-
121118
dnl Unless the user specified OBJCXX, force it to be the same as CXX. This ensures
122119
dnl that we get the same -std flags for both.
123120
m4_ifdef([AC_PROG_OBJCXX],[

doc/dependencies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ You can find installation instructions in the `build-*.md` file for your platfor
99
| [Autoconf](https://www.gnu.org/software/autoconf/) | [2.69](https://github.com/bitcoin/bitcoin/pull/17769) |
1010
| [Automake](https://www.gnu.org/software/automake/) | [1.13](https://github.com/bitcoin/bitcoin/pull/18290) |
1111
| [Clang](https://clang.llvm.org) | [10.0](https://github.com/bitcoin/bitcoin/pull/27682) |
12-
| [GCC](https://gcc.gnu.org) | [8.1](https://github.com/bitcoin/bitcoin/pull/23060) |
12+
| [GCC](https://gcc.gnu.org) | [9.1](https://github.com/bitcoin/bitcoin/pull/27662) |
1313
| [Python](https://www.python.org) (scripts, tests) | [3.8](https://github.com/bitcoin/bitcoin/pull/27483) |
1414
| [systemtap](https://sourceware.org/systemtap/) ([tracing](tracing.md))| N/A |
1515

src/qt/addresstablemodel.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,14 @@ struct AddressTableEntryLessThan
5353
};
5454

5555
/* Determine address type from address purpose */
56-
static AddressTableEntry::Type translateTransactionType(wallet::AddressPurpose purpose, bool isMine)
56+
constexpr AddressTableEntry::Type translateTransactionType(wallet::AddressPurpose purpose, bool isMine)
5757
{
5858
// "refund" addresses aren't shown, and change addresses aren't returned by getAddresses at all.
5959
switch (purpose) {
6060
case wallet::AddressPurpose::SEND: return AddressTableEntry::Sending;
6161
case wallet::AddressPurpose::RECEIVE: return AddressTableEntry::Receiving;
6262
case wallet::AddressPurpose::REFUND: return AddressTableEntry::Hidden;
63-
// No default case to allow for compiler to warn
64-
}
63+
} // no default case, so the compiler can warn about missing cases
6564
assert(false);
6665
}
6766

src/txrequest.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ struct Announcement {
6969
const bool m_is_wtxid : 1;
7070

7171
/** What state this announcement is in.
72-
* This is a uint8_t instead of a State to silence a GCC warning in versions prior to 8.4 and 9.3.
72+
* This is a uint8_t instead of a State to silence a GCC warning in versions prior to 9.3.
7373
* See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61414 */
7474
uint8_t m_state : 3;
7575

0 commit comments

Comments
 (0)