From nobody Fri Apr 18 22:03:15 2025 X-Original-To: current@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 4ZfTKf4tPVz5tRgY for ; Fri, 18 Apr 2025 22:03:18 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfTKf4JFVz43mD for ; Fri, 18 Apr 2025 22:03:18 +0000 (UTC) (envelope-from avg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745013798; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding:autocrypt:autocrypt; bh=gjdwKWFQoy0H5zqvkAaN2DOSKrdZ7g2qkPlNsHhYiB8=; b=I3wMuAZjFQvISFjrm5zay25GIE7jDY54OcOz5IaSXg/wg7YpCIef+vhPDdWQVt8/iott7A dhQihPCppMtDsog9Ey1DA7UMzOCEpm2/vcPTrZGJBqAA2T6+X9B/PEflliUzXyGkhYU04H 29/JxhqONSMjaviUyCB4TEfhMK6kfhUH3LnWwwvwa6EpodXgS2o8zH+sYJVE5yoJ9tfJVX 17CF2gRmy5ClvEjB+r+NPMm8nJZOY7aA/BoqQd/C7HKsSBBPj0xfXmuQcZEmI1c2zhUikj Hw4sUqdDjzOzglWueA4krTJwTvtfWsT37/cyy89MB7ABnjrkUyx9zodPQhf1Iw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745013798; a=rsa-sha256; cv=none; b=TNkSt1pcxQQENQMMbh+2nKrOxfzwdFLQcEbZ2Dtm9E9TXumvmBH0hwQn8MdPhpAy3SpvPu Ut32GtGSyUjIZT/jRUuPYFdfhzNJclMoiEqzZB6eijOWPARUdwcvA0DFUl9MelD37bWsUH YfGVRKwU5+5FJfLdQAZg9lhnM20h4ZtO9xzGoAImlHl3f1ABE8Fpvl8YvnuKOeOzucaduM GRIwWdVWR/3UYILKQSv6AmqS3nJEJrwcHTMJH3RtTCw8OFzUYqRavKbe+mUVrORIWFR1m+ YNNPD7m/MOsesbgSFW3h4i4EXFOovrYc5zGiWWLcBuFUGsWd/4S1qdFc9ex5hA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745013798; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding:autocrypt:autocrypt; bh=gjdwKWFQoy0H5zqvkAaN2DOSKrdZ7g2qkPlNsHhYiB8=; b=WiKDNmP208bmNqNUtwkqMbhQel8u1CeEjYdDy3Ohu1YkG0erwcLgalDdm6/j0siK0CWjtk t82F3jnuH+8abMxvaRAEj5SraBzvvGl2AdWzgzD1I1naPeXTHEo9ItmH0dmXbDShVZSYgz xffHQGNe5cLUjOgfICIO461+mRaQoU3uRCYlwsz9fXfHIxQH9erJMs+FQimIiELEEV/dz1 J2IssqRYcox6OmmUEUkUC6XWEFoffiU2Ap7uKtMP8N5ccs+SDVeOw70Lf1E45ePs22zpJf jEwcTMMu6BPxRTRht20GYrnQXUx5yGJ84IqNMqIWafzw3JxPXCNACuu2o7bwLg== Received: from [192.168.0.88] (unknown [93.188.39.137]) (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 did not present a certificate) (Authenticated sender: avg/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4ZfTKf2GMcz19tQ for ; Fri, 18 Apr 2025 22:03:18 +0000 (UTC) (envelope-from avg@FreeBSD.org) Message-ID: <0b3dda4e-53e4-40e5-9484-8b5ffb84e658@FreeBSD.org> Date: Sat, 19 Apr 2025 01:03:15 +0300 List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: FreeBSD Current From: Andriy Gapon Subject: RTLD_DEEPBIND question Autocrypt: addr=avg@FreeBSD.org; keydata= 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 gpPTjT15L8xGftEjQXF6 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I am trying to understand if RTLD_DEEPBIND should help in the following scenario or if I misunderstand its purpose. There is a program that has a parser based on lex/yacc, so there is function yyparse in the code and global text symbol yyparse in the binary. The program can load shared objects (plugins) using dlopen. One of the plugins is linked with a shared library... actually with libdtrace.so. The library has its own parser (for DTrace language) and it also has yyparse global text symbol. There is a problem that when the program dlopen-s the plugin and calls its code the yyparse calls in libdtrace get resolved to the yyparse function in the program itself, not in libdtrace. This is, of course, not unexpected according to how dlopen works. However, I expected that if I add RTLD_DEEPBIND to the dlopen call that loads the plugin then libdtrace's yyparse calls would get resolved to the libdtrace yyparse because they all are in the same dependency subtree. But adding RTLD_DEEPBIND does not seem to help, libdtrace yyparse calls are still resolved to the main binary's yyparse. I should also note that the main binary does not have any dependency on libdtrace. It comes into picture only through the plugin. P.S. I think that the issue could be resolved by building libdtrace differently, so that its yyparse is resolved at link time and is not treated as a global symbol. And I think that we should probably do it. However, I am still curious if RTLD_DEEPBIND should have helped here. Thank you. -- Andriy Gapon