summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/k/config.toml3
-rw-r--r--.config/nvim/lua/lsp.lua2
-rw-r--r--.config/nvim/lua/plugins/conform.lua2
-rw-r--r--.config/nvim/queries/c/highlights.scm3
-rw-r--r--.zshrc3
-rwxr-xr-xscripts/build-toolchain.sh53
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))
diff --git a/.zshrc b/.zshrc
index d26c9f3..5cb41bc 100644
--- a/.zshrc
+++ b/.zshrc
@@ -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 "======================================================"