From patchwork Thu Apr 17 17:33:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 61519 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C1C59C369CA for ; Thu, 17 Apr 2025 17:33:39 +0000 (UTC) Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by mx.groups.io with SMTP id smtpd.web11.14844.1744911215588191613 for ; Thu, 17 Apr 2025 10:33:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=FB8gI3Tg; spf=pass (domain: gmail.com, ip: 209.85.214.175, mailfrom: raj.khem@gmail.com) Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2279915e06eso13814425ad.1 for ; Thu, 17 Apr 2025 10:33:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744911215; x=1745516015; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=NzpEz3/uM8vkYUPavjriJy06u9QZo0mEOskBSx2QKIk=; b=FB8gI3TgkLXYqQexwiilxvI1omt7NkOmMFyIfzqx776vPX4ldVjhExD/y5pDjAb+68 Jgc6GKQ6dFzs0/DtnNyhidyzKFw8jJxLvbYm2N//t3HRwiN3v5XxAlD38COh46DWpV5B 1G+HGhLxrpAgfS9TubXnZ/iwagkr8MO4vAbxhF/mkBT9yBNSqa37DkXPRjzfKVjngG4H nAm+/e4DtFTYaRyxPWh0T8/dAHP5YxfEBNIMBGGJbMBXYuvDIcLQCZKEy5voLKVa6k9K 64jCLkDxzf047wgJ/tGt9YtoqO9baXH6M5h2sp1DCROkVsJs4ujUVb6WjswVcHnH/Gix ERtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744911215; x=1745516015; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=NzpEz3/uM8vkYUPavjriJy06u9QZo0mEOskBSx2QKIk=; b=u404Y5N67/xnqQaYB7mXLPrHJ4cZhcjyOQ8Y4k4RwnwLPJna0qm+/W7A4QLZ7fN/Sq 8gJmCNwdwUmA/nyXBUHrAEODj/8gIpsXvaQ7pS/85NS0YnUfwydB8NsClxbBn796ytBM 84kl0c6xUQsOZkzwqInJMTjjkF8p7Mtvc6yjDj1xAdVgGd3a7YZTXdPJUQvg4E1Guy9C gbBEGqdDkApNMoBGh1PnZmtsttWEER3gFxH7pxrYHKoq/3qbhbmH8zQ89ybEvGVGMZpS rdQwu7AuBeUxQ1qKwZb+uV6aC8VqtIJ5TQbf/YY3PUvTlKK2Zq9ZJC8rBu+4Ey44v+cz wtTw== X-Gm-Message-State: AOJu0YxctzrYMHpPgSz/bIo8liPs4bpkDlUmY0JiE+A8LHnwYi35GUhY uv+C2JzJY12N9/AkyxJyN6hDRUJE5DjzktFYo3xjoE2lr+FsIAdnsIWXzpp2 X-Gm-Gg: ASbGncuj1dwGrWkLfgwM2qwx1AJtiMZh6yWhmfwURbA7pVCu52vjrzRVNY4lwtwa2wv S/dfaUqBOK8Z/qMLEgzLWrSSXSiSip2dA/YtUwmJC62zSpmzCVUY3hVqJQ/x4r16QtnzqA1rXU3 s9eLDqwf5Pvx6DXFpZZ7Y9B7cQloDcFTXyXQsTernXpn2s42W3ypbGyOGgMsZ5A2jGHoqoclB0Y +3Fz70wF920vt02P5W4fDJO+y5pbqqfJZ9q9bDzzJWi1jqi48Fw2lJHmVoV7uTZqHyYQUc3wQnE 3rS4RR1Z/me9D/gk4WaVUqt54fIL5Ius X-Google-Smtp-Source: AGHT+IGJGZ4Z5TWliansnrTHstSYMuqN1yEsZrfZ+aC8690A9OSqILA2h39fBwta0LJC5Lw+jMaYqw== X-Received: by 2002:a17:903:1a0d:b0:220:d909:1734 with SMTP id d9443c01a7336-22c358d9f8emr110849325ad.14.1744911214719; Thu, 17 Apr 2025 10:33:34 -0700 (PDT) Received: from apollo.localdomain ([2601:646:8201:fd20::c043]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ece2f8sm2550245ad.189.2025.04.17.10.33.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Apr 2025 10:33:34 -0700 (PDT) From: Khem Raj To: openembedded-core@lists.openembedded.org Cc: Khem Raj Subject: [PATCH 1/2] glibc: Forward -ffile-prefix-map option to assembler flags Date: Thu, 17 Apr 2025 10:33:31 -0700 Message-ID: <20250417173332.554656-1-raj.khem@gmail.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 17 Apr 2025 17:33:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215106 Signed-off-by: Khem Raj --- ...le-prefix-map-from-CFLAGS-to-ASFLAGS.patch | 24 +++++++++++++++++++ meta/recipes-core/glibc/glibc_2.41.bb | 1 + 2 files changed, 25 insertions(+) create mode 100644 meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch diff --git a/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch b/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch new file mode 100644 index 00000000000..862c7b9086e --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch @@ -0,0 +1,24 @@ +From 603e50d6b8ccadb32d59b0497f76629665c1794b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 16 Apr 2025 19:51:01 -0700 +Subject: [PATCH] Propagate -ffile-prefix-map from CFLAGS to ASFLAGS. + +Upstream-Status: Submitted [https://sourceware.org/pipermail/libc-alpha/2025-April/165969.html] +Signed-off-by: Khem Raj +--- + Makeconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makeconfig b/Makeconfig +index e35c5cfe4e..7a19c731c6 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -1176,7 +1176,7 @@ endif + + # The assembler can generate debug information too. + ifndef ASFLAGS +-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS)) ++ASFLAGS := $(filter -g% -fdebug-prefix-map=% -ffile-prefix-map=%,$(CFLAGS)) + endif + override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu) + diff --git a/meta/recipes-core/glibc/glibc_2.41.bb b/meta/recipes-core/glibc/glibc_2.41.bb index d707e1a6775..82dcf08fcd0 100644 --- a/meta/recipes-core/glibc/glibc_2.41.bb +++ b/meta/recipes-core/glibc/glibc_2.41.bb @@ -54,6 +54,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ file://0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch \ file://0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch \ file://0001-stdlib-Add-single-threaded-fast-path-to-rand.patch \ + file://0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch \ " S = "${WORKDIR}/git" B = "${WORKDIR}/build-${TARGET_SYS}" From patchwork Thu Apr 17 17:33:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 61518 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C0EF4C369C9 for ; Thu, 17 Apr 2025 17:33:39 +0000 (UTC) Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by mx.groups.io with SMTP id smtpd.web10.14734.1744911216477283508 for ; Thu, 17 Apr 2025 10:33:36 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=lAW723Hd; spf=pass (domain: gmail.com, ip: 209.85.214.177, mailfrom: raj.khem@gmail.com) Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-227914acd20so18623345ad.1 for ; Thu, 17 Apr 2025 10:33:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744911216; x=1745516016; darn=lists.openembedded.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=jwjAOYfYtFQLK0OEiNsl9vnbIDKJylWvKVCZTy6auRs=; b=lAW723HdcY04xWG74iBKjGlU2hOjZ2MwuqF+GYrcD3Ew0XGJInrbfAAVFcJhmwHvoS mjFsZokPHFQnMMDsLO1z1/Fx6prEts1N0ZXxLqeNBsG6PGVXOaz9/gudIVsdLvB3Qfdh 5EIHNIarzk1TlegSsZKWh8Z5QJ/04Fawn/8ihLE/BxsocA2eHYkeD9WPjl5RAML9CneN 2lbRriQPzH79jvW2sc/gStWHXvk7XpHJ2TVjnfubJ5QOy4GtUvg0CQ5ujy5+HQr/qh6P 5moQJZcUQl40bdk4BOZO0i8yKP3vJWaMhqPjPsM9FDPsQCMCTGrkI3/2LyvEGHn0cKx0 s8fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744911216; x=1745516016; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jwjAOYfYtFQLK0OEiNsl9vnbIDKJylWvKVCZTy6auRs=; b=PoGdK48OEnbpYcPJECxNfsSMtdRu7Z8tjpZSZO5dmCqm2a+LfHyIiQdqngUaR9A5Z+ j4fXDQ3dUEooxJne8dtPU2QJV/TC4Gv2HyiFCQfxR2Sw2Y3opIaQZwkLdbJDkcybvEua iv1yG29HjnkviY/c27UaLYeVkRC3hEFJD5DzMWXgZHdCu8/yTQ3DAGmHltVMryIodaV7 21sSU7+pgSntWNF/TL0V952O/oP24fymeoqMhM+d/cKn8kajtsrQfWxD4+FLCp2Z23/e WS1T8B77NLXZhe67k+RZPKh7pjpG8OR4rC8mRxCrbeVkslBZqAfXXsPEhnTtjeWpc7CR Ud9g== X-Gm-Message-State: AOJu0YxRIFYTZ9a+xvGsLllinQhkpqMS3dK6FlacWrxgXTxB4JiywIeN 8DBJaTIYUNh0x8FUcQ84W0rQrM4Cx/cgoqhF++cpIYl0qbIpTRlzTisFIk32 X-Gm-Gg: ASbGncvBifCWi7rYuwcOpYBKPRzt72MupAqfFC+kIrHKjdtvuPPPZ27x+BuEv2ZbKrd uF2eE5R8bVCqo5kPkbnFbj8QJCkVrQcB7k6EGc255r2hw+wuACh/10Ie96oTqi/Dhld0IDA65Wa v5ztLiP18UHRfLbRaeREHZEkBH7qdOa6eZ8WwYiGhWx7+RFB+VmCdUzfDZIZBnPDJDrmg5+0bXK jtb3P1i+CA9o2awt9B/BtAv8RoR3F2+G0vtMxarENHymPAotIZQt+uRQQBXR++uNe5/W7h0JC5L sz1Ubcgf87kyzs4gEt0whYsEJwDLIjlv X-Google-Smtp-Source: AGHT+IFkkDrKtZUjnm5k6RUQV3xV0El0/V+g70G+GHvVHY7GbnDn3STK8LR5SH6i98V2VyjnfHTdGQ== X-Received: by 2002:a17:903:3bcc:b0:223:3eed:f680 with SMTP id d9443c01a7336-22c50d44a6bmr9136015ad.18.1744911215672; Thu, 17 Apr 2025 10:33:35 -0700 (PDT) Received: from apollo.localdomain ([2601:646:8201:fd20::c043]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ece2f8sm2550245ad.189.2025.04.17.10.33.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Apr 2025 10:33:35 -0700 (PDT) From: Khem Raj To: openembedded-core@lists.openembedded.org Cc: Khem Raj , Jacob Kroon , Martin Jansa Subject: [PATCH 2/2] bitbake.conf: Switch prefix mapping to use -ffile-prefix-map Date: Thu, 17 Apr 2025 10:33:32 -0700 Message-ID: <20250417173332.554656-2-raj.khem@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417173332.554656-1-raj.khem@gmail.com> References: <20250417173332.554656-1-raj.khem@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 17 Apr 2025 17:33:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215107 -ffile-prefix map is more comprehensive when it comes to reproducible builds and its superset of all prefix-mapping options in compilers This makes is cleaner and workable across gcc and clang, clang does not support -fcanon-prefix-map and it has to be explicitly omitted when using clang. There are lambdas generated in templates by clang which still get the absolute paths despite -fdebug-prefix-map, this helps with that as well. nasm is an outlier and we have fixed it by adding -fdebug-prefix-map option luckily we do not pass DEBUG_PREFIX_MAP to nasm, in all recipes which use nasm either pass -fdebug-prefix-map explicitly to nasm or they rewrite it to use nasm flags syntax. We have discussed this in past [1] [1] https://patchwork.yoctoproject.org/project/oe-core/patch/20230428032030.2047920-1-raj.khem@gmail.com/#10281 Signed-off-by: Khem Raj Cc: Jacob Kroon Cc: Martin Jansa --- meta/conf/bitbake.conf | 14 +++++--------- meta/recipes-devtools/go/go-cross-canadian.inc | 6 +++--- meta/recipes-devtools/go/go-runtime.inc | 4 ++-- meta/recipes-devtools/go/go-target.inc | 4 ++-- meta/recipes-devtools/rust/cargo_1.85.1.bb | 2 +- 5 files changed, 13 insertions(+), 17 deletions(-) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 501808204e5..b1dae172678 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -652,15 +652,11 @@ EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} " ################################################################## TARGET_DBGSRC_DIR ?= "/usr/src/debug/${PN}/${PV}" # Beware: applied last to first -DEBUG_PREFIX_MAP ?= "-fcanon-prefix-map \ - -fmacro-prefix-map=${S}=${TARGET_DBGSRC_DIR} \ - -fdebug-prefix-map=${S}=${TARGET_DBGSRC_DIR} \ - -fmacro-prefix-map=${B}=${TARGET_DBGSRC_DIR} \ - -fdebug-prefix-map=${B}=${TARGET_DBGSRC_DIR} \ - -fdebug-prefix-map=${STAGING_DIR_HOST}= \ - -fmacro-prefix-map=${STAGING_DIR_HOST}= \ - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ - -fmacro-prefix-map=${STAGING_DIR_NATIVE}= \ +DEBUG_PREFIX_MAP ?= "\ + -ffile-prefix-map=${S}=${TARGET_DBGSRC_DIR} \ + -ffile-prefix-map=${B}=${TARGET_DBGSRC_DIR} \ + -ffile-prefix-map=${STAGING_DIR_HOST}= \ + -ffile-prefix-map=${STAGING_DIR_NATIVE}= \ " DEBUG_LEVELFLAG ?= "-g" diff --git a/meta/recipes-devtools/go/go-cross-canadian.inc b/meta/recipes-devtools/go/go-cross-canadian.inc index ff6c063d69e..f9b172f37c3 100644 --- a/meta/recipes-devtools/go/go-cross-canadian.inc +++ b/meta/recipes-devtools/go/go-cross-canadian.inc @@ -8,9 +8,9 @@ PN = "go-cross-canadian-${TRANSLATED_TARGET_ARCH}" # it uses gcc on build machine during go-cross-canadian bootstrap, but # the gcc version may be old and not support option '-fmacro-prefix-map' # which is one of default values of DEBUG_PREFIX_MAP -DEBUG_PREFIX_MAP = "-fdebug-prefix-map=${WORKDIR}=${TARGET_DBGSRC_DIR} \ - -fdebug-prefix-map=${STAGING_DIR_HOST}= \ - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ +DEBUG_PREFIX_MAP = "-ffile-prefix-map=${WORKDIR}=${TARGET_DBGSRC_DIR} \ + -ffile-prefix-map=${STAGING_DIR_HOST}= \ + -ffile-prefix-map=${STAGING_DIR_NATIVE}= \ " export GOTOOLDIR_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/${HOST_SYS}/go/pkg/tool/${BUILD_GOTUPLE}" diff --git a/meta/recipes-devtools/go/go-runtime.inc b/meta/recipes-devtools/go/go-runtime.inc index e5f17337bcb..a38c2ef9e9b 100644 --- a/meta/recipes-devtools/go/go-runtime.inc +++ b/meta/recipes-devtools/go/go-runtime.inc @@ -3,8 +3,8 @@ DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go" PROVIDES = "virtual/${TARGET_PREFIX}go-runtime" DEBUG_PREFIX_MAP = "\ - -fdebug-prefix-map=${STAGING_DIR_HOST}= \ - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ + -ffile-prefix-map=${STAGING_DIR_HOST}= \ + -ffile-prefix-map=${STAGING_DIR_NATIVE}= \ " export CGO_CFLAGS = "${CFLAGS}" diff --git a/meta/recipes-devtools/go/go-target.inc b/meta/recipes-devtools/go/go-target.inc index 981c7abd313..fe60f4d9649 100644 --- a/meta/recipes-devtools/go/go-target.inc +++ b/meta/recipes-devtools/go/go-target.inc @@ -2,8 +2,8 @@ DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native" DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go go-native" DEBUG_PREFIX_MAP = "\ - -fdebug-prefix-map=${STAGING_DIR_HOST}= \ - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ + -ffile-prefix-map=${STAGING_DIR_HOST}= \ + -ffile-prefix-map=${STAGING_DIR_NATIVE}= \ " export CGO_CFLAGS = "${CFLAGS}" diff --git a/meta/recipes-devtools/rust/cargo_1.85.1.bb b/meta/recipes-devtools/rust/cargo_1.85.1.bb index db18ecfda9a..150c2d2b801 100644 --- a/meta/recipes-devtools/rust/cargo_1.85.1.bb +++ b/meta/recipes-devtools/rust/cargo_1.85.1.bb @@ -19,7 +19,7 @@ CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor" inherit cargo pkgconfig -DEBUG_PREFIX_MAP += "-fdebug-prefix-map=${RUSTSRC}/vendor=${TARGET_DBGSRC_DIR}" +DEBUG_PREFIX_MAP += "-ffile-prefix-map=${RUSTSRC}/vendor=${TARGET_DBGSRC_DIR}" do_cargo_setup_snapshot () { ${UNPACKDIR}/rust-snapshot-components/${CARGO_SNAPSHOT}/install.sh --prefix="${WORKDIR}/${CARGO_SNAPSHOT}" --disable-ldconfig