diff options
| -rw-r--r-- | .config/k/config.toml | 3 | ||||
| -rw-r--r-- | .config/nvim/lua/lsp.lua | 2 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/conform.lua | 2 | ||||
| -rw-r--r-- | .config/nvim/queries/c/highlights.scm | 3 | ||||
| -rw-r--r-- | .zshrc | 3 | ||||
| -rwxr-xr-x | scripts/build-toolchain.sh | 53 |
6 files changed, 63 insertions, 3 deletions
diff --git a/.config/k/config.toml b/.config/k/config.toml index 19bd955..02e223e 100644 --- a/.config/k/config.toml +++ b/.config/k/config.toml @@ -129,6 +129,9 @@ libX11-devel libXext-devel libXcursor-devel libXi-devel libglvnd-devel fontconfi # Virtual Machine qemu-kvm libvirt virt-manager +# OSdev +gmp-devel libmpc-devel mpfr-devel +grub2-pc kopia kopia-ui diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/lua/lsp.lua index 62a84d8..7d65727 100644 --- a/.config/nvim/lua/lsp.lua +++ b/.config/nvim/lua/lsp.lua @@ -1,5 +1,5 @@ return { - asm_lsp = true, + asm_lsp = false, basedpyright = true, -- python bashls = true, clangd = true, diff --git a/.config/nvim/lua/plugins/conform.lua b/.config/nvim/lua/plugins/conform.lua index 361eb1a..4899272 100644 --- a/.config/nvim/lua/plugins/conform.lua +++ b/.config/nvim/lua/plugins/conform.lua @@ -11,6 +11,8 @@ return { ---@type conform.setupOpts opts = { formatters_by_ft = { + -- asm = { 'asmfmt' }, + -- nasm = { 'asmfmt' }, ['lua'] = { 'stylua' }, ['go'] = { 'gofumpt', 'goimports-reviser' }, ['markdown'] = { 'prettierd' }, diff --git a/.config/nvim/queries/c/highlights.scm b/.config/nvim/queries/c/highlights.scm index 66abfe4..4aef54d 100644 --- a/.config/nvim/queries/c/highlights.scm +++ b/.config/nvim/queries/c/highlights.scm @@ -2,10 +2,11 @@ ([(identifier) (type_identifier) (true) (false)] @keyword (#any-of? @keyword "kr_proc" "inlined" + "lt_proc" "lt_inline" "lt_global" "lt_packed" "lt_noreturn" "u8" "u16" "u32" "u64" "i8" "i16" "i32" "i64" "i128" "f32" "f64" - "b8" "b32" "b64" + "b8" "b16" "b32" "b64" "rune" "usize" "isize" "uptr" "iptr" "true" "false" "null" "void") (#set! "priority" 200)) @@ -113,6 +113,8 @@ export WINEDEBUG=-all # Path export GOPATH="$HOME/go" export PATH="$PATH:$GOPATH/bin" +export PATH="/opt/ark-vcs:$PATH" # Ark is also the KDE zip tool thing, so we gotta prioritize this ark +export PATH="$HOME/opt/cross/bin:$PATH" export PATH="$PATH:$HOME/scripts" export PATH="$PATH:$HOME/.zig" export PATH="$PATH:$HOME/.zls" @@ -124,7 +126,6 @@ export PATH="$PATH:/opt/zen" export PATH="$PATH:/opt/aseprite" export PATH="$PATH:$HOME/.local/bin" export PATH="$PATH:$HOME/.cargo/bin" -export PATH="/opt/ark-vcs:$PATH" # Ark is also the KDE zip tool thing, so we gotta prioritize this ark # Start ssh-agent if not running # export SSH_ASKPASS_REQUIRE="prefer" diff --git a/scripts/build-toolchain.sh b/scripts/build-toolchain.sh new file mode 100755 index 0000000..c879a8c --- /dev/null +++ b/scripts/build-toolchain.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +# build-toolchain.sh +# Builds a complete x86_64-elf cross-compiler into ~/opt/cross +set -e +export PREFIX="$HOME/opt/cross" +export TARGET="x86_64-elf" +export PATH="$PREFIX/bin:$PATH" +BINUTILS_VER="2.45.1" +GCC_VER="15.3.0" +BUILD_DIR="$HOME/cross-build" +mkdir -p "$BUILD_DIR" "$PREFIX" +cd "$BUILD_DIR" +echo "==> Downloading sources..." +wget -nc "https://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VER}.tar.xz" +wget -nc "https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-${GCC_VER}.tar.xz" +echo "==> Extracting..." +tar xf "binutils-${BINUTILS_VER}.tar.xz" +tar xf "gcc-${GCC_VER}.tar.xz" +# ── Build binutils (assembler, linker, objdump, readelf, etc.) ──────── +echo "==> Building binutils..." +mkdir -p build-binutils && cd build-binutils +"../binutils-${BINUTILS_VER}/configure" \ + --target="$TARGET" \ + --prefix="$PREFIX" \ + --with-sysroot \ + --disable-nls \ + --disable-werror +make -j"$(nproc)" +make install +cd .. +# ── Build GCC (C frontend only, no standard library at all) ────────── +echo "==> Building GCC..." +mkdir -p build-gcc && cd build-gcc +"../gcc-${GCC_VER}/configure" \ + --target="$TARGET" \ + --prefix="$PREFIX" \ + --disable-nls \ + --enable-languages=c,c++ \ + --without-headers \ + --disable-hosted-libstdcxx +make -j"$(nproc)" all-gcc +make -j"$(nproc)" all-target-libgcc +make install-gcc +make install-target-libgcc +cd .. +echo "" +echo "======================================================" +echo " Cross-compiler ready!" +echo " Binaries are in: $PREFIX/bin/" +echo "" +echo " Add this line to your ~/.bashrc or ~/.zshrc:" +echo " export PATH=\"\$HOME/opt/cross/bin:\$PATH\"" +echo "======================================================" |
