Page MenuHomeFreeBSD

Use default CLANG build options for little-endian ARM
ClosedPublic

Authored by emaste on May 12 2015, 6:45 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 9, 3:21 AM
Unknown Object (File)
Tue, Apr 9, 3:21 AM
Unknown Object (File)
Apr 2 2024, 8:42 PM
Unknown Object (File)
Apr 2 2024, 8:37 PM
Unknown Object (File)
Feb 20 2024, 11:59 AM
Unknown Object (File)
Dec 28 2023, 1:17 PM
Unknown Object (File)
Dec 28 2023, 1:16 PM
Unknown Object (File)
Dec 20 2023, 3:26 AM
Subscribers

Details

Summary

We previously disabled CLANG_FULL because it couldn't be built by the in-tree GCC. As of Clang 3.5 we cannot build any of the in-tree Clang with in-tree GCC, so there's no longer a reason to disable CLANG_FULL.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

emaste retitled this revision from to Use default CLANG build options for little-endian ARM.
emaste updated this object.
emaste edited the test plan for this revision. (Show Details)
emaste added reviewers: ian, andrew, dim.
dim edited edge metadata.

This is fine with me, but are there really no situations where this could make e.g. upgrading, or building from another branch more difficult? (Though OTOH people can always manually specify WITHOUT_CLANG_FULL...)

This revision is now accepted and ready to land.May 12 2015, 7:13 PM
In D2525#46594, @dim wrote:

This is fine with me, but are there really no situations where this could make e.g. upgrading, or building from another branch more difficult? (Though OTOH people can always manually specify WITHOUT_CLANG_FULL...)

Hmm. This was introduced relatively recently (review D1294), but I'm a bit unsure based on the comment there.

CLANG_FULL enables:

.if ${MK_CLANG_FULL} != "no"
CFLAGS+=        -DCLANG_ENABLE_ARCMT \
                -DCLANG_ENABLE_STATIC_ANALYZER
.endif # MK_CLANG_FULL

and

.if ${MK_CLANG_FULL} != "no"
_clangstaticanalyzer= \
        clangstaticanalyzerfrontend \
        clangstaticanalyzercheckers \
        clangstaticanalyzercore
_clangarcmigrate= \
        clangarcmigrate
.endif # MK_CLANG_FULL

but in-tree gcc is incapable of building any of clang 3.5.0+. Maybe the comment applied to a GCC port version?

In any case, I think there are very few users of FreeBSD/armbe, and they are certainly cross-compiling, probably from 10.1 or later.

andrew edited edge metadata.

What does CLANG_FULL get us that we don't have now?

How much time will this add to a native build? To a cross-build?

How many people will actually use the extra stuff this generates?

What I'm after here is the pain vs reward ratio for doing this. If it adds significant time to a build to get features that only a few developers and no end-users will find valuable, maybe we should just leave it as a thing the power users enable.

In D2525#46832, @ian wrote:

What does CLANG_FULL get us that we don't have now?

It adds the static analyzers and clangarcmigrate.

My point in this change is that these were disabled on LE arm due to build issues which no longer apply. If these are generally not of interest in "embedded" contexts we should have some sort of embedded knob, not per-arch defaults scattered about.

emaste edited edge metadata.

Rebase after rS284274 which switched ARMEB to Clang

This revision now requires review to proceed.Jun 13 2015, 2:51 PM
dim edited edge metadata.

Let's just remove the complicated logic now. If somebody really needs to bootstrap the tree using gcc, they can always set WITHOUT_CLANG_FULL manually.

This revision is now accepted and ready to land.Jun 13 2015, 6:34 PM
This revision was automatically updated to reflect the committed changes.