-
Notifications
You must be signed in to change notification settings - Fork 39
Open
Description
Compiling enigma (latest git source as of yesterday) on macOS 12 fails:
main.cc:885:77: error: no member named 'make_unique' in namespace 'std'
nls::theDictionaryManager.reset(new tinygettext::DictionaryManager(std::make_unique<nls::TinyGetTextFileSystem>(), "UTF-8"));
~~~~~^
main.cc:885:115: error: expected '(' for function-style cast or type construction
nls::theDictionaryManager.reset(new tinygettext::DictionaryManager(std::make_unique<nls::TinyGetTextFileSystem>(), "UTF-8"));
~~~~~~~~~~~~~~~~~~~~~~~~~~^
main.cc:885:117: error: expected expression
nls::theDictionaryManager.reset(new tinygettext::DictionaryManager(std::make_unique<nls::TinyGetTextFileSystem>(), "UTF-8"));
^
This is because the configure script has determined that compiler flags should include -std=gnu++11 -std=c++14 -std=gnu++11, putting the compiler into C++11 mode even though C++14 mode is needed to use std::make_unique:
checking for ccache /usr/bin/clang++ option to enable C++11 features... -std=gnu++11
checking dependency style of ccache /usr/bin/clang++ -std=gnu++11... gcc3
checking whether ccache /usr/bin/clang++ -std=gnu++11 supports C++14 features with -std=c++14... yes
checking for gcc... (cached) ccache /usr/bin/clang
checking whether the compiler supports GNU C... (cached) yes
checking whether ccache /usr/bin/clang accepts -g... (cached) yes
checking for ccache /usr/bin/clang option to enable C11 features... (cached) none needed
checking whether ccache /usr/bin/clang understands -c and -o together... (cached) yes
checking dependency style of ccache /usr/bin/clang... (cached) gcc3
checking whether the compiler supports GNU C++... (cached) yes
checking whether ccache /usr/bin/clang++ -std=gnu++11 -std=c++14 accepts -g... (cached) yes
checking for ccache /usr/bin/clang++ -std=gnu++11 -std=c++14 option to enable C++11 features... (cached) -std=gnu++11
checking dependency style of ccache /usr/bin/clang++ -std=gnu++11 -std=c++14 -std=gnu++11... (cached) gcc3
If I manually put -std=c++14 in CXXFLAGS before configuring, the build succeeds since configure then determines:
checking for ccache /usr/bin/clang++ option to enable C++11 features... none needed
I used ./autogen.sh prior to running ./configure and make. I am using:
% autoconf --version
autoconf (GNU Autoconf) 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>, <https://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David J. MacKenzie and Akim Demaille.
% automake --version
automake (GNU automake) 1.18.1
Features: subsecond-mtime
Copyright (C) 2025 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later
<https://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Tom Tromey <tromey@redhat.com>
and Alexandre Duret-Lutz <adl@gnu.org>.
The problem does not affect the source release of enigma 1.30 since its configure script was generated with an older autoconf that doesn't check for how to enable C++11 mode.
Metadata
Metadata
Assignees
Labels
No labels