From: ljsebald <ljs...@us...> - 2024-01-19 04:13:16
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 0e0d8e2a3dc55550a59651735324fa718b23bb43 (commit) via 9910ca94fed3bab0553e39216701eb9b523edb00 (commit) via 279a305de3322e3b1e90b4a8a72b7a07819f01e7 (commit) via c8696f7c5e0ea25c49c2e496e56868e86583027d (commit) from c3be4a13e1585b1036987a36ba4d30dab7c608ac (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0e0d8e2a3dc55550a59651735324fa718b23bb43 Author: Falco Girgis <gyr...@gm...> Date: Thu Jan 18 22:12:32 2024 -0600 Added Toolchain Config Variable for Disabling NLS. (#461) * Added toolchain config variable for disabling NLS. - Added "disable_nls" optional variable within the stable toolchain config file (defaulting to off) to disable GCC's native language support. * Add disable NLS option to all dc-chain config samples. --------- Co-authored-by: darc <da...@pr...> commit 9910ca94fed3bab0553e39216701eb9b523edb00 Merge: 279a305d c8696f7c Author: Lawrence Sebald <ljs...@us...> Date: Thu Jan 18 23:11:21 2024 -0500 Merge pull request #463 from KallistiOS/more_cmake CMake Toolchain Fixes for Library Link Order commit 279a305de3322e3b1e90b4a8a72b7a07819f01e7 Author: Falco Girgis <gyr...@gm...> Date: Thu Jan 18 22:10:10 2024 -0600 Added <dc/vmu_fb.h> to <kos.h> (#464) * Added <dc/vmu_fb.h> to <kos.h>. - It looks like we forgot to do this when we added the VMU framebuffer API. commit c8696f7c5e0ea25c49c2e496e56868e86583027d Author: Falco Girgis <gyr...@gm...> Date: Wed Jan 17 00:41:48 2024 -0600 CMake Toolchain fixes for library link order - The CMake toolchain was not properly handling the link order for libraries, so adding any new library that depended on the system libraries resulted in linker errors - Had to add a new custom C/CXX rule for manually adding system link libraries to the END of the linker statement ----------------------------------------------------------------------- Summary of changes: include/kos.h | 1 + utils/cmake/dreamcast.toolchain.cmake | 21 ++++++++++++++++----- utils/dc-chain/config/config.mk.10.5.0.sample | 5 +++++ utils/dc-chain/config/config.mk.11.4.0.sample | 5 +++++ utils/dc-chain/config/config.mk.12.3.0.sample | 5 +++++ utils/dc-chain/config/config.mk.13.2.1-dev.sample | 5 +++++ utils/dc-chain/config/config.mk.14.0.1-dev.sample | 5 +++++ utils/dc-chain/config/config.mk.4.7.4-legacy.sample | 5 +++++ utils/dc-chain/config/config.mk.9.3.0-legacy.sample | 5 +++++ utils/dc-chain/config/config.mk.9.5.0-winxp.sample | 5 +++++ utils/dc-chain/config/config.mk.stable.sample | 5 +++++ utils/dc-chain/doc/CONTRIBUTORS.md | 3 ++- utils/dc-chain/doc/changelog.txt | 2 ++ utils/dc-chain/scripts/build.mk | 2 +- utils/dc-chain/scripts/init.mk | 6 ++++++ 15 files changed, 73 insertions(+), 7 deletions(-) diff --git a/include/kos.h b/include/kos.h index d5d838fa..615b7862 100644 --- a/include/kos.h +++ b/include/kos.h @@ -112,6 +112,7 @@ __BEGIN_DECLS # include <dc/vblank.h> # include <dc/vec3f.h> # include <dc/video.h> +# include <dc/vmu_fb.h> # include <dc/vmu_pkg.h> # include <dc/vmufs.h> #else /* _arch_dreamcast */ diff --git a/utils/cmake/dreamcast.toolchain.cmake b/utils/cmake/dreamcast.toolchain.cmake index ea1e27b7..6c423eea 100644 --- a/utils/cmake/dreamcast.toolchain.cmake +++ b/utils/cmake/dreamcast.toolchain.cmake @@ -59,8 +59,12 @@ set(PLATFORM_DREAMCAST TRUE) ##### Configure Cross-Compiler ##### set(CMAKE_CROSSCOMPILING TRUE) -set(CMAKE_C_COMPILER ${KOS_CC_BASE}/bin/sh-elf-gcc) -set(CMAKE_CXX_COMPILER ${KOS_CC_BASE}/bin/sh-elf-g++) + +set(CMAKE_ASM_COMPILER ${KOS_CC_BASE}/bin/sh-elf-as) +set(CMAKE_C_COMPILER ${KOS_CC_BASE}/bin/sh-elf-gcc) +set(CMAKE_CXX_COMPILER ${KOS_CC_BASE}/bin/sh-elf-g++) +set(CMAKE_OBJC_COMPILER ${KOS_CC_BASE}/bin/sh-elf-gcc) +set(CMAKE_OBJCXX_COMPILER ${KOS_CC_BASE}/bin/sh-elf-g++) set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") @@ -100,8 +104,8 @@ include_directories( $ENV{KOS_PORTS}/include ) -##### Configure Libraries ##### -set(CMAKE_SYSTEM_LIBRARY_PATH "${CMAKE_SYSTEM_LIBRARY_PATH} ${KOS_BASE}/addons/lib/dreamcast ${KOS_PORTS}/lib") +##### Configure Linker ##### +set(CMAKE_SYSTEM_LIBRARY_PATH "${CMAKE_SYSTEM_LIBRARY_PATH} ${KOS_BASE}/lib/dreamcast ${KOS_BASE}/addons/lib/dreamcast ${KOS_PORTS}/lib") if(${KOS_SUBARCH} MATCHES naomi) add_link_options(-Wl,-Ttext=0x8c020000 -T${KOS_BASE}/utils/ldscripts/shlelf-naomi.xc) @@ -118,6 +122,13 @@ link_directories( ) add_link_options(-L${KOS_BASE}/lib/dreamcast -L${KOS_BASE}/addons/lib/dreamcast -L${KOS_PORTS}/lib) -link_libraries(-Wl,--start-group -lstdc++ -lkallisti -lc -lgcc -Wl,--end-group -lm) + +##### Custom Build Rules ##### +set(CMAKE_C_LINK_EXECUTABLE + "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> \ + -lm -Wl,--start-group -lkallisti -lc -lgcc -Wl,--end-group") +set(CMAKE_CXX_LINK_EXECUTABLE + "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> \ + -lm -Wl,--start-group -lstdc++ -lkallisti -lc -lgcc -Wl,--end-group") include("${KOS_BASE}/utils/cmake/dreamcast.cmake") diff --git a/utils/dc-chain/config/config.mk.10.5.0.sample b/utils/dc-chain/config/config.mk.10.5.0.sample index 937f35b4..a91da992 100644 --- a/utils/dc-chain/config/config.mk.10.5.0.sample +++ b/utils/dc-chain/config/config.mk.10.5.0.sample @@ -164,6 +164,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/config/config.mk.11.4.0.sample b/utils/dc-chain/config/config.mk.11.4.0.sample index 949e7186..9fcd42c7 100644 --- a/utils/dc-chain/config/config.mk.11.4.0.sample +++ b/utils/dc-chain/config/config.mk.11.4.0.sample @@ -164,6 +164,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/config/config.mk.12.3.0.sample b/utils/dc-chain/config/config.mk.12.3.0.sample index 1e1560e4..c33fe0d1 100644 --- a/utils/dc-chain/config/config.mk.12.3.0.sample +++ b/utils/dc-chain/config/config.mk.12.3.0.sample @@ -164,6 +164,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/config/config.mk.13.2.1-dev.sample b/utils/dc-chain/config/config.mk.13.2.1-dev.sample index 8bb10ba7..2bb24e06 100644 --- a/utils/dc-chain/config/config.mk.13.2.1-dev.sample +++ b/utils/dc-chain/config/config.mk.13.2.1-dev.sample @@ -173,6 +173,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/config/config.mk.14.0.1-dev.sample b/utils/dc-chain/config/config.mk.14.0.1-dev.sample index 1d11597e..a0ad4d41 100644 --- a/utils/dc-chain/config/config.mk.14.0.1-dev.sample +++ b/utils/dc-chain/config/config.mk.14.0.1-dev.sample @@ -176,6 +176,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/config/config.mk.4.7.4-legacy.sample b/utils/dc-chain/config/config.mk.4.7.4-legacy.sample index dcc4d519..01e7729c 100644 --- a/utils/dc-chain/config/config.mk.4.7.4-legacy.sample +++ b/utils/dc-chain/config/config.mk.4.7.4-legacy.sample @@ -164,6 +164,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/config/config.mk.9.3.0-legacy.sample b/utils/dc-chain/config/config.mk.9.3.0-legacy.sample index 8458c683..97565dc0 100644 --- a/utils/dc-chain/config/config.mk.9.3.0-legacy.sample +++ b/utils/dc-chain/config/config.mk.9.3.0-legacy.sample @@ -164,6 +164,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/config/config.mk.9.5.0-winxp.sample b/utils/dc-chain/config/config.mk.9.5.0-winxp.sample index 9e7c5fc6..75024821 100644 --- a/utils/dc-chain/config/config.mk.9.5.0-winxp.sample +++ b/utils/dc-chain/config/config.mk.9.5.0-winxp.sample @@ -164,6 +164,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/config/config.mk.stable.sample b/utils/dc-chain/config/config.mk.stable.sample index f7b3bc73..6e5b932c 100644 --- a/utils/dc-chain/config/config.mk.stable.sample +++ b/utils/dc-chain/config/config.mk.stable.sample @@ -164,6 +164,11 @@ newlib_c99_formats=1 # performance. #newlib_opt_space=1 +# Disable GCC Native Language Support (1|0) +# By default, NLS allows GCC to output diagnostics in non-English languages. +# Set this variable to disable NLS, forcing GCC to output in American English. +#disable_nls=1 + # MinGW/MSYS # Standalone binaries (1|0) # Define this if you want a standalone, no dependency binaries (i.e. static) diff --git a/utils/dc-chain/doc/CONTRIBUTORS.md b/utils/dc-chain/doc/CONTRIBUTORS.md index bbc6ce38..fcf7eece 100644 --- a/utils/dc-chain/doc/CONTRIBUTORS.md +++ b/utils/dc-chain/doc/CONTRIBUTORS.md @@ -18,4 +18,5 @@ * 2020 [Ben Baron](https://github.com/einsteinx2) * 2020 [Jon Daniel](https://github.com/jopadan) * 2023 [Colton Pawielski](https://github.com/cepawiel) -* 2023 [Eric Fradella](https://github.com/darcagn) +* 2023, 2024 [Eric Fradella](https://github.com/darcagn) +* 2023, 2024 [Falco Girgis](https://github.com/gyrovorbis) diff --git a/utils/dc-chain/doc/changelog.txt b/utils/dc-chain/doc/changelog.txt index aa685d87..5ba1e808 100644 --- a/utils/dc-chain/doc/changelog.txt +++ b/utils/dc-chain/doc/changelog.txt @@ -1,3 +1,5 @@ +2024-01-14: Added config option for disabling native language support (NLS) in GCC. + (Falco Girgis) 2024-01-06: Update documentations (Mickaël Cardoso) 2023-07-31: Update Binutils to 2.41. Verified no regressions in KOS examples compared to current stable GCC 9.3.0, so promoting GCC 13.2.0 configuration to stable. diff --git a/utils/dc-chain/scripts/build.mk b/utils/dc-chain/scripts/build.mk index bc4d4a67..5875217e 100644 --- a/utils/dc-chain/scripts/build.mk +++ b/utils/dc-chain/scripts/build.mk @@ -35,7 +35,7 @@ build_arm_targets = build-arm-binutils build-arm-gcc build-arm-gcc-pass1 # Available targets for SH $(build_sh4_targets): prefix = $(sh_prefix) $(build_sh4_targets): target = $(sh_target) -$(build_sh4_targets): extra_configure_args = --with-multilib-list=$(precision_modes) --with-endian=little --with-cpu=$(default_precision) +$(build_sh4_targets): extra_configure_args += --with-multilib-list=$(precision_modes) --with-endian=little --with-cpu=$(default_precision) $(build_sh4_targets): gcc_ver = $(sh_gcc_ver) $(build_sh4_targets): binutils_ver = $(sh_binutils_ver) diff --git a/utils/dc-chain/scripts/init.mk b/utils/dc-chain/scripts/init.mk index d4145869..40705693 100644 --- a/utils/dc-chain/scripts/init.mk +++ b/utils/dc-chain/scripts/init.mk @@ -152,6 +152,12 @@ ifdef newlib_multibyte endif endif +ifdef disable_nls + ifneq (0,$(disable_nls)) + extra_configure_args += --disable-nls + endif +endif + # Function to verify variable is not empty # Args: # 1 - Variable Name hooks/post-receive -- A pseudo Operating System for the Dreamcast. |