[Bug 271475] security/nss: investigate dropping binutils

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 11 Jun 2024 00:54:42 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271475

--- Comment #4 from Jan Beich <jbeich@FreeBSD.org> ---
(In reply to Marcin Cieślak from comment #3)
${CC} is your assembler when using Clang (-integrated-as is enabled by
default). Unlike GCC it doesn't call an external program and can compile *.s
(GNU assembly syntax) directly.

Symlinking "as" to clang unlikely to work due to incompatible CLI options.
Invoking Clang assembler directly is possible but discouraged.

$ cc -cc1as -help
OVERVIEW: Clang Integrated Assembler

USAGE: clang -cc1as [options] file...

OPTIONS:
  -as-secure-log-file <value>
                          Emit .secure_log_unique directives to this filename.
  -compress-debug-sections=<value>
                          DWARF debug sections compression type
  -darwin-target-variant-sdk-version=<value>
                          The version of darwin target variant SDK used for
compilation
  -darwin-target-variant-triple <value>
                          Specify the darwin target variant triple
  -debug-info-macro       Emit macro debug information
  -default-function-attr <value>
                          Apply given attribute to all functions
  -defsym <value>         Define a value for a symbol
  -dwarf-debug-flags <value>
                          The string to embed in the Dwarf debug flags record.
  -dwarf-debug-producer <value>
                          The string to embed in the Dwarf debug AT_producer
record.
  -fbasic-block-sections=<value>
                          Place each function's basic blocks in unique sections
(ELF Only)
  -fcoverage-compilation-dir=<value>
                          The compilation directory to embed in the coverage
mapping.
  -fdebug-compilation-dir=<value>
                          The compilation directory to embed in the debug info
  -fdebug-prefix-map=<old>=<new>
                          For paths in debug info, remap directory <old> to
<new>. If multiple options match a path, the last option wins
  -fembed-bitcode=<option>
                          Embed LLVM bitcode
  -femit-compact-unwind-non-canonical
                          Try emitting Compact-Unwind for non-canonical
entries. Maybe overriden by other constraints
  -femit-dwarf-unwind=<value>
                          When to emit DWARF unwind (EH frame) info
  -filetype <value>       Specify the output file type ('asm', 'null', or
'obj')
  -fno-math-builtin       Disable implicit builtin knowledge of math functions
  -fno-use-ctor-homing    Don't use constructor homing for debug info
  -fswift-async-fp=<option>
                          Control emission of Swift async extended frame info
  -fuse-ctor-homing       Use constructor homing if we are using limited debug
info already
  -gcodeview              Generate CodeView debug information
  -gdwarf32               Enables DWARF32 format for ELF binaries, if debug
information emission is enabled.
  -gdwarf64               Enables DWARF64 format for ELF binaries, if debug
information emission is enabled.
  -help                   Display available options
  -I <dir>                Add directory to the end of the list of include
search paths
  -main-file-name <value> Main file name to use for debug info and source if
missing
  -massembler-fatal-warnings
                          Make assembler warnings fatal
  -massembler-no-warn     Make assembler not emit warnings
  -mincremental-linker-compatible
                          (integrated-as) Emit an object file which can be used
with an incremental linker
  -mllvm <value>          Additional arguments to forward to LLVM's option
processing
  -mno-type-check         Don't perform type checking of the assembly code
(wasm only)
  -mnoexecstack           Mark the file as not needing an executable stack
  -mrelax-all             (integrated-as) Relax all machine instructions
  -mrelax-relocations=no  Disable x86 relax relocations
  -mrelocation-model <value>
                          The relocation model to use
  -msave-temp-labels      Save temporary labels in the symbol table. Note this
may change .s semantics and shouldn't generally be used on compiler-generated
code.
  -n                      Don't automatically start assembly file with a text
section
  -object-file-name=<file>
                          Set the output <file> for debug infos
  -output-asm-variant <value>
                          Select the asm variant index to use for output
  -o <file>               Write output to <file>
  -record-command-line <value>
                          The string to embed in the .LLVM.command.line
section.
  -show-encoding          Show instruction encoding information in
transliterate mode
  -show-inst              Show internal instruction representation in
transliterate mode
  -split-dwarf-output <value>
                          File name to use for split dwarf debug info output
  -target-abi <value>     Target a particular ABI type
  -target-cpu <value>     Target a specific cpu type
  -target-feature <value> Target specific attributes
  -target-sdk-version=<value>
                          The version of target SDK used for compilation
  -triple <value>         Specify target triple (e.g. i686-apple-darwin9)
  -tune-cpu <value>       Tune for a specific cpu type
  -version                Print the compiler version

-- 
You are receiving this mail because:
You are the assignee for the bug.