# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

# override toolchain configuration defaults
[constants]
march = 'rv32imc' # don't enable bitmanip for now
default_extra_args = []
