RISC-V: Add --with-cmodel configure option
Checks
Context |
Check |
Description |
rivoscibot/toolchain-ci-rivos-lint |
warning
|
Lint failed
|
rivoscibot/toolchain-ci-rivos-apply-patch |
success
|
Patch applied
|
rivoscibot/toolchain-ci-rivos-build--newlib-rv64gcv-lp64d-multilib |
success
|
Build passed
|
rivoscibot/toolchain-ci-rivos-build--linux-rv64gc_zba_zbb_zbc_zbs-lp64d-multilib |
success
|
Build passed
|
rivoscibot/toolchain-ci-rivos-build--linux-rv64gcv-lp64d-multilib |
success
|
Build passed
|
rivoscibot/toolchain-ci-rivos-build--newlib-rv64gc-lp64d-non-multilib |
success
|
Build passed
|
rivoscibot/toolchain-ci-rivos-build--linux-rv64gc-lp64d-non-multilib |
success
|
Build passed
|
rivoscibot/toolchain-ci-rivos-test |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_build--master-arm |
fail
|
Build failed
|
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 |
fail
|
Build failed
|
Commit Message
Sometimes we want to use default cmodel other than medlow. Add a GCC
configure option for that.
gcc/ChangeLog:
* config.gcc (riscv*-*-*): Add support for --with-cmodel configure option.
* config/riscv/riscv.h (TARGET_RISCV_DEFAULT_CMODEL): Define default cmodel.
* configure: Regenerate.
* configure.ac: Add --with-cmodel configure option.
* doc/install.texi: Document --with-cmodel configure option.
* doc/invoke.texi (-mcmodel): Mention --with-cmodel configure option.
---
gcc/config.gcc | 19 +++++++++++++++++--
gcc/config/riscv/riscv.h | 2 ++
gcc/configure | 15 +++++++++++++--
gcc/configure.ac | 5 +++++
gcc/doc/install.texi | 4 ++++
gcc/doc/invoke.texi | 6 ++++--
6 files changed, 45 insertions(+), 6 deletions(-)
Comments
compact code mode is our downstream stuffs, so...it should drop it from the
patch
Hau Hsu <hau.hsu@sifive.com> 於 2024年8月2日 週五 12:17 寫道:
> Sometimes we want to use default cmodel other than medlow. Add a GCC
> configure option for that.
>
> gcc/ChangeLog:
>
> * config.gcc (riscv*-*-*): Add support for --with-cmodel configure
> option.
> * config/riscv/riscv.h (TARGET_RISCV_DEFAULT_CMODEL): Define default
> cmodel.
> * configure: Regenerate.
> * configure.ac: Add --with-cmodel configure option.
> * doc/install.texi: Document --with-cmodel configure option.
> * doc/invoke.texi (-mcmodel): Mention --with-cmodel configure option.
> ---
> gcc/config.gcc | 19 +++++++++++++++++--
> gcc/config/riscv/riscv.h | 2 ++
> gcc/configure | 15 +++++++++++++--
> gcc/configure.ac | 5 +++++
> gcc/doc/install.texi | 4 ++++
> gcc/doc/invoke.texi | 6 ++++--
> 6 files changed, 45 insertions(+), 6 deletions(-)
>
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index a36dd1bcbc6..a4537d4b940 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -4723,7 +4723,7 @@ case "${target}" in
> ;;
>
> riscv*-*-*)
> - supported_defaults="abi arch tune riscv_attribute isa_spec
> tls"
> + supported_defaults="abi arch tune riscv_attribute isa_spec
> tls cmodel"
>
> case "${target}" in
> riscv-* | riscv32*) xlen=32 ;;
> @@ -4879,6 +4879,21 @@ case "${target}" in
> exit 1
> esac
> fi
> +
> + # Handle --with-cmodel.
> + if test "x${with_cmodel}" != xdefault; then
> + # Make sure --with-cmodel is valid. If it was not
> specified,
> + # use medlow as the default value.
> + case "${with_cmodel}" in
> + medlow | medany | compact)
> + ;;
> + *)
> + echo "invalid option for --with-cmodel:
> '${with_cmodel}', available values are 'medlow' 'medany' 'compact'" 1>&2
> + exit 1
> + ;;
> + esac
> + tm_defines="${tm_defines}
> TARGET_RISCV_DEFAULT_CMODEL=${with_cmodel}"
> + fi
> ;;
>
> mips*-*-*)
> @@ -6071,7 +6086,7 @@ case ${target} in
> esac
>
> t=
> -all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32
> tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt
> synci tls lxc1-sxc1 madd4 isa_spec compact-branches msa"
> +all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32
> tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt
> synci tls lxc1-sxc1 madd4 isa_spec compact-branches msa cmodel"
> for option in $all_defaults
> do
> eval "val=\$with_"`echo $option | sed s/-/_/g`
> diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
> index 6f040011864..68173ebccb4 100644
> --- a/gcc/config/riscv/riscv.h
> +++ b/gcc/config/riscv/riscv.h
> @@ -65,6 +65,7 @@ extern const char *riscv_arch_help (int argc, const char
> **argv);
> --with-tune is ignored if -mtune or -mcpu is specified.
> --with-isa-spec is ignored if -misa-spec is specified.
> --with-tls is ignored if -mtls-dialect is specified.
> + --with-cmodel is ignored if -mcmodel is specified.
>
> But using default -march/-mtune value if -mcpu don't have valid
> option. */
> #define OPTION_DEFAULT_SPECS \
> @@ -77,6 +78,7 @@ extern const char *riscv_arch_help (int argc, const char
> **argv);
> {"abi", "%{!mabi=*:-mabi=%(VALUE)}" }, \
> {"isa_spec", "%{!misa-spec=*:-misa-spec=%(VALUE)}" },
> \
> {"tls", "%{!mtls-dialect=*:-mtls-dialect=%(VALUE)}"}, \
> + {"cmodel", "%{!mcmodel=*:-mcmodel=%(VALUE)}" }, \
>
> #ifdef IN_LIBGCC2
> #undef TARGET_64BIT
> diff --git a/gcc/configure b/gcc/configure
> index 557ea5fa3ac..826caf8dc2c 100755
> --- a/gcc/configure
> +++ b/gcc/configure
> @@ -1000,6 +1000,7 @@ with_changes_root_url
> enable_languages
> with_multilib_list
> with_multilib_generator
> +with_cmodel
> with_zstd
> with_zstd_include
> with_zstd_lib
> @@ -1880,6 +1881,7 @@ Optional Packages:
> SH and x86-64 only)
> --with-multilib-generator
> Multi-libs configuration string (RISC-V only)
> + --with-cmodel Code model configuration string (RISC-V only)
> --with-zstd=PATH specify prefix directory for installed zstd
> library.
> Equivalent to --with-zstd-include=PATH/include
> plus
> --with-zstd-lib=PATH/lib
> @@ -8381,6 +8383,15 @@ else
> fi
>
>
> +
> +# Check whether --with-cmodel was given.
> +if test "${with_cmodel+set}" = set; then :
> + withval=$with_cmodel; :
> +else
> + with_cmodel=medlow
> +fi
> +
> +
> # -------------------------
> # Checks for other programs
> # -------------------------
> @@ -21406,7 +21417,7 @@ else
> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
> lt_status=$lt_dlunknown
> cat > conftest.$ac_ext <<_LT_EOF
> -#line 21409 "configure"
> +#line 21420 "configure"
> #include "confdefs.h"
>
> #if HAVE_DLFCN_H
> @@ -21512,7 +21523,7 @@ else
> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
> lt_status=$lt_dlunknown
> cat > conftest.$ac_ext <<_LT_EOF
> -#line 21515 "configure"
> +#line 21526 "configure"
> #include "confdefs.h"
>
> #if HAVE_DLFCN_H
> diff --git a/gcc/configure.ac b/gcc/configure.ac
> index eaa01d0d7e5..1339bb2ba3b 100644
> --- a/gcc/configure.ac
> +++ b/gcc/configure.ac
> @@ -1212,6 +1212,11 @@ AC_ARG_WITH(multilib-generator,
> :,
> with_multilib_generator=default)
>
> +AC_ARG_WITH(cmodel,
> +[AS_HELP_STRING([--with-cmodel], [Code model configuration string (RISC-V
> only)])],
> +:,
> +with_cmodel=medlow)
> +
> # -------------------------
> # Checks for other programs
> # -------------------------
> diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
> index 4973f195daf..53f8dd21e37 100644
> --- a/gcc/doc/install.texi
> +++ b/gcc/doc/install.texi
> @@ -1519,6 +1519,10 @@ Use big endian by default. Provide a multilib for
> little endian.
> Use little endian by default. Provide a multilib for big endian.
> @end table
>
> +@item --with-cmodel=@var{cmodel}
> +Specify what code model to use by default.
> +Currently only implemented for riscv*-*-*.
> +
> @item --enable-threads
> Specify that the target
> supports threads. This affects the Objective-C compiler and runtime
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 54ecd9a00eb..f219cd3db19 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -31285,8 +31285,10 @@ element-misaligned vector memory access.
> @item -mcmodel=medlow
> Generate code for the medium-low code model. The program and its
> statically
> defined symbols must lie within a single 2 GiB address range and must lie
> -between absolute addresses @minus{}2 GiB and +2 GiB. Programs can be
> -statically or dynamically linked. This is the default code model.
> +between absolute addresses @minus{}2 GiB and +2 GiB. Programs can be
> statically
> +or dynamically linked. This is the default code model unless GCC has been
> +configured with @option{--with-cmodel=} specifying a different default
> code
> +model.
>
> @opindex mcmodel=medany
> @item -mcmodel=medany
> --
> 2.39.3
>
>
Oh sorry. Sent v2 and replaced compact code model with large code model.
Hau Hsu
> On Aug 2, 2024, at 12:32 PM, Kito Cheng <kito.cheng@gmail.com> wrote:
>
> compact code mode is our downstream stuffs, so...it should drop it from the patch
>
>
> Hau Hsu <hau.hsu@sifive.com <mailto:hau.hsu@sifive.com>> 於 2024年8月2日 週五 12:17 寫道:
>> Sometimes we want to use default cmodel other than medlow. Add a GCC
>> configure option for that.
>>
>> gcc/ChangeLog:
>>
>> * config.gcc (riscv*-*-*): Add support for --with-cmodel configure option.
>> * config/riscv/riscv.h (TARGET_RISCV_DEFAULT_CMODEL): Define default cmodel.
>> * configure: Regenerate.
>> * configure.ac <http://configure.ac/>: Add --with-cmodel configure option.
>> * doc/install.texi: Document --with-cmodel configure option.
>> * doc/invoke.texi (-mcmodel): Mention --with-cmodel configure option.
>> ---
>> gcc/config.gcc | 19 +++++++++++++++++--
>> gcc/config/riscv/riscv.h | 2 ++
>> gcc/configure | 15 +++++++++++++--
>> gcc/configure.ac <http://configure.ac/> | 5 +++++
>> gcc/doc/install.texi | 4 ++++
>> gcc/doc/invoke.texi | 6 ++++--
>> 6 files changed, 45 insertions(+), 6 deletions(-)
>>
>> diff --git a/gcc/config.gcc b/gcc/config.gcc
>> index a36dd1bcbc6..a4537d4b940 100644
>> --- a/gcc/config.gcc
>> +++ b/gcc/config.gcc
>> @@ -4723,7 +4723,7 @@ case "${target}" in
>> ;;
>>
>> riscv*-*-*)
>> - supported_defaults="abi arch tune riscv_attribute isa_spec tls"
>> + supported_defaults="abi arch tune riscv_attribute isa_spec tls cmodel"
>>
>> case "${target}" in
>> riscv-* | riscv32*) xlen=32 ;;
>> @@ -4879,6 +4879,21 @@ case "${target}" in
>> exit 1
>> esac
>> fi
>> +
>> + # Handle --with-cmodel.
>> + if test "x${with_cmodel}" != xdefault; then
>> + # Make sure --with-cmodel is valid. If it was not specified,
>> + # use medlow as the default value.
>> + case "${with_cmodel}" in
>> + medlow | medany | compact)
>> + ;;
>> + *)
>> + echo "invalid option for --with-cmodel: '${with_cmodel}', available values are 'medlow' 'medany' 'compact'" 1>&2
>> + exit 1
>> + ;;
>> + esac
>> + tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_CMODEL=${with_cmodel}"
>> + fi
>> ;;
>>
>> mips*-*-*)
>> @@ -6071,7 +6086,7 @@ case ${target} in
>> esac
>>
>> t=
>> -all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4 isa_spec compact-branches msa"
>> +all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4 isa_spec compact-branches msa cmodel"
>> for option in $all_defaults
>> do
>> eval "val=\$with_"`echo $option | sed s/-/_/g`
>> diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
>> index 6f040011864..68173ebccb4 100644
>> --- a/gcc/config/riscv/riscv.h
>> +++ b/gcc/config/riscv/riscv.h
>> @@ -65,6 +65,7 @@ extern const char *riscv_arch_help (int argc, const char **argv);
>> --with-tune is ignored if -mtune or -mcpu is specified.
>> --with-isa-spec is ignored if -misa-spec is specified.
>> --with-tls is ignored if -mtls-dialect is specified.
>> + --with-cmodel is ignored if -mcmodel is specified.
>>
>> But using default -march/-mtune value if -mcpu don't have valid option. */
>> #define OPTION_DEFAULT_SPECS \
>> @@ -77,6 +78,7 @@ extern const char *riscv_arch_help (int argc, const char **argv);
>> {"abi", "%{!mabi=*:-mabi=%(VALUE)}" }, \
>> {"isa_spec", "%{!misa-spec=*:-misa-spec=%(VALUE)}" }, \
>> {"tls", "%{!mtls-dialect=*:-mtls-dialect=%(VALUE)}"}, \
>> + {"cmodel", "%{!mcmodel=*:-mcmodel=%(VALUE)}" }, \
>>
>> #ifdef IN_LIBGCC2
>> #undef TARGET_64BIT
>> diff --git a/gcc/configure b/gcc/configure
>> index 557ea5fa3ac..826caf8dc2c 100755
>> --- a/gcc/configure
>> +++ b/gcc/configure
>> @@ -1000,6 +1000,7 @@ with_changes_root_url
>> enable_languages
>> with_multilib_list
>> with_multilib_generator
>> +with_cmodel
>> with_zstd
>> with_zstd_include
>> with_zstd_lib
>> @@ -1880,6 +1881,7 @@ Optional Packages:
>> SH and x86-64 only)
>> --with-multilib-generator
>> Multi-libs configuration string (RISC-V only)
>> + --with-cmodel Code model configuration string (RISC-V only)
>> --with-zstd=PATH specify prefix directory for installed zstd library.
>> Equivalent to --with-zstd-include=PATH/include plus
>> --with-zstd-lib=PATH/lib
>> @@ -8381,6 +8383,15 @@ else
>> fi
>>
>>
>> +
>> +# Check whether --with-cmodel was given.
>> +if test "${with_cmodel+set}" = set; then :
>> + withval=$with_cmodel; :
>> +else
>> + with_cmodel=medlow
>> +fi
>> +
>> +
>> # -------------------------
>> # Checks for other programs
>> # -------------------------
>> @@ -21406,7 +21417,7 @@ else
>> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>> lt_status=$lt_dlunknown
>> cat > conftest.$ac_ext <<_LT_EOF
>> -#line 21409 "configure"
>> +#line 21420 "configure"
>> #include "confdefs.h"
>>
>> #if HAVE_DLFCN_H
>> @@ -21512,7 +21523,7 @@ else
>> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>> lt_status=$lt_dlunknown
>> cat > conftest.$ac_ext <<_LT_EOF
>> -#line 21515 "configure"
>> +#line 21526 "configure"
>> #include "confdefs.h"
>>
>> #if HAVE_DLFCN_H
>> diff --git a/gcc/configure.ac <http://configure.ac/> b/gcc/configure.ac <http://configure.ac/>
>> index eaa01d0d7e5..1339bb2ba3b 100644
>> --- a/gcc/configure.ac <http://configure.ac/>
>> +++ b/gcc/configure.ac <http://configure.ac/>
>> @@ -1212,6 +1212,11 @@ AC_ARG_WITH(multilib-generator,
>> :,
>> with_multilib_generator=default)
>>
>> +AC_ARG_WITH(cmodel,
>> +[AS_HELP_STRING([--with-cmodel], [Code model configuration string (RISC-V only)])],
>> +:,
>> +with_cmodel=medlow)
>> +
>> # -------------------------
>> # Checks for other programs
>> # -------------------------
>> diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
>> index 4973f195daf..53f8dd21e37 100644
>> --- a/gcc/doc/install.texi
>> +++ b/gcc/doc/install.texi
>> @@ -1519,6 +1519,10 @@ Use big endian by default. Provide a multilib for little endian.
>> Use little endian by default. Provide a multilib for big endian.
>> @end table
>>
>> +@item --with-cmodel=@var{cmodel}
>> +Specify what code model to use by default.
>> +Currently only implemented for riscv*-*-*.
>> +
>> @item --enable-threads
>> Specify that the target
>> supports threads. This affects the Objective-C compiler and runtime
>> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
>> index 54ecd9a00eb..f219cd3db19 100644
>> --- a/gcc/doc/invoke.texi
>> +++ b/gcc/doc/invoke.texi
>> @@ -31285,8 +31285,10 @@ element-misaligned vector memory access.
>> @item -mcmodel=medlow
>> Generate code for the medium-low code model. The program and its statically
>> defined symbols must lie within a single 2 GiB address range and must lie
>> -between absolute addresses @minus{}2 GiB and +2 GiB. Programs can be
>> -statically or dynamically linked. This is the default code model.
>> +between absolute addresses @minus{}2 GiB and +2 GiB. Programs can be statically
>> +or dynamically linked. This is the default code model unless GCC has been
>> +configured with @option{--with-cmodel=} specifying a different default code
>> +model.
>>
>> @opindex mcmodel=medany
>> @item -mcmodel=medany
>> --
>> 2.39.3
>>
@@ -4723,7 +4723,7 @@ case "${target}" in
;;
riscv*-*-*)
- supported_defaults="abi arch tune riscv_attribute isa_spec tls"
+ supported_defaults="abi arch tune riscv_attribute isa_spec tls cmodel"
case "${target}" in
riscv-* | riscv32*) xlen=32 ;;
@@ -4879,6 +4879,21 @@ case "${target}" in
exit 1
esac
fi
+
+ # Handle --with-cmodel.
+ if test "x${with_cmodel}" != xdefault; then
+ # Make sure --with-cmodel is valid. If it was not specified,
+ # use medlow as the default value.
+ case "${with_cmodel}" in
+ medlow | medany | compact)
+ ;;
+ *)
+ echo "invalid option for --with-cmodel: '${with_cmodel}', available values are 'medlow' 'medany' 'compact'" 1>&2
+ exit 1
+ ;;
+ esac
+ tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_CMODEL=${with_cmodel}"
+ fi
;;
mips*-*-*)
@@ -6071,7 +6086,7 @@ case ${target} in
esac
t=
-all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4 isa_spec compact-branches msa"
+all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4 isa_spec compact-branches msa cmodel"
for option in $all_defaults
do
eval "val=\$with_"`echo $option | sed s/-/_/g`
@@ -65,6 +65,7 @@ extern const char *riscv_arch_help (int argc, const char **argv);
--with-tune is ignored if -mtune or -mcpu is specified.
--with-isa-spec is ignored if -misa-spec is specified.
--with-tls is ignored if -mtls-dialect is specified.
+ --with-cmodel is ignored if -mcmodel is specified.
But using default -march/-mtune value if -mcpu don't have valid option. */
#define OPTION_DEFAULT_SPECS \
@@ -77,6 +78,7 @@ extern const char *riscv_arch_help (int argc, const char **argv);
{"abi", "%{!mabi=*:-mabi=%(VALUE)}" }, \
{"isa_spec", "%{!misa-spec=*:-misa-spec=%(VALUE)}" }, \
{"tls", "%{!mtls-dialect=*:-mtls-dialect=%(VALUE)}"}, \
+ {"cmodel", "%{!mcmodel=*:-mcmodel=%(VALUE)}" }, \
#ifdef IN_LIBGCC2
#undef TARGET_64BIT
@@ -1000,6 +1000,7 @@ with_changes_root_url
enable_languages
with_multilib_list
with_multilib_generator
+with_cmodel
with_zstd
with_zstd_include
with_zstd_lib
@@ -1880,6 +1881,7 @@ Optional Packages:
SH and x86-64 only)
--with-multilib-generator
Multi-libs configuration string (RISC-V only)
+ --with-cmodel Code model configuration string (RISC-V only)
--with-zstd=PATH specify prefix directory for installed zstd library.
Equivalent to --with-zstd-include=PATH/include plus
--with-zstd-lib=PATH/lib
@@ -8381,6 +8383,15 @@ else
fi
+
+# Check whether --with-cmodel was given.
+if test "${with_cmodel+set}" = set; then :
+ withval=$with_cmodel; :
+else
+ with_cmodel=medlow
+fi
+
+
# -------------------------
# Checks for other programs
# -------------------------
@@ -21406,7 +21417,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 21409 "configure"
+#line 21420 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -21512,7 +21523,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 21515 "configure"
+#line 21526 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -1212,6 +1212,11 @@ AC_ARG_WITH(multilib-generator,
:,
with_multilib_generator=default)
+AC_ARG_WITH(cmodel,
+[AS_HELP_STRING([--with-cmodel], [Code model configuration string (RISC-V only)])],
+:,
+with_cmodel=medlow)
+
# -------------------------
# Checks for other programs
# -------------------------
@@ -1519,6 +1519,10 @@ Use big endian by default. Provide a multilib for little endian.
Use little endian by default. Provide a multilib for big endian.
@end table
+@item --with-cmodel=@var{cmodel}
+Specify what code model to use by default.
+Currently only implemented for riscv*-*-*.
+
@item --enable-threads
Specify that the target
supports threads. This affects the Objective-C compiler and runtime
@@ -31285,8 +31285,10 @@ element-misaligned vector memory access.
@item -mcmodel=medlow
Generate code for the medium-low code model. The program and its statically
defined symbols must lie within a single 2 GiB address range and must lie
-between absolute addresses @minus{}2 GiB and +2 GiB. Programs can be
-statically or dynamically linked. This is the default code model.
+between absolute addresses @minus{}2 GiB and +2 GiB. Programs can be statically
+or dynamically linked. This is the default code model unless GCC has been
+configured with @option{--with-cmodel=} specifying a different default code
+model.
@opindex mcmodel=medany
@item -mcmodel=medany