svn commit: r410612 - head/devel/libc++
Bryan Drewery
bdrewery at FreeBSD.org
Wed Mar 9 05:00:17 UTC 2016
On 3/8/2016 4:48 AM, John Marino wrote:
> Author: marino
> Date: Tue Mar 8 12:48:51 2016
> New Revision: 410612
> URL: https://svnweb.freebsd.org/changeset/ports/410612
>
> Log:
> devel/libc++: specific libcxxrt LIB_DEPENDS conditionally
>
> The libcxxrt was unconditionally specified, but pkg(8) would not
> register it on FreeBSD 10+ because the libcxxrt.so requirement of the
> specification was satisfied by the base libraries.
>
> As a result, Synth would rebuild the libc++ each time becaues there
> were more dependency requirements in the port Makefile than the resulting
> package, leading Synth to consider the package obsolete.
>
> Since there are already existence tests for setting flags, the solution
> is trivial: move LIB_DEPENDS definition inside the conditional blocks.
> The resulting package is the same everywhere, and Synth is happy too.
>
> PR: 207756
> Submitted by: Andrew Terekhov
> Discussed with: dim@, bapt@ (no conclusion, I fixed it myself)
>
> Modified:
> head/devel/libc++/Makefile
>
> Modified: head/devel/libc++/Makefile
> ==============================================================================
> --- head/devel/libc++/Makefile Tue Mar 8 11:20:23 2016 (r410611)
> +++ head/devel/libc++/Makefile Tue Mar 8 12:48:51 2016 (r410612)
> @@ -18,22 +18,21 @@ LICENSE_GROUP= MIT UIUC
> LICENSE_NAME_UIUC= University of Illinois/NCSA Open Source License
> LICENSE_PERMS_UIUC= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
>
> -LIB_DEPENDS= libcxxrt.so:${PORTSDIR}/devel/libcxxrt
> -
> USES+= cmake:outsource compiler:c++11-lang
> USE_LDCONFIG= yes
> LDFLAGS+= -L${LOCALBASE}/lib
>
> -.include <bsd.port.options.mk>
> -
> .if exists(/usr/lib/libcxxrt.so)
> CXXRT_INCS= /usr/include/c++/v1/
> CXXRT_LIB= /usr/lib/libcxxrt.so
> .else
> CXXRT_INCS= ${LOCALBASE}/include/cxxrt/
> CXXRT_LIB= ${LOCALBASE}/lib/libcxxrt.so
> +LIB_DEPENDS+= libcxxrt.so:${PORTSDIR}/devel/libcxxrt
This is a synth bug and should be reverted.
LIB_DEPENDS is already conditional on the specified library being
missing. The tool should only add the dependency if the library is not
present because that is the behavior of LIB_DEPENDS (and *_DEPENDS) in
ports without tools, meaning it is the intended behavior. This was
broken in portupgrade until r387621
(https://github.com/freebsd/portupgrade/issues/62), still broken in
portmaster (https://github.com/freebsd/portmaster/issues/44), and fine
in poudriere.
See the Poudriere code for this, it handles the issue by checking if the
library exists (in base) before adding it as an "expected" dependency
for a rebuild. CHECK_CHANGED_DEPS in common.sh.
> .endif
>
> +.include <bsd.port.options.mk>
> +
> CMAKE_ARGS= -DLIBCXX_CXX_ABI=libcxxrt -DLIBCXX_LIBCXXRT_INCLUDE_PATHS=${CXXRT_INCS}
>
> .if !defined(SVN_REV)
>
--
Regards,
Bryan Drewery
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-ports-all/attachments/20160308/2d274861/attachment.sig>
More information about the svn-ports-all
mailing list