Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 01 Jan 2015 09:46:59 -0700
From:      Ian Lepore <ian@freebsd.org>
To:        lev@FreeBSD.org
Cc:        ports@FreeBSD.org, FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re: CFLAGS only for clang in mixed-compiler project?
Message-ID:  <1420130819.85983.2.camel@freebsd.org>
In-Reply-To: <54A56F56.60403@FreeBSD.org>
References:  <54A56F56.60403@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2015-01-01 at 19:01 +0300, Lev Serebryakov wrote:
>  I'm trying to update arm-eabi (microcontroller) cross-gcc port to
> latest version 4.9 and have one weird problem.
> 
>  Some part of gcc for arm (neon coprocessor machine description, to be
> precise) requires more than 256 nested parenthesis in version 4.9 (4.8
> doesn't have this problem). Due to this parenthesis madness clang
> needs "-fbracket-depth=1024" option. If I add this option to CFLAGS in
> environment variable, I have other problem. Later in build process gcc
> uses newly-built gcc (xgcc) to build library. And this gcc picks up
> "-fbracket-depth=1024" from environment and fails due to unknown option!
> 
>  How could I provide options only for clang but not for gcc?

Don't set it in the env, set it in a make variable.  The
devel/arm-none-eabi-gcc port (which builds a bare-metal arm cross
compiler and may be exactly what you need) has this:

.include <bsd.port.options.mk>

# The following is required for clang to bootstrap gcc.
.if ${COMPILER_TYPE} == clang
MAKE_ARGS+=	CXXFLAGS=-fbracket-depth=512
.endif

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1420130819.85983.2.camel>