guix: remove zig

This commit is contained in:
tobtoht
2025-02-23 08:57:56 +01:00
parent 7559736de0
commit e2f790d86a
4 changed files with 75 additions and 4 deletions
+7 -2
View File
@@ -3,12 +3,17 @@ $(package)_version=a148fb86c30968eeb30dc6ac3384ad2a16690520
$(package)_download_path=https://github.com/tobtoht/ln-guix-store/archive/
$(package)_file_name=$($(package)_version).tar.gz
$(package)_sha256_hash=e9694fcda4f9fcb00374da7a439b881296c0ce67ea98ca44bf2830d1a364365b
$(package)_patches=main.c main.S
define $(package)_preprocess_cmds
cp -f $($(package)_patch_dir)/main.c $($(package)_patch_dir)/main.S .
endef
define $(package)_build_cmds
zig build-exe ln-guix-store.zig -target x86_64-linux-none -OReleaseSmall
$($(package)_cc) -nostdlib -fno-unwind-tables -fno-asynchronous-unwind-tables -fdata-sections -Wl,--gc-sections -Wa,--noexecstack -fno-builtin -fno-stack-protector -static -o startup main.c main.S
endef
define $(package)_stage_cmds
mkdir -p $($(package)_staging_prefix_dir)/bin && \
cp ln-guix-store $($(package)_staging_prefix_dir)/bin/startup
cp startup $($(package)_staging_prefix_dir)/bin/
endef
+34
View File
@@ -0,0 +1,34 @@
.text
.global m_symlink
.global m_exit
.global m_mkdir
.global m_execve
.global _start
_start:
pop %rdi
mov %rsp, %rsi
lea 8(%rsi, %rdi, 8), %rdx
call start_c
mov $60, %rax
xor %rdi, %rdi
syscall
m_symlink:
mov $88, %rax
syscall
ret
m_mkdir:
mov $83, %rax
syscall
ret
m_execve:
mov $59, %rax
syscall
ret
m_exit:
mov $60, %rax
syscall
+31
View File
@@ -0,0 +1,31 @@
extern long m_symlink(const char *target, const char *linkpath);
extern long m_mkdir(const char *pathname, unsigned int mode);
extern long m_execve(const char *filename, char *const argv[], char *const envp[]);
extern void m_exit(int status);
void start_c(int argc, char **argv, char **envp) {
m_symlink("/app/gnu", "/gnu");
// Qt expects certs to be here, see: qtbase/src/network/ssl/qsslsocket.cpp
m_mkdir("/etc/ssl", 0755);
m_symlink("/app/profile/etc/ssl/certs", "/etc/ssl/certs");
// Stops Qt from complaining about not running in a utf-8 locale
m_mkdir("/run/current-system", 0755);
m_symlink("/app/profile/lib/locale", "/run/current-system/locale");
// Launch Feather
const char *exec_path = "/app/feather";
int new_argc = argc;
char *new_argv[new_argc + 1];
new_argv[0] = (char *)exec_path;
for (int i = 1; i < new_argc; i++) {
new_argv[i] = argv[i];
}
new_argv[new_argc] = 0;
long ret = m_execve(exec_path, new_argv, envp);
m_exit((int)ret);
}
+3 -2
View File
@@ -499,12 +499,13 @@ inspecting signatures in Mach-O binaries.")
(make-mingw-pthreads-cross-toolchain "x86_64-w64-mingw32")
nsis-x86_64
nss-certs
osslsigncode))
osslsigncode
gettext-minimal ;; used to build libgpg-error in depends
))
((string-contains target "-linux-")
(list
(make-bitcoin-cross-toolchain target)
squashfs-tools
zig ;; used to build flatstart in depends
))
((string-contains target "darwin")
(list