On 31 Jan, Jan Beich wrote:
> Don Lewis <truck...@freebsd.org> writes:
> 
>> PORTNAME=    junk
>> PORTVERSION= 0.0.0
>> CATEGORIES=  devel
>> DISTFILES=
>>
>> MAINTAINER=  truck...@freebsd.org
>> COMMENT=     junk
>>
>> USE_GCC=     4.9+
>>
>> .include <bsd.port.pre.mk>
>>
>> post-patch:
>>      echo CXX=${CXX}
>> .if ${CXX} == g++49
> 
> This idiom may lead to crashes. According to the wiki[1] mixing
> libstdc++ and libc++ is only supported when both are linked against
> libcxxrt. lang/gcc by default use libsupc++, so you'd have to add

Yeah, been there, done that.  I found this out firsthand on FreeBSD 10
when I pulled in a dependency that was compiled with clang.

>   USES=   compiler:gcc-c++11-lib
> 
> to force the port use devel/libc++.

At least for now I'm happy to stick with libstdc++.  The code currently
doesn't even compile with clang, hence USES_GCC=yes.

If I USES=           compiler:gcc-c++11-lib
> Also, the following wouldn't work
> 
>   .if ${CHOSEN_COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} == 49
> 
> because COMPILER_VERSION or COMPILER_FEATURES are evaluated against
> COMPILER_TYPE, not CHOSEN_COMPILER_TYPE.

Yup, that appears to be the case.

> [1] 
> https://wiki.freebsd.org/NewC++Stack#Mixing_Libraries_using_Libc.2B-.2B-_and_Libstdc.2B-.2B-

USES=compiler:gcc-c++11-lib allows me to force GCC, but it looks like I
always get the default version from ports and USE_GCC is ignored.  CXX
is still not updated early enough.

PORTNAME=       junk
PORTVERSION=    0.0.0
CATEGORIES=     devel
DISTFILES=

MAINTAINER=     truck...@freebsd.org
COMMENT=        junk

USES=           compiler:gcc-c++11-lib

.include <bsd.port.pre.mk>

post-patch:
        @echo CXX=${CXX}
        @echo GCC_DEFAULT=${GCC_DEFAULT}
        @echo CHOSEN_COMPILER_TYPE=${CHOSEN_COMPILER_TYPE}
.if ${CXX} == g++48
        @echo g++48 was detected
.endif
.if ${CXX} == c++
        @echo .if thinks CXX is still clang
.endif

.include <bsd.port.post.mk>


# make patch
===>  Patching for junk-0.0.0
CXX=g++48
GCC_DEFAULT=4.8
CHOSEN_COMPILER_TYPE=gcc
.if thinks CXX is still clang

_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to