From owner-freebsd-ports@freebsd.org Wed Jul 10 19:01:51 2019 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2851615E0693 for ; Wed, 10 Jul 2019 19:01:51 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id B79ED6CA32 for ; Wed, 10 Jul 2019 19:01:50 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 7A45A15E0691; Wed, 10 Jul 2019 19:01:50 +0000 (UTC) Delivered-To: ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 68C4C15E0690 for ; Wed, 10 Jul 2019 19:01:50 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 10AA96CA2F; Wed, 10 Jul 2019 19:01:50 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1354) id EFC99B268; Wed, 10 Jul 2019 19:01:49 +0000 (UTC) From: Jan Beich To: Yuri Cc: "ports\@freebsd.org" Subject: Re: 12.0-RELEASE-p7 doesn't contain std::filesystem that has been added to 12.0-STABLE some time later References: <1eac89d9-babe-7069-8c4b-2fbe53234fcd@rawbw.com> <9080c5f5-9d0c-2086-bd2c-57c409fffe3a@rawbw.com> Date: Wed, 10 Jul 2019 21:01:46 +0200 In-Reply-To: <9080c5f5-9d0c-2086-bd2c-57c409fffe3a@rawbw.com> (yuri@rawbw.com's message of "Wed, 10 Jul 2019 11:23:15 -0700") Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Rspamd-Queue-Id: 10AA96CA2F X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.91 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.91)[-0.914,0]; ASN(0.00)[asn:11403, ipnet:96.47.64.0/20, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jul 2019 19:01:51 -0000 Yuri writes: > On 2019-07-10 07:19, Jan Beich wrote: > >> C++ example: >> >> #if __cplusplus >= 201703L && __has_include() >> #include >> #else >> #include >> namespace std { >> namespace filesystem = experimental::filesystem; >> } >> #endif >> >> Makefile example: >> >> .if exists(/usr/lib/libc++fs.a) >> LIBS+= -lc++fs >> .elif exists(/usr/lib/libc++experimental.a) >> # XXX Remove after FreeBSD 12.0 EOL >> LIBS+= -lc++experimental >> .else >> # XXX Remove after FreeBSD 11.2 EOL >> USE_GCC= yes >> LIBS+= -lstdc++fs >> .endif > > > This helps with locating the header/library, but it fails to compile > in poudriere on 12.0-RELEASE-p7: > > x.cpp:213:15: error: no member named 'is_symlink' in > 'std::experimental::filesystem::v1::directory_entry' > if (entry.is_symlink()) > ~~~~~ ^ Convert "entry.is_symlink()" to "std::filesystem::is_symlink(entry)" > It looks like 12.0-RELEASE-p7 is technically broken, because it > doesn't include is_symlink(). is_symlink() exists but not as a member function of directory_entry under std::experimental namespace. Same is true even for newer versions of libc++ or libstdc++.