From nobody Mon Feb 9 00:53:27 2026 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A15C33D6C0 for ; Sat, 31 Jan 2026 07:44:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769845492; cv=none; b=LeuLrTHqGdVYxLJ7lr3NuwRmMWTzl/HO9TDZP+ZTDXxOyw2nQR3OnYXk7JlX0C0267L1tYV0K0ZTXsjQ4X6B5PeQ6yT0TKqWbb6Nm81FaELw632cJS0t/jvTJz9dLYiW9ikndxVewhmDAu0NyBKIWoM/VPiRSCwVH/+udKOyyfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769845492; c=relaxed/simple; bh=nrHVBM0C0aA7Dqad2QkQPhCGrW0y3u8sP5h7ZRk8si8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k5Seli3/ki87LI38gn0MDyeCdkPgSO7KnPPjDLncTwqUZH7DcGb1MtSjUruJi7PbC089J4xZloMeuLoItF8/vAEOIdASNeXfERCdhxgb8x3pCzd7NW0O4gJuHiI8uImXEF9Rfex2rOZr74RptpdyA61rtjaN9izbdY9RNFBMgGY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp; spf=pass smtp.mailfrom=0x0f.com; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b=WYXj3qEt; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=0x0f.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b="WYXj3qEt" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-8220bd582ddso1615553b3a.2 for ; Fri, 30 Jan 2026 23:44:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thingy.jp; s=google; t=1769845491; x=1770450291; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yfOAD3sMalbdZQIqFc1tensJa9XPyQ8nWbWEChyFToI=; b=WYXj3qEtzIredZqvvVfPymwgHGK96kQvOr4YIbctPVpU0VXkudEzf6M1ehhQhYGlyz pRQ3haJI/qG/xhlRGf9mZuNNQhTz82mNXDkHOsrnzGhwSt43o4+HQRj538BglDFfYYWX +IAHO0DiQ7XJNoXCrHTOt9EAsW6ddHZ0KxqZk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769845491; x=1770450291; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yfOAD3sMalbdZQIqFc1tensJa9XPyQ8nWbWEChyFToI=; b=ugCUXfZ1ZYM0gPP5F0QS22Um4ge3EfnF4HPrrYMoSRFzOP/MFNuDFnKxRrYVLVzJ5n h7bMYtYQeU848LIvl4zDmuK9lNPQN4Ix5DIkn3CgOGQ5o6E12YwScWu6NSs1qg0JWLiT MXTk1mXvn6A931+Ue+iyDyQri5WcxXCKPpV0wOTJ29HkMdFACC1hxZPzgX+zh+LigXt3 Ac6kg/DvGrqcUdlQK4GMX7oHVgINSJza9QNjy4zllbKGq87ZyAw6SEn+eHRNTvrfF6TW 4a5lRV25BL9U/BZ4b7Rbhlb6uA7wv4ABB2HYUf4VAM4VH7EJk2ULKEyIt+oRwE8KS7CT Z7vg== X-Forwarded-Encrypted: i=1; AJvYcCXE/V/ucMNsHZw9GfEKLlToLm1quXlLFZBuLedfCudIFpZif4PlNxyk0M8InC0kCkfXq8YzuNFkeZRKrVY=@vger.kernel.org X-Gm-Message-State: AOJu0Yxd5o4XKa06txNsBwP2y3zrUlurwkzgXwsdFQm8HPgUcFBhjpUx UknyZtQm14eMkXaN0KKlEu0b8rqGQB+D7TQt0ohlfXiU0GV/z6gy9pKvwXF3AkIiWBZuP29/vi0 OtY1j X-Gm-Gg: AZuq6aIAWLN9MVeNKjvC+N0522OotAvln9CB8mXOeAZ3RhgBWQuMdeMxN6zKVxfE1Rl d1rOFlopvrAkWw7Sb/bwTfOI/GxWz+cMq0jViblVdp3WT6FGHRM5wXkoEo1Eyxo37PVDSysX4bo nbKoYQfdTpDu3+eeELT0tN3tLwdP1du8M82e8xEDTPJhzH+G3YTsachygiaaPfz5CoQmr2/kuko lOiKfRFmdCbNyTQYVWQSnuPLHAv50NZTX1YhgIU4CW+YzpR+7PCCmiL1cOv9iLZxrK+qam6CYc8 f+P+Q1WaiguWzBUu3EwywdY5Dc/xV0YFWD+crTB3dbKEAGOpjYT1R3vZnc8owvtpJv65jrhNPo3 N+gzsldXFeOsm0Zxb0XyMyqRC1UUXeX6S36Vw5RgxyxeVI0BcKD7rzW/YFAAIwJ15SWqvY8uZzM ce8kxrd6nrT1NutGGsuCestMCqHdzJdgV2LweDo/0XD1i/XIVJ21QC42FOErkueZk7XEBjGfLgq E4k X-Received: by 2002:a05:6a20:1605:b0:38b:ea2a:2843 with SMTP id adf61e73a8af0-392dffe90fcmr5870365637.10.1769845490700; Fri, 30 Jan 2026 23:44:50 -0800 (PST) Received: from kinako.work.home.arpa (p1490223-ipxg00b01sizuokaden.shizuoka.ocn.ne.jp. [153.223.134.223]) by smtp.googlemail.com with ESMTPSA id 41be03b00d2f7-c642a9f539dsm8866928a12.26.2026.01.30.23.44.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jan 2026 23:44:50 -0800 (PST) From: Daniel Palmer To: linux@weissschuh.net, w@1wt.eu Cc: kees@kernel.org, linux-kernel@vger.kernel.org, Daniel Palmer Subject: [RFC PATCH 4/9] tools/nolibc: m68k: Add relocation support Date: Sat, 31 Jan 2026 16:44:35 +0900 Message-ID: <20260131074440.732588-5-daniel@thingy.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260131074440.732588-1-daniel@thingy.jp> References: <20260131074440.732588-1-daniel@thingy.jp> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add support for handling relocations on m68k. This also changes the branch to _start_c to be relative. This might break FLAT binaries so needs to be checked and probably wrapped in some #ifdef .. magic. Signed-off-by: Daniel Palmer --- tools/include/nolibc/arch-m68k.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/include/nolibc/arch-m68k.h b/tools/include/nolibc/arch-m= 68k.h index 2a4fbada5e79..39df399a1f12 100644 --- a/tools/include/nolibc/arch-m68k.h +++ b/tools/include/nolibc/arch-m68k.h @@ -10,8 +10,12 @@ #ifndef _NOLIBC_ARCH_M68K_H #define _NOLIBC_ARCH_M68K_H =20 +#define NOLIBC_ARCH_HAS_RELOC +#define NOLIBC_ARCH_ELF32 + #include "compiler.h" #include "crt.h" +#include "elf.h" =20 #define _NOLIBC_SYSCALL_CLOBBERLIST "memory" =20 @@ -129,12 +133,26 @@ }) =20 #ifndef NOLIBC_NO_RUNTIME +static int __relocate_rela(unsigned long base, Elf32_Rela *entry) +{ + switch (ELF32_R_TYPE(entry->r_info)) { + case R_68K_RELATIVE: + __relocate_rela_relative(base, entry); + break; + default: + return -1; + } + + return 0; +} + void _start(void); void __attribute__((weak, noreturn)) __nolibc_entrypoint __no_stack_protec= tor _start(void) { __asm__ volatile ( "movel %sp, %sp@-\n" - "jsr _start_c\n" + "lea _start_c(%pc), %a0\n" + "jsr (%a0)\n" ); __nolibc_entrypoint_epilogue(); } --=20 2.51.0