GCC/gcc references in man src.conf output (as of head -r358510 anyway), more . . .

Mark Millard marklmi at yahoo.com
Tue Mar 10 04:33:13 UTC 2020

The following 2 references to GCC or gcc may not be intended
any more:

             CCACHE_CPP2 option is used for Clang but not GCC.

To be able to build the system, either gcc
             or clang bootstrap must be enabled unless an alternate compiler
             is provided via XCC.

(That is it for GCC/gcc.)

The WITH_BINUTILS is interesting in that for:

arm/armv6, arm/armv7,
             i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64,
             mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf,

the description would seem to imply the same result for
them as for WITHOUT_BINUTILS: as, objdump, and ld.bfd not
built and installed. Whatever the internal mechanism, I think
it would be clearer to list the above under WITHOUT_BINUTILS
for their default handling.

The text:

             Set to not build ELF Tool Chain tools (addr2line, nm, size,
             strings and strip) as part of the bootstrap process.  An
             alternate bootstrap tool chain must be provided.

gives no hint how to provide an alternate bootstrap tool chain
that has those programs.

The issue is somewhat wider in that only XCC and XLD are mentioned
anywhere. (For example, no XCXX, XCPP either.) Of course when the
C/C++ compiler command lines are used to run the linker the likes of
XLD do not help redirect what is attempted.

The text:

             Set to build LLVM target support for SPARC.  The LLVM_TARGET_ALL
             option should be used rather than this in most cases.

still is SPARC material.

As I remember, the text:

             Set to exclude build metadata (such as the build time, user, or
             host) from the kernel, boot loaders, and uname output, so that
             builds produce bit-for-bit identical output.

suggests more control than the option actually gives
(most of the time).

The text:

             Set to use the historical object directory format for build(7)
             targets.  For native-builds and builds done directly in sub-
             directories the format of ${MAKEOBJDIRPREFIX}/${.CURDIR} is used,
             while for cross-builds
             ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH}/${.CURDIR} is used.

             This option is transitional and will be removed before the 12.0
             release, at which time will be enabled permanently.

             This must be set in the environment, make command line, or
             /etc/src-env.conf, not /etc/src.conf.

mentions that the option was to be removed before 12.0 . (It also
says that the to-be-removed option will be enabled when removed.)

Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

More information about the freebsd-current mailing list