From nobody Thu Apr 10 17:19:58 2025 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZYRRj3XcQz5tDFp for ; Thu, 10 Apr 2025 17:21:05 +0000 (UTC) (envelope-from vini.ipsmaker@gmail.com) Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZYRRh58ygz4Pcr; Thu, 10 Apr 2025 17:21:04 +0000 (UTC) (envelope-from vini.ipsmaker@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=Yj+BHLya; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of vini.ipsmaker@gmail.com designates 2a00:1450:4864:20::12b as permitted sender) smtp.mailfrom=vini.ipsmaker@gmail.com Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-5499e3ec54dso1399968e87.0; Thu, 10 Apr 2025 10:21:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744305661; x=1744910461; darn=freebsd.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=nH3iN0go8bENjcxMlfW5kxJLKAlHnCWGXVMqS8k6JSg=; b=Yj+BHLyaEFyRZFpCZjDluLlRTQZko9vC9g3VFPvYr743UPlnPmLlj4T99sfO7fin17 Cgg0OsSoc7mGXANAe7K+6La0Axeq7rYi/dlJlDWLrDRcMtA3QTXZ0nPIrVMvRf5EPBY0 Xyy0zsjpS+tdb8u3f0l+Us+UAW49YjUM97OdwCXgQLl0ioAb/t4vSxWJaURXmEXeaChX LIROvzNDbdBRZu9gzkGXCQKVk+EZ0+v/NZBNIhWmSnfo6fUhL2LBZ49RQCSvtUCxYE7w /2eJ/RPgA4AtA3U+vpuJe7NvPr1BnBofcMmcientqivzbBRoIeHtITFFHpH5pU4OuQcZ +f2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744305661; x=1744910461; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nH3iN0go8bENjcxMlfW5kxJLKAlHnCWGXVMqS8k6JSg=; b=u8/3ijkIAaMLbmNIWrYvsVmDO+UifZmYF8IgE0c1qFgPVgU7EOhpnpOZ6yXUBz3G6i FS9fmjOkhQgkytmxz7Si5dY2D5ys5FbuCUQcCl/prW1WufK8dmF0N38ts8duzv6wOQAK telrUKETPCbYXNfQq7GEoZ/SLDpSaKwW9twK/J/TWodoKn9EmooNYL99bcP4MpGlvE3A /F7qR3tAhG+Kr2DdWbvq42NM0VuU2ZSXmlqbvO6LE7bLcOU06V1k0kfPeaWUZerrNNgm nHqOj5TRYIuocKxdH4O4ouUtQB99vjlZBNuRK1eIuPCWvttVzII38exhamCHlqYWKTqi frwg== X-Gm-Message-State: AOJu0YxUpiRiL9QUQU7qYAJzBBZ8V/b8J1aZtMT4qzANWp6RxEva/5LG 2BLENR0mD0FNQ682bpEXLoYJDK+IPKRd4vRqab1ztYjrkxJMUMyEq6QGnOtkyQydbRermEy8Cyi BZz5mAXAHDs+CNaxZudm2wJsQHKLNj3nW X-Gm-Gg: ASbGncvf+gKG82WEcVKDuOrqUu45WUH06M/3V4k1D3i/Y7OXjiCJJaSMjEvhDQDbS7x OrmS4ximO+ec5yFwxM/kFhgmjuU7np843/KPglcatIYCqBWS+qi0I9D83QEJEwLd9HjKBGlXRPZ YOwB4rBF2xEMJtLZTXo2DWACvSur1gSjTQzL1xS0rGHb7qKT78DPG3aqkY X-Google-Smtp-Source: AGHT+IFz1iHvS+UoZp6+tqJjFJwTsl2fOTtqtTv0UhZOhE17ZAMroySbZADR/yHvFnCc0Ik1C9CEE4oJK761tc6y+1I= X-Received: by 2002:a05:6512:3d11:b0:545:fad:a747 with SMTP id 2adb3069b0e04-54d3c593e25mr1154882e87.5.1744305661084; Thu, 10 Apr 2025 10:21:01 -0700 (PDT) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Vin=C3=ADcius_dos_Santos_Oliveira?= Date: Thu, 10 Apr 2025 14:19:58 -0300 X-Gm-Features: ATxdqUHFO3G8GtnAEAa0NDEi1mnPrx2dwYjhAJzJenN3wysHloawSu8CqOiMR5M Message-ID: Subject: Re: Capsicum and weak libc symbols To: Konstantin Belousov Cc: freebsd-hackers@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spamd-Result: default: False [-3.77 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.93)[-0.932]; NEURAL_HAM_LONG(-0.83)[-0.833]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_TWO(0.00)[2]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_TLS_LAST(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; MIME_TRACE(0.00)[0:+]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MID_RHS_MATCH_FROMTLD(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; TAGGED_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MISSING_XM_UA(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::12b:from] X-Rspamd-Queue-Id: 4ZYRRh58ygz4Pcr X-Spamd-Bar: --- Sorry about the late answer. I've tried to get some time off to think about the problem with my head clear. I wanted to propose a process to decide which symbols should deserve/warrant a weak symbol. Turns out I was unable to come up with anything. Oldtime developers from the community should do that. I'm not that old here. So I'll just refactor my project to only support /lib/libc.so.7 and fail when one is trying to build it against /usr/lib/libc.a. Once there's a process to decide which symbols deserve a weak definition on /usr/lib/libc.a, I can revisit my code. Em qua., 26 de fev. de 2025 =C3=A0s 18:17, Konstantin Belousov escreveu: > 1. How the situation with getaddrinfo() is different from that one for > opendir()/fdopendir()? I only wanted to override opendir() (ambient authority), not fdopendir(). If you have fdopendir(), you can trivially implement the original opendir(). There's nothing similar in getaddrinfo() where I could get access to the original implementation. In Linux/glibc, I can access the "previous" getaddrinfo (even in builds against /usr/lib/libc.a) through getaddrinfo_a(): static int previous_getaddrinfo( const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res ) { struct gaicb cb; std::memset(&cb, 0, sizeof(struct gaicb)); cb.ar_name =3D node; cb.ar_service =3D service; cb.ar_request =3D hints; cb.ar_result =3D NULL; struct gaicb* cbs =3D &cb; auto ret =3D getaddrinfo_a(GAI_WAIT, &cbs, 1, NULL); *res =3D cb.ar_result; return ret; }; > 2. Don't we end up with marking all libc symbols as weak if starting > the proposed route? For my own use-cases, I only need to override symbols related to ambient authority. -- Vin=C3=ADcius dos Santos Oliveira