$ c++ -v FreeBSD clang version 7.0.0 (branches/release_70 338892) (based on LLVM 7.0.0svn) Target: x86_64-unknown-freebsd12.0 Thread model: posix InstalledDir: /usr/bin $ make [...] checking whether the compiler supports ISO C++ standard library... no checking whether the compiler supports ios::binary... no checking whether C++ compiler is sufficient for Magick++... no (failed tests) [...] pkg-static: Unable to access file /wrkdirs/usr/ports/graphics/GraphicsMagick/work/stage/usr/local/bin/GraphicsMagick++-config:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/graphics/GraphicsMagick/work/stage/usr/local/include/GraphicsMagick/Magick++.h:No such file or directory [...] build log: https://ptpb.pw/KrTc $ echo '#include <fstream>' | g++7 -xc++ - -std=c++03 -nostdinc++ -isystem/usr/include/c++/v1 In file included from /usr/include/c++/v1/__locale:15:0, from /usr/include/c++/v1/ios:216, from /usr/include/c++/v1/ostream:138, from /usr/include/c++/v1/fstream:184, from <stdin>:1: /usr/include/c++/v1/string:811:35: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 basic_string(const _CharT* __s) { ^ /usr/include/c++/v1/string:821:62: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 basic_string(const _CharT* __s, const _Allocator& __a); ^ /usr/include/c++/v1/string:832:70: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 basic_string(size_type __n, _CharT __c, const _Allocator& __a); ^ /usr/include/c++/v1/string:843:75: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 const allocator_type& __a = allocator_type()); ^ /usr/include/c++/v1/string:847:45: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 explicit basic_string(const _Tp& __t); ^ /usr/include/c++/v1/string:851:72: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 explicit basic_string(const _Tp& __t, const allocator_type& __a); ^ /usr/include/c++/v1/string:874:43: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 basic_string& operator=(const _Tp& __t) ^
USES=compiler:gcc-c++11-lib where -std= < C++11 was broken by https://reviews.llvm.org/rL336132
Is there some progress on this issue?
(In reply to Antoine Brodin from comment #2) > Is there some progress on this issue? I've just tried "make configure" in the port, which is at r477008, and it ran without any errors. This is with clang700-import r338690: ===> Configuring for GraphicsMagick-1.3.30,1 configure: loading site script /share/dim/ports/Templates/config.site configuring GraphicsMagick 1.3.30 checking build system type... amd64-portbld-freebsd12.0 checking host system type... amd64-portbld-freebsd12.0 checking whether build environment is sane... yes checking for a BSD-compatible install... /usr/bin/install -c checking for a thread-safe mkdir -p... (cached) /bin/mkdir -p checking for gawk... (cached) /usr/bin/awk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking for style of include used by make... GNU checking for gcc... gcc7 [...] checking whether C++ compiler is sufficient for Magick++... yes and the port compiles to the end. Maybe this is because of sunpoet's recent update to 1.3.0? Jan's example test still fails, though, but I'm not sure if it is still relevant: $ echo '#include <fstream>' | g++7 -xc++ - -std=c++03 -nostdinc++ -isystem/usr/include/c++/v1 In file included from /usr/include/c++/v1/__locale:15:0, from /usr/include/c++/v1/ios:216, from /usr/include/c++/v1/ostream:138, from /usr/include/c++/v1/fstream:184, from <stdin>:1: /usr/include/c++/v1/string:811:35: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 basic_string(const _CharT* __s) { ^ /usr/include/c++/v1/string:821:62: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 basic_string(const _CharT* __s, const _Allocator& __a); ^ /usr/include/c++/v1/string:832:70: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 basic_string(size_type __n, _CharT __c, const _Allocator& __a); ^ /usr/include/c++/v1/string:843:75: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 const allocator_type& __a = allocator_type()); ^ /usr/include/c++/v1/string:847:45: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 explicit basic_string(const _Tp& __t); ^ /usr/include/c++/v1/string:851:72: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 explicit basic_string(const _Tp& __t, const allocator_type& __a); ^ /usr/include/c++/v1/string:874:43: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11 basic_string& operator=(const _Tp& __t) ^ This actually seems to be an issue in the <string> header, I'm checking it with upstream now.
(In reply to Dimitry Andric from comment #3) > I've just tried "make configure" in the port, > which is at r477008, and it ran without any errors. > This is with clang700-import r338690: FWIW, I have clang700-import from r338597 and GraphicsMagick still fails to build, see https://ptpb.pw/7La2
(In reply to Jan Beich from comment #4) > (In reply to Dimitry Andric from comment #3) > > I've just tried "make configure" in the port, > > which is at r477008, and it ran without any errors. > > This is with clang700-import r338690: > > FWIW, I have clang700-import from r338597 and GraphicsMagick still fails to > build, see https://ptpb.pw/7La2 Right, it's only in the install phase that it fails, due to it apparently not wanting to install any C++ headers or libraries. Maybe as a short-term fix we can undo r446932, which dialed down the C++ standard to C++03, specifically for a missing operator delete(void*, size_t) -- see bug 221065, bug 219486 et al. But this operator was already merged to stable/10 in base r321222, and it ended up in 10.4-RELEASE, so those problems are obsolete now. Meanwhile, I have submitted an upstream bug for the <string> issue here: https://bugs.llvm.org/show_bug.cgi?id=38964
@sunpoet : can you verify that the c++03 is no longer needed and remove it?
A commit references this bug: Author: sunpoet Date: Sun Oct 14 16:29:18 UTC 2018 New revision: 482063 URL: https://svnweb.freebsd.org/changeset/ports/482063 Log: Fix build with libc++ 7 PR: 230412 Reported by: jbeich Submitted by: dim Changes: head/graphics/GraphicsMagick/Makefile
Committed. Thanks!