From patchwork Thu Mar 6 10:26:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Schindelin X-Patchwork-Id: 14004143 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 0F85F1A08A6 for ; Thu, 6 Mar 2025 10:26:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741256787; cv=none; b=grcj+WMRnFpM8XxKOEtVEd3w4ql+p7WjcWg5XcsU53CqezKw30Xvs8mNjKHBWTrjqLxlUvKz0KRvYwI/BBeUlHTWReUhao6QqkICNjbSDaaikWwHQU7UZ4r9qk44T4JvKDv85evwsr3qZNG+ZTANXqxO3EYNX+1H4CZotm+GoZc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741256787; c=relaxed/simple; bh=sBXlGnl3YiPDVj/7H6m5lyGneW9o3oghfDsYkvyY6MI=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=I64OOHTKGscOVmpUVumwjAXaAZsowBD+aHJ8AJ+twsyZNif0/dP+pIe7PM9aEygOJwEZGhbDTManiMAvEFULJFrW5GyOMghVR3mJ/3V/GK2htNNYoXtts7O4drkUi4gNFrjrjIsIETW8fnXA4dq+ipn7Stcj1pitHnu14l7+qz0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FeSOpNHD; arc=none smtp.client-ip=209.85.218.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FeSOpNHD" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-abf4802b242so96355666b.1 for ; Thu, 06 Mar 2025 02:26:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741256783; x=1741861583; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=fgs3VXcVUBh0msV7ZKlvolwa9jpOD/UhNH+Fgco2h0U=; b=FeSOpNHD0ewRZnU3lyAsPxs/+lnWcHYuomCPMhduebXjnfg1HklILkAfmWA+nxuXDy ySnoSw1kUGhecbxdVmMHUr5OVoy3joEMEKL2/9IHBK6O+1V9TzkrohPjIX3nzG15fvWV 7bD1Y65BqihFCaZuy+RDGuI3v4NCSyp5INIsSe2GttnDhvqRPhmnM1K1bIuUvWb0VEpP DjZbXZ9HDiDzIF0gHvtdOcoeqSvooFmPBeFmGmNQH2ZmZQhiBN4D8/edM7O+aRCzZAAe aY7R0QyLfC74cKKwW7NJPcaDxnzgVYzDKWZORuR+ENO/GWYYl+dB86qtuBeGlKJfePrE 4WGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741256783; x=1741861583; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fgs3VXcVUBh0msV7ZKlvolwa9jpOD/UhNH+Fgco2h0U=; b=B4kM0geMr1JQOoCNWw+kFT466u3kymxmD+aGDOkUbteTXhMvoh2sYw1AeA2Iu0hcUI X+KkMQt9JemdLVRa7PoXjNYVnMGiTpWmskwvR4F9bk+g7/AHV5cCA3Zx2yCkeJjqiBrL PDujaYclZ4Avpj+aPsCKeTJn5DbqalMMQfXU9VQFmcr65wySA+P5lGBUgS8vVXChsCeT vDGOqwtugZk4w/oZouYWVYtMYHQCsViHlun4ssAaYqjB0eYBpz4/rUIpuaT3VNPtB/Xc gak2gBcZyQsVXjxkefuOkU8fdFPFtj24FJBxNRognliakBxcAKS1w3/1zImrV5NuwKUl Pr9g== X-Gm-Message-State: AOJu0Yx8DOXWeNxKHiMKsZzBnfnW6FVEIm8awskM017T1+3tjvutYcGG Z97IjXxOhdM8xT6giNcrfGLVFFtHcFukYQYxvoJsZOHBnjAXVTISzq1nvQ== X-Gm-Gg: ASbGnctcDPAKwjKNqRUpogsFuhr/zQ7f24O7gATaVK0pTUui5IMLYUHcrmtBpv2Jb+y QZFp+qeHVnijX4qbBue4dhyPNrrbITxfBueahgI45zbKjxCm3FlOnoNglypzzQBMgPiOk6zhNRk ZK4uhfYemAM5NsNiBtEXGWWXMhZYnFU9sJQGOV6oZosCyoBc5F41SsbS/S3Pcpo+9U51OW6NytJ OSOct4jaxBXyHiOUephLbRXHoajb2LnMCRFPOPvsH1EJ3dbl/NlSind1K1guz50/pAXAwwxabtN 8h+xcC2uRtJZt3VQYxsiXdxKwj4eSVH+BR/Rs5GFJQzGxw== X-Google-Smtp-Source: AGHT+IH7C7cQcfwTHYvN1Sf7x1cCQ2z1ZUvCo5hKgY47PMw0zOZU1pXtTSUgQtZCXcB63/ti5X6Ggw== X-Received: by 2002:a17:907:9494:b0:ac1:f002:d840 with SMTP id a640c23a62f3a-ac20da862d9mr785174166b.45.1741256783013; Thu, 06 Mar 2025 02:26:23 -0800 (PST) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac23988e740sm70361566b.157.2025.03.06.02.26.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Mar 2025 02:26:22 -0800 (PST) Message-Id: <3e9ccffc7474698947bdcb6d49b5d0728deadd08.1741256780.git.gitgitgadget@gmail.com> In-Reply-To: References: Date: Thu, 06 Mar 2025 10:26:18 +0000 Subject: [PATCH v2 1/3] ident: stop assuming that `gw_gecos` is writable Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Patrick Steinhardt , Johannes Schindelin , Johannes Schindelin From: Johannes Schindelin From: Johannes Schindelin In 590e081dea7c (ident: add NO_GECOS_IN_PWENT for systems without pw_gecos in struct passwd, 2011-05-19), code was introduced to iterate over the `gw_gecos` field; The loop variable is of type `char *`, which assumes that `gw_gecos` is writable. However, it is not necessarily writable (and it is a bad idea to have it writable in the first place), so let's switch the loop variable type to `const char *`. This is not a new problem, but what is new is the Meson build. While it does not trigger in CI builds, imitating the commands of `ci/run-build-and-tests.sh` in a regular Git for Windows SDK (`meson setup build . --fatal-meson-warnings --warnlevel 2 --werror --wrap-mode nofallback -Dfuzzers=true` followed by `meson compile -C build --` results in this beautiful error: "cc" [...] -o libgit.a.p/ident.c.obj "-c" ../ident.c ../ident.c: In function 'copy_gecos': ../ident.c:68:18: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers] 68 | for (src = get_gecos(w); *src && *src != ','; src++) { | ^ cc1.exe: all warnings being treated as errors Now, why does this not trigger in CI? The answer is as simple as it is puzzling: The `win+Meson` job completely side-steps Git for Windows' development environment, opting instead to use the GCC that is on the `PATH` in GitHub-hosted `windows-latest` runners. That GCC is pinned to v12.2.0 and targets the UCRT (unlikely to change any time soon, see https://github.com/actions/runner-images/blob/win25/20250303.1/images/windows/toolsets/toolset-2022.json#L132-L141). That is in stark contrast to Git for Windows, which uses GCC v14.2.0 and targets MSVCRT. Git for Windows' `Makefile`-based build also obviously uses different compiler flags, otherwise this compile error would have had plenty of opportunity in almost 14 years to surface. In other words, contrary to my expectations, the `win+Meson` job is ill-equipped to replace the `win build` job because it exercises a completely different tool version/compiler flags vector than what Git for Windows needs. Nevertheless, there is currently this huge push, including breaking changes after -rc1 and all, for switching to Meson. Therefore, we need to make it work, somehow, even in Git for Windows' SDK, hence this patch, at this point in time. Signed-off-by: Johannes Schindelin --- ident.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ident.c b/ident.c index caf41fb2a98..967895d8850 100644 --- a/ident.c +++ b/ident.c @@ -59,7 +59,7 @@ static struct passwd *xgetpwuid_self(int *is_bogus) static void copy_gecos(const struct passwd *w, struct strbuf *name) { - char *src; + const char *src; /* Traditionally GECOS field had office phone numbers etc, separated * with commas. Also & stands for capitalized form of the login name. From patchwork Thu Mar 6 10:26:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Schindelin X-Patchwork-Id: 14004144 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (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 3A0F71F63E1 for ; Thu, 6 Mar 2025 10:26:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741256787; cv=none; b=rtPSgRHKzM9l23xoxRJnetwAVXov9A3ZQxlmGoBSXoJ2qESHynyfsIi9xN+rdce0UwFhN+zsQqLscz8dOLtLgyRD1nttw209xNOo7XD4DtmdFefdjc1BMPOIqqPzEqtaSrHLVJwUgL3PTtbgdkX8twXUuqTiuWuzhoEIUsHHJYM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741256787; c=relaxed/simple; bh=GwADelxk4yHsyojxB7C8PKTjwHaY08iMf638eGvAp0Y=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=uIQoWRsyWxyVmF6HpUUQ/WfnqNi5xUujVBYBp05mUwasU5MDZ9Dm6rksTwxrck9j8enJVQ+c17cte7kBt569iFgeYQIGqYegGX3RST725qzTL9pUwSB56f2JUxSVE5HIEZkzvVetQcCQ6ApeWx6kxUcXrOXoLwkUjGtQnA8TCOc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OUb42/Gh; arc=none smtp.client-ip=209.85.218.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OUb42/Gh" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-aaee2c5ee6eso73908166b.1 for ; Thu, 06 Mar 2025 02:26:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741256784; x=1741861584; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=cGaJujnVkNJgk8cC3UaqeOejOCa90fkdzPUMX4gKgqc=; b=OUb42/Gh52fishcTLAmTUFdEpnwU5WSo6Y3tQq/Yls0HBTknxYnDALVUYR5Vva558D PrS5gFxksFwmNh3HCuvmAmhWvozcaiIyvIstxEVAAbjO9UlSJPZI2TMkh6mzDfbPp8Y+ 7TsYO65Jtg8+TLFfNU1h19pJkNMo559WErcMovsFwGdc8CNu+1kQbfjO4Q6v8VBTHDl+ 0BodSvEjKpPBIjFZIqmqlS2WPCNzov4i7kRU15C0NNDgtjrDffrHK0rclby5GF4nbrlg VFTj87hNJAvDQDt6voxaEzYtpNnKmzINoBiYn+AZ62tPCOkRMTEgJPh/n+OTO8q6tCwj wiMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741256784; x=1741861584; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cGaJujnVkNJgk8cC3UaqeOejOCa90fkdzPUMX4gKgqc=; b=PI7Qf0ZDqd7ot3oSsEp3WHQKqPQ50YzMgUZflbEYq8qZPMZ9d9OVGWI1l4RHHy8bBi nLi0e1WL8Kb23v+UudDkLUPfTrWifaQENyZ5U+5BUoj3eHtDH1tCq1uHmKLlhRD2iIF6 J/ZS7z+SolMeYk5daalyzKIL+U9+k7ZsfOOfsmSfNuWMw0m3zymGApxtSRbnNfPZLZim 1kHgIUajMk4+S3gsY4/JOadUbxEYUegHLGCEo3WkdfABbUHiEYmZ81vjn4WYDT+ADBPn U9tWGC65FpMpp5JbCwFJEU9wQOfhskR2fOTOQU4xqDNeGyDOmxpNeyzIBXFF72LQ2MN6 WvZQ== X-Gm-Message-State: AOJu0YxBiGdXbgyrCenC4/+NAMbUpZQ7ke5ZIN2WtCPdJ/l2Cixl1wen kyNbuutC27wUS3alH09eOJ02/2rT5Jj5INwbRb95scgK28jZD1AjECMbfA== X-Gm-Gg: ASbGncuJ4d6vEJw70nHDDrjlWGwwgurO4YBj5bwmFbtbQOPwDZFQi/q7LpeSPbN7Oy1 eDP+bR0wl2syDTYyOX53QsnoNdaF7tVepmMRw22gE/dnCyqQsyFkhc9e+jIr80ysnMtCZVOBVXx fR4vZuzELLnsUS9YU1jeihnPT6Ko4AxpeY29hUDfcb5bti2Y5r9EzKTfQZ111YP2NmpW5c1Pw2T ZQ2I3goz1Z3PfCGEly5Z+LmVzwWFoNz/mwX4BrwZLjCAXlnAcNkE9F8JptAVxQHrJt6mwRYpBD0 KEW2jCsHV4uONCQJ5Vs2C5z1scRlgPipNp7NbeuFxRzbGA== X-Google-Smtp-Source: AGHT+IHSZowailUCkMRsOIBhNvf/o+iLY5Tn59Ad7IfIQFqcAna8vzcpKCtTu2csWi2WfGjMZ+5WvQ== X-Received: by 2002:a17:907:96a5:b0:abf:7a26:c46e with SMTP id a640c23a62f3a-ac20da536d2mr709101266b.30.1741256783764; Thu, 06 Mar 2025 02:26:23 -0800 (PST) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac23988e590sm70090566b.150.2025.03.06.02.26.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Mar 2025 02:26:23 -0800 (PST) Message-Id: <4e9ab3e011f0d3c619f58ec88c8bbe8f5cd56ac1.1741256780.git.gitgitgadget@gmail.com> In-Reply-To: References: Date: Thu, 06 Mar 2025 10:26:19 +0000 Subject: [PATCH v2 2/3] meson: fix sorting Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Patrick Steinhardt , Johannes Schindelin , Johannes Schindelin From: Johannes Schindelin From: Johannes Schindelin In 904339edbd80 (Introduce support for the Meson build system, 2024-12-06) the `meson.build` file was introduced, adding also a Windows-specific list of source files. This list was obviously meant to be sorted alphabetically, but there is one mistake. Let's fix that. Signed-off-by: Johannes Schindelin --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index e86085b0a47..efe2871c9db 100644 --- a/meson.build +++ b/meson.build @@ -1109,11 +1109,11 @@ elif host_machine.system() == 'windows' libgit_sources += [ 'compat/mingw.c', 'compat/winansi.c', + 'compat/win32/dirent.c', 'compat/win32/flush.c', 'compat/win32/path-utils.c', 'compat/win32/pthread.c', 'compat/win32/syslog.c', - 'compat/win32/dirent.c', 'compat/win32mmap.c', 'compat/nedmalloc/nedmalloc.c', ] From patchwork Thu Mar 6 10:26:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Schindelin X-Patchwork-Id: 14004145 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) (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 4FAD7200BB2 for ; Thu, 6 Mar 2025 10:26:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741256789; cv=none; b=RSDVN4Z9IrnZTMhB05d4CeffZ9+UviV3/bAXQma9quMZqk5XTKcaqZKrY8NWGm3ZgpiDk2XIihPxN3JUbEEA3NrshzJg4feaQ2O9rvUlog7MrnRqIf+NGvi1QwhKX5i5p2f88e8h4TK1tMqmki6oUZUHnQv9gSZe36OorgnYq48= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741256789; c=relaxed/simple; bh=MS04Wd+wCruY9ILuKpUoJZsIKYwaCv8R3zRVksflk0g=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=hdB9/HzM9fKiQzIvfoyEXGP+YUvPpcQZJw2lAkm9ia5MA/9zgqODy7ryeGG+t5JFbbOb3WeoMhXGJRxPIneAtgRos1FtWVi0l09jAYJAeah2HpTM9iTBF3UcM8pGPRKUnP7931xjSbPQOgwDuxBxAgO54xfWUO5lRwQJ7zh37+s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TMyU+If0; arc=none smtp.client-ip=209.85.218.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TMyU+If0" Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-ac21c5d0ea0so62531566b.2 for ; Thu, 06 Mar 2025 02:26:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741256785; x=1741861585; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=3KaNfvj71wrgb2f2vMO/kY2tf0Sw+soCYRf35rIjfRY=; b=TMyU+If0rXCRwzDnSs5IKm/NUqh665XE5n0MqnFjQbwdqcgzo/Me89epxWfHAuDlV1 kSZfqysnGt8ReE+TGzNW4n7kqgj1gbVEX8+xAKiF3UCNbQCIUfnu9SSf8z1n0LnUhK5D lJm+vJmtP/FCv//0FQYntTDIt+hlF/EXEGB3aUq2U/TTmifp5VTYM76cTBwLBdBnZD+A yC94b3HxHzNdnsBeEzdaZm39L8y0M7ST0L9yFDxyi+Xl/2mhPYc+35k/zUgWAmIgAaL9 Ld/DIs1yemOT2aA5vaoLSUCSOSvN8v/B/ieBIHFMQ0lh68Df00dNyQl09tsMgZnQnli1 PfSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741256785; x=1741861585; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3KaNfvj71wrgb2f2vMO/kY2tf0Sw+soCYRf35rIjfRY=; b=QFFEx5id+1XNetBSHhc8FInBGpl6l7tNCdQVi0IsdUJvZNLlCcWdMEu1ph6+GRMARQ 5OyhOifpQuNCebKf9BpblVcjy4DsfBO4WWV2I4vyCf6MESLMt8/R/ooSBsCzgom8Zbi5 vp97LYw+WN/S9IRXdJdThrZQOz+GLapPTex+econSI5npO8PEJXpGZPspPkN0+LitmES fhI643uvVjFW5qBGOzKAtfAkAJBC9gGAxtbCYRB38peAbawzl2W837J/wQTfZrv0hqK8 K74OgYxztCTINp0JiJIkm4TpscgutuhwFbRrS2+KVMmf0Bodqb6Lgjnxc7DvZjFDNM7P PeSQ== X-Gm-Message-State: AOJu0YzpvLXxdLFF+vJw9C88vURcExXTUYAhrZXn64H4imAwloRvhjVX zEKH1zBIYyungyUtZUENRXTDpl+GDqdGdLlus1PrxNFjHvI67WJmrdd48A== X-Gm-Gg: ASbGncs+gTRZxYsL9bTBdmc6XbajBjsOinIocQETLmdM0Rix5GHFD50IdHgql1zC8YO 6kSrVdE9S9aWNNgjCBeJMdCqO7muLWdF1+u1PF2C5Yeasy9o4KGAQecRZmeXkKeulkWA5IvCNCg 0sbIeFEaOJYi0Z4n8Nxum5VzAUy/quXMHYSfltDT3ODOJHYdqY7+M54ugMF1k6ZCLI5DO/b/v3q uBKBd+yLQXfw7aNFsQU7lB+irdYwjTmQ/iq4sUtcE+yDhrmcgOzeOg1S1kSWqXa9D3/FScDB+lL TnFKifI+fmqAANQzLdjXUNWn36GFTIFdS1QWTVJ9HipbBw== X-Google-Smtp-Source: AGHT+IFBDaQRdeLua/v9Ny6cAuWlBCL9aSg/yRc2uqis/5++akeiMJ83TpmiqSYKy2u6zEhKLTG0mQ== X-Received: by 2002:a05:6402:274a:b0:5e4:92ca:34d0 with SMTP id 4fb4d7f45d1cf-5e59f47f014mr15092291a12.20.1741256785082; Thu, 06 Mar 2025 02:26:25 -0800 (PST) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c7472151sm729296a12.26.2025.03.06.02.26.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Mar 2025 02:26:24 -0800 (PST) Message-Id: <59a2e586e1ae705471c7003efc007df5447692f9.1741256780.git.gitgitgadget@gmail.com> In-Reply-To: References: Date: Thu, 06 Mar 2025 10:26:20 +0000 Subject: [PATCH v2 3/3] cmake: generalize the handling of the `CLAR_TEST_OBJS` list Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Patrick Steinhardt , Johannes Schindelin , Johannes Schindelin From: Johannes Schindelin From: Johannes Schindelin A late-comer to the v2.49.0 party, `sk/unit-test-oid`, added yet another array item to `CLAR_TEST_OBJS`, causing the `win+VS build` job to fail with symptoms like this one: unit-tests-lib.lib(u-oid-array.obj) : error LNK2019: unresolved external symbol cl_parse_any_oid referenced in function fill_array This is a similar scenario to the one that forced me to write 8afda42fce60 (cmake: generalize the handling of the `UNIT_TEST_OBJS` list, 2024-09-18): The hard-coded echo of `CLAR_TEST_OBJS` in `CMakeLists.txt` that recapitulates faithfully what was already hard-coded in `Makefile` would either have to be updated whack-a-mole style, or generalized. Just like I chose the latter option for `UNIT_TEST_OBJS`, I now do the same for `CLAR_TEST_OBJS`. Signed-off-by: Johannes Schindelin --- contrib/buildsystems/CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt index c6fbd57e158..25b495fa737 100644 --- a/contrib/buildsystems/CMakeLists.txt +++ b/contrib/buildsystems/CMakeLists.txt @@ -1001,10 +1001,14 @@ parse_makefile_for_sources(unit-test_SOURCES ${CMAKE_SOURCE_DIR}/Makefile "UNIT_ list(TRANSFORM unit-test_SOURCES REPLACE "\\$\\(UNIT_TEST_DIR\\)/" "${CMAKE_SOURCE_DIR}/t/unit-tests/") add_library(unit-test-lib STATIC ${unit-test_SOURCES}) +parse_makefile_for_sources(clar-test_SOURCES ${CMAKE_SOURCE_DIR}/Makefile "CLAR_TEST_OBJS") +list(TRANSFORM clar-test_SOURCES REPLACE "\\$\\(UNIT_TEST_DIR\\)/" "${CMAKE_SOURCE_DIR}/t/unit-tests/") +add_library(clar-test-lib STATIC ${clar-test_SOURCES}) + parse_makefile_for_scripts(unit_test_PROGRAMS "UNIT_TEST_PROGRAMS" "") foreach(unit_test ${unit_test_PROGRAMS}) add_executable("${unit_test}" "${CMAKE_SOURCE_DIR}/t/unit-tests/${unit_test}.c") - target_link_libraries("${unit_test}" unit-test-lib common-main) + target_link_libraries("${unit_test}" unit-test-lib clar-test-lib common-main) set_target_properties("${unit_test}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/t/unit-tests/bin) if(MSVC) @@ -1046,13 +1050,13 @@ add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" VERBATIM) add_library(unit-tests-lib ${clar_test_SUITES} - "${CMAKE_SOURCE_DIR}/t/unit-tests/clar/clar.c" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" ) +target_include_directories(clar-test-lib PUBLIC "${CMAKE_BINARY_DIR}/t/unit-tests") target_include_directories(unit-tests-lib PUBLIC "${CMAKE_BINARY_DIR}/t/unit-tests") -add_executable(unit-tests "${CMAKE_SOURCE_DIR}/t/unit-tests/unit-test.c") -target_link_libraries(unit-tests unit-tests-lib common-main) +add_executable(unit-tests) +target_link_libraries(unit-tests unit-tests-lib clar-test-lib common-main) set_target_properties(unit-tests PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/t/unit-tests/bin) if(MSVC)