Bug 36972 - gcc8-c++: compilation fails with -std=c++17
Summary: gcc8-c++: compilation fails with -std=c++17
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: gcc8-c++ (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Gleb F-Malinovskiy
QA Contact: qa-sisyphus
URL:
Keywords: patch, regression
Depends on:
Blocks:
 
Reported: 2019-07-04 10:49 MSK by Aleksei Nikiforov
Modified: 2019-10-09 18:40 MSK (History)
2 users (show)

See Also:


Attachments
main.cpp (174.92 KB, text/x-c++src)
2019-07-04 10:49 MSK, Aleksei Nikiforov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksei Nikiforov 2019-07-04 10:49:35 MSK
Created attachment 8176 [details]
main.cpp

При сборке приложения на C++, использующего boost, gcc8-c++ выдаёт ошибки там, где он не должен этого делать, при использовании флага -std=c++17.

Воспроизведение:
1. apt-get install gcc8-c++ boost-complete
2. gcc8-c++ main.cpp -std=c++17 -c -o main.o

Результат:
/usr/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp:466:67: error: template parameter ‘template<class T1, class T2, class T3> class F’
 template< template< typename T1, typename T2, typename T3 > class F, typename Tag >

/usr/include/boost/mpl/aux_/preprocessed/gcc/quote.hpp:64:8: error: redeclared here as ‘template<class P1, class P2, class P3> class F’
 struct quote3


Ожидаемый результат:
Успешная сборка исходного кода

Также данный код успешно собирается следующими командами:
gcc8-c++ main.cpp -std=c++14 -c -o main.o
gcc7-c++ main.cpp -std=c++17 -c -o main.o
clang++ main.cpp -std=c++17 -c -o main.o

Данная проблема проявляется при попытке собрать clickhouse с помощью gcc-8 вместо clang:
http://git.altlinux.org/people/darktemplar/packages/clickhouse.git

См. также:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926371
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926234

Применение данного патча из Debian исправляет проблему:
https://salsa.debian.org/toolchain-team/gcc/blob/gcc-8-debian/debian/patches/pr88419-revert.diff
Comment 1 Repository Robot 2019-08-06 10:47:00 MSK
gcc8-8.3.1-alt5 -> sisyphus:

Mon Aug 05 2019 Gleb F-Malinovskiy <glebfm@altlinux> 8.3.1-alt5
- Applied upstream fix for PR 89906 (closes: #36972).
- Removed versioning of lib{cc1,cc1plugin,cp1plugin} libraries
  (closes: #36046).

Tue May 07 2019 Dmitry V. Levin <ldv@altlinux> 8.3.1-alt4
- Updated to redhat/gcc-8-branch r270976 (Fedora gcc-8.3.1-4).
Comment 2 Aleksei Nikiforov 2019-08-07 11:07:51 MSK
С новым gcc собирается нормально.
Comment 3 Repository Robot 2019-10-09 18:28:06 MSK
gcc9-9.2.1-alt1 -> icarus:

* Tue Oct 08 2019 Gleb F-Malinovskiy <glebfm@altlinux> 9.2.1-alt1
- Updated to redhat/gcc-9-branch r274959.
- Synced with Fedora gcc 9.2.1-1 and Debian gcc-9 9.2.1-9.

* Mon Aug 05 2019 Gleb F-Malinovskiy <glebfm@altlinux> 8.3.1-alt5
- Applied upstream fix for PR 89906 (closes: #36972).
- Removed versioning of lib{cc1,cc1plugin,cp1plugin} libraries
  (closes: #36046).