Received: by 2002:a05:7412:3b8b:b0:fc:a2b0:25d7 with SMTP id nd11csp2698782rdb; Mon, 12 Feb 2024 13:30:43 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCW+YvCp3DtuCl3koWUIUMl3YkH3MwP9dNDcqE76ECfZhyFNvc6TxpsEzhpf/YmwxBIKBgQ93YhB3QKS7wZ7OUP/2HUc3pdNF5Bxm8I8KA== X-Google-Smtp-Source: AGHT+IHgbzPY2w+tt1ZXGRGBqU9avSlcvBX5DFrTNyjL1KsUmKeYnT5ZL/B0pYqjhT2xRfX47kpY X-Received: by 2002:a17:906:3596:b0:a38:35c5:76f0 with SMTP id o22-20020a170906359600b00a3835c576f0mr4635433ejb.11.1707773443051; Mon, 12 Feb 2024 13:30:43 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707773443; cv=pass; d=google.com; s=arc-20160816; b=rzZ+PpaMMdenPDrFQqSO/o5mxj4RhNrAAAjCTZDHUCHH5gFlYJP/xZ4IMHrSBjaWpf IOVwgaCKJH/J/YPvxCc0OzpaRSbnN9FEIicA9Ce0Gfv2MAf64WyqRNNS6Pc3dSf/TTq9 1mR0VcaTdnsJUdFldiEQgSQqbm3fBrpf9Uzq7bU9ZB58qjXlrvpNURI28HO9Bz/U1e6l xZ9/9q6QLcKdTYpmtfo7ilL0PfGv9fxWiCcjO9njmThk+BAbdyMZECeY4eQ45+7X0jJ1 /GNGSqYK6U6LVRSwFXHYUhigf5l/VFo1+bjqbi0J1+oe6trip70paLsCV21KntXA5+Us tZTA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=v5XVDuj8JlRZ1jxmbQrzTU8LNXVSbeMiRjtIm6VA9vo=; fh=HtPuxlGkMb6jimrEyGkUdh1AtP2bvYWgieUqseUUbss=; b=GB2BtBAXREXzYRc3uNp4S4/2A4hOIHHnYUspF92S6sbEzbuIRGMOpn+Vcs5hCEarQf ky42nKfGCxXn08v7H6Nvv3d9eTCIgKrh7l9arucJYFG3iI2QNGjQA4dsBOHQLNgCO6Fy KC3F8L66VOZUldGpOVyDUl8Ki1s3T74fBjk0ImVmCmQmfzgXMrH7X6NZ7tY9DYmpm+ok U+/xyc23XAoDFJjtUhJPMSzrTEGoSs1c9OMYUwLVYz9q79Y0gTcxQQKiWGbTWTXl/srP uZ5ISZRwO24MlMcbU9QZh85uLn4uEs87esJqaZimJB0GnF1KYQ2GNIJjU6Iwt0MrCb18 Xo6g==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=tBh9GsN2; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-62390-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62390-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org X-Forwarded-Encrypted: i=2; AJvYcCUOLQYDVsKdg+aWpdVgwMZ4bk9im/glS2J7bEJK1FNI0WYk9TSuqQXndbm2xezso81Q3Q9BqlYToQSEOf3fv2NltQ1Bdxf0++QiGVX3/g== Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id v25-20020a170906489900b00a377fd354cbsi537902ejq.909.2024.02.12.13.30.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 13:30:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-62390-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=tBh9GsN2; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-62390-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62390-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id A39151F22B7E for ; Mon, 12 Feb 2024 21:30:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4ED914CDE1; Mon, 12 Feb 2024 21:30:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tBh9GsN2" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 71D774CB4A; Mon, 12 Feb 2024 21:30:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707773434; cv=none; b=JElRMF5AL3iZVFN4W1O8gZqRybWwID2y9QMsILZOrrW0JoEhDymPQskXKOVXiLNO635QUNdcX9UBBK/F3oxyEYvLkebIWnbJT7hH0Qs/blfWtF+NpJ5px9X1b9DTL87rr4yQwQIfCE3juBZx12sU0tje8oWB7jXeQgWl8m3ZPzI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707773434; c=relaxed/simple; bh=IDcEWsDLa+W/tADrSclCXIDqdaEJoRI6zAbAWffUmhE=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=e262zVxrVTJ+ZUDoUBPwEIXtWsFdW07sUxQS4PTHcPs+aLG5f6rTn5AVxxmJRlMeIPm6RyeAwhAdQtjN0XqCml87CU6e9g0y7TiH6B4K2j9UqcyExD65hEL5tTCMANmmsEU78Vba8qzp8H8MQmZrbjNIQiBbTySwacqwUpx5ZkY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tBh9GsN2; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0995CC43394; Mon, 12 Feb 2024 21:30:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1707773434; bh=IDcEWsDLa+W/tADrSclCXIDqdaEJoRI6zAbAWffUmhE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=tBh9GsN2YTr0uV1cMX3NEaVhUFAZ/7k1vl7DCHtpUOGDZvMduBCBLm1h1eHfuvRbg OHSmUiydH+Sw15gNRuGOLooI26oac2VgeeWdORWnLEmYcPLZ5Q6YWaPMoLOVWtJFty eVkmIgHz+wZ4E5iBcKFihe5/LFfV8Vfvlm6Ceg/jHurgPLexrxmIq8wLrk0HRXtf8+ EXnDIOgg61fTydzJSmV2bVVvZJ78m3v67BN47mMbgglWJmI1NwI9ixXQJB5s+91mc2 2yuPydGeqBRPLoK6ivhPacFPnkQvfiDdDAgD9U2Z3pMm+NmJeyWpSxbHJ4FrQrciBk i4QqOMdGiHBwA== Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-511898b6c9eso1811229e87.3; Mon, 12 Feb 2024 13:30:33 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCU9hLkGFdHreaMr3S65hP+zqRXl5u9vTDF1J877Tx4XWEptM4SNHuBIxW/q8J2/cGmVLzGne9dPux2DtK2UOLxLylXrdn49WLoE6BM5X43ZYcrYpl0kRjuH0dF8Yu5nuoi6r20MGRau/ku6 X-Gm-Message-State: AOJu0Ywr1Sr/MMqt1F1Ao2tBDvQhoFgETVO/icoe+RbFYIOdnixOAjgc Qv/DnN2OkQjbOoxqKavf35bxDQRwZ0kSJLDFR5/FKgS3ipCAjkpEljlojQ08FhK8vBI/N7XZFpV 3JRpAeci8Sb0Utqx9194Cx8V4oFc= X-Received: by 2002:a05:6512:104b:b0:511:84f1:b895 with SMTP id c11-20020a056512104b00b0051184f1b895mr5001222lfb.4.1707773432532; Mon, 12 Feb 2024 13:30:32 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240208012057.2754421-2-yshuiv7@gmail.com> In-Reply-To: <20240208012057.2754421-2-yshuiv7@gmail.com> From: Masahiro Yamada Date: Tue, 13 Feb 2024 06:29:55 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] kbuild: Fix building with LLVM on NixOS To: Yuxuan Shui Cc: llvm@lists.linux.dev, nathan@kernel.org, nicolas@fjasle.eu, linux-kbuild@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, linux-kernel@vger.kernel.org, Fangrui Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable +Cc: Fangrui Song On Thu, Feb 8, 2024 at 10:22=E2=80=AFAM Yuxuan Shui wro= te: > > NixOS is designed to have immutable packages, and explicit dependencies. > It allows multiple different versions of the same shared library to > co-exist in its file system. > > Each application built with Nix, the NixOS package manager, will have > paths to its dependency shared libraries hardcoded into its executable, > this includes the dynamic linker. To achieve this, Nix adds a > --dynamic-linker linker flag when building any application. > > This isn't a problem if the kernel is built with ld.bfd, because ld.bfd > ignores the --dynamic-linker flag when the resulting binary doesn't have > a DT_NEEDED entry. However, ld.lld respects --dynamic-linker > unconditionally, which breaks linking in several cases. > > This commit adds an explicit --no-dynamic-linker flag which overrides > the flag added by Nix. I expect some Acks from LLVM folks (especially, from Frangrui) if this is the right thing to do. > Signed-off-by: Yuxuan Shui > --- > Makefile | 3 +++ > arch/x86/boot/Makefile | 2 +- > arch/x86/realmode/rm/Makefile | 2 +- > 3 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/Makefile b/Makefile > index a171eafce2a3b..10ed19caecb1b 100644 > --- a/Makefile > +++ b/Makefile > @@ -531,6 +531,9 @@ RUSTFLAGS_KERNEL =3D > AFLAGS_KERNEL =3D > LDFLAGS_vmlinux =3D > > +LDFLAGS_MODULE +=3D --no-dynamic-linker > +LDFLAGS_vmlinux +=3D --no-dynamic-linker > + > # Use USERINCLUDE when you must reference the UAPI directories only. > USERINCLUDE :=3D \ > -I$(srctree)/arch/$(SRCARCH)/include/uapi \ > diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile > index 3cece19b74732..390a4604166eb 100644 > --- a/arch/x86/boot/Makefile > +++ b/arch/x86/boot/Makefile > @@ -102,7 +102,7 @@ $(obj)/zoffset.h: $(obj)/compressed/vmlinux FORCE > AFLAGS_header.o +=3D -I$(objtree)/$(obj) > $(obj)/header.o: $(obj)/zoffset.h > > -LDFLAGS_setup.elf :=3D -m elf_i386 -z noexecstack -T > +LDFLAGS_setup.elf :=3D --no-dynamic-linker -m elf_i386 -z noexecsta= ck -T > $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE > $(call if_changed,ld) > > diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefil= e > index f614009d3e4e2..4b42006d9ce02 100644 > --- a/arch/x86/realmode/rm/Makefile > +++ b/arch/x86/realmode/rm/Makefile > @@ -50,7 +50,7 @@ $(obj)/pasyms.h: $(REALMODE_OBJS) FORCE > targets +=3D realmode.lds > $(obj)/realmode.lds: $(obj)/pasyms.h > > -LDFLAGS_realmode.elf :=3D -m elf_i386 --emit-relocs -T > +LDFLAGS_realmode.elf :=3D --no-dynamic-linker -m elf_i386 --emit-relocs = -T > CPPFLAGS_realmode.lds +=3D -P -C -I$(objtree)/$(obj) > > targets +=3D realmode.elf > -- > 2.43.0 > --=20 Best Regards Masahiro Yamada