From nobody Wed Feb 21 15:35:46 2024 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 4Tg0jT4B96z59mfl for ; Wed, 21 Feb 2024 15:35:57 +0000 (UTC) (envelope-from Hartmut.Brandt@dlr.de) Received: from mailin.dlr.de (mailin.dlr.de [194.94.201.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mailin.dlr.de", Issuer "GEANT OV RSA CA 4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Tg0jS64sPz4dMG; Wed, 21 Feb 2024 15:35:56 +0000 (UTC) (envelope-from Hartmut.Brandt@dlr.de) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=dlr.de; i=@dlr.de; q=dns/txt; s=052022; t=1708529757; x=1740065757; h=date:from:to:cc:subject:in-reply-to:message-id: references:mime-version; bh=pmMuCiY+8e4JQqti6fk0IPaJRVUJearUi+btv1wD7Ms=; b=SYEhiRNzp2gcPiNroJqs2nq4irc5RovM8ltNKDTZBul0NRYRRyftDQbO zYGKZ89jXnzd98DX5UBjQfLcw3vwIE2MUM8OtiY+drP4fIk6zzG3TBXdR brTGm7yoUaWR/zikcuBT/bA71RQQ8tnwmBB50wi3a3B/Lh+k0OnN/2X62 8UbeeZhQrYd2r09XnIuXs89NMnKXueGK5TQtntSSGrMlfX8fsIj0cUOaO MWu6aOHCIxwD5z+J6PRmceLlphDCOxvPeGAnGmY3w3DqguviuK9Yl3Y0X R7Vei7POqJu1o5EKuPI3sBSU0c0n+OqAI3Oq3UWdrwXRw1xRmnBrz6Uzy A==; X-CSE-ConnectionGUID: YtBVe9BASiuoQcisuSqFWA== X-CSE-MsgGUID: TrC8rbGrTDWV8ZQXwyw76A== X-ThreatScanner-Verdict: Negative X-IPAS-Result: =?us-ascii?q?A2HRAACvF9Zl/xiKuApaGwEBAQEBAQEBBQEBARIBAQEDA?= =?us-ascii?q?wEBAYIPghGBJIFfG4Q4kWYDhDubCz4PAQEBAQEBAQEBCAE5CwQBAQMEgguCd?= =?us-ascii?q?AKHbSc4EwECBAEBAQEDAgMBAQEBAQEBAQYBAQYBAQEBAQEGBgECgRmFLz0Ng?= =?us-ascii?q?lwBEIEOUQ1IAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBEQINWwEBHQEBAQEDI?= =?us-ascii?q?1YMBAkCEQQBASsCAk4IBg4FgihYAYJfFAaTcJs6eoEygQGDWAEEDUFNrjiBZ?= =?us-ascii?q?AYJAYE+iCYBgVaIVTaBVUSBR4JAOD6CYQEBAQEYhSGCaASCEoMSKYENkWdsh?= =?us-ascii?q?ldUgRsDgQUEXA0FFhAeNxEQEw0DCG4dAjE6AwUDBDIKEgwLHwVUA0MGSQsDA?= =?us-ascii?q?hoFAwMEgTAFDRoCEBoGDCYDAxJJAhAUAzgDAwYDCjEwVUEMUANkHzIJPA8MG?= =?us-ascii?q?gIbGw0kIwIsQAMREAIWAx0WBDARCQsmAyoGNgISDAYGBl0jFgkEJQMIBANUA?= =?us-ascii?q?yF0EQMECgMTBwsHbgqCCYE9BBNEAxCBNIUshHsMgg4DRB02CgMLbT01FBsGI?= =?us-ascii?q?gGfWQGBXwElTD4kEwc9AiIuKx0BLAwJKgINAig6kkkJAY9PgUWCDJ5+NAeCN?= =?us-ascii?q?IFggVsGDIoblR0ZL5c/kmWYWY0GaZVEhRsCBAIEBQIWgXuBfzMaJIM2UhcCD?= =?us-ascii?q?5IahRSKZncCOQIHAQoBAQMJiSIrAYEaAQE?= IronPort-PHdr: A9a23:RAxyQhSLvtZVjQhRPY0pSHRe+tpsoiKYAWYlg6HPa5pwe6iut67vI FbYra00ygOTDMOAsbkb1qKW6/mmBTZQp87Z8TgrS99laVwssY0uhQsuAcqIWwXQDcXBSGgXO voHf3Jeu0+BDE5OBczlbEfTqHDhpRQbGxH4KBYnbr+tQt2agMu4zf299IPOaAtUmjW9falyL BKrpgnNq8Uam4RvJrg1xxfTrHZEZetayGFoKFmOmxrw+tq88IRs/ihOuP8t7dJMXbn/c68lU bFWETMqPnw668HsqRTNVxaE6GEGUmURnBpIAgzF4w//U5zsrCb0tfdz1TeDM8HuQr46QTut4 751RRHnlSkLLzE2/n3Zhcx2l6JbvQmupwdjzI7OYYGaL+Rxc6XAdt4HX2VBX8JRVytcAoOga oYEEuQMMfpEo4T7ulADtgW1CxWyC+zzyz9Inn720rM80+Q9CgHNwQgsE8sTvHjIsNn5MaEfW v23wqbV1zXOd/1Y1zfj5oXWbx4uo/KCXbx/fsXNyEkiDAbFgkmKpIH/Iz+ZyuYAvm6G5ORgT +KvjGsnphlzrDe13McslozJhp8JylvZ6Ch52pw6JdulR05nfNWpF5tQuDuAN4tqR8MiXn1ot Dwhxb0co5G7ejUFyIg8yhHCb/yHaZKE7Q/9W+uIJzpzmX1qdq6liRmo7Uig1vPzVtOy0FtSr idLktfBu34M2hHQ5cWJRflw80O/1TuM1w7e5P9JLV4pmKfYK5As37A+mJQQvEnAECH7mFv7g q+Ue0k4++Wl5OLqaajoqJ+bMo97kAD+MqI2l8ywAOQ4LggOX3WA9uimyLLj+kj5TK1Njv0uj KbZtovVJd8GqaKjBA9VyIkj5w6xDze8ztsXg2IILElYdx6diIjpIV7OLOj/DfelmVujjDNry O7cMrL9BZXNK37Om6ric7Zl80NQ1RY/wcpC659XBbwNOu//V0HyudDCEBM0PBS4z/v5BNh5z I8SR22CD62DPK/Ps1KF5fgjL/SCaYIUvjv2NuIr6OT0jXAjnF8QZayp3ZwKZ3+mBvlmOECZY Wb0gtcGDGcKohIyTOz0h12GVj5ef3i8UaQy6D80CIyoDYDNSIOqjrKbwiu2EZJYaWFYB1yWE HfocZmEW+0WZy6IP8BhliYEWaK8RIA/zR2utQn6xKR7LufM5yEUqYjv2MV26uDcjx0+6DJ5A seH322TQGx4hmYISCU33KB7r0x90FCD0a1gjvJaD9NT/e9JUgInNZ7A1eB3FsryVRjHftiUV FarWcipATUrTt4r3tABfV5xG9O5gR/bxSqlH6cVl6CXBJwz6q/R0WD9J9xhxHbeyKkhk14mT 9NKNWK8nK5/9ArTCpXHk0WDiamla78T3DXQ+2uZymqOpk5YXBZqUarZRXAfelfWrdPh60zZV b+uDrMnMghaycOZJKtKcMPmgktdS/f4JdvSeWWxm32/BRqQ3LODcJLqe3kB3CXaEEULjx0T/ WycNQcgACehv3nTDDJ0FV3xfUzj6vJ+p26hQk8z1QGKYFVt2Ke2+h4UgPyRU+sd0L0Ktyk/t zt5AFCz08rNC9qYqQpsZL1Sb8ol7llIhirlsFlYN4ajZ4JlhlgFbwNx9xfr3g90CK1Oi8Unp mgmig1oJvTL/klGcma41IrsP6DLYkPo9Rajd+aC2ljEzNOL5uEF8v0+p0nLsAWzUEYvpSY0m +JJ2meRs82ZRDEZVoj8BwNur0ASmg== IronPort-Data: A9a23:fA5FLKxJFLc/KmV7DJB6t+dQxyrEfRIJ4+MujC+fZmUNrF6WrkUFz WEcUDzXPPaJMzGkLookb4WxoU8C6JfUx9YwT1c5/1hgHilAwSbn6XV1DatS0we6dJCroJdPt p1GAjX4BJlpCCea/lH0auSJQUBUjcmgXqD7BPPPJhd/TAplTDZJoR94kobVuKYx6TSCK13L4 Y2aT/H3Ygf/h2YuaDtMsspvlTs21BjMkGJA1rABTa0T1LPuvyF9JI4SI6i3M0z5TuF8dgJtb 7+epF0R1jqxEyYFUrtJoJ6iGqE5auK60Ty1t5Zjc/PKbi6uB8AF+v1T2PI0MS+7gtgS9jx74 I0lWZeYEW/FMkBQ8Qi0vtYx/yxWZMV7FLH7zXeXgNC58UCXWVLXwuhpNUo3JpAj48hIKDQbn RAYAGhlghGrq8aa7ZyVb8hJvp5/AfnAeoIZpmtpiz3dF7AqTPgvQY2TvZkBjGt235seW6yCD yYaQWMHgBDoQxRVJlIKFNQUhu6uimXXfzlC7l6YzUYyyzGInFcsjeG9WDbTUuCQbpVPlGmCm k75wTTLOyEFJcPAlxPQpxpAgceKx0sXQrk6EbSi9fxCjkeey2YIBFsRT1TTifOjjUm9QPpRM UEZ8DEi668o+ySDRcTnRRC+vFaKpBMRUcFcVeog52mwJrH87wKVC2YKSz9EcIZ6ud89Az0sy kWA2d/tH3pjvdV5VE6gy1tdlhvqUQB9EIPITXZsodctizU7nLwOsw== IronPort-HdrOrdr: A9a23:G0hJTKqqKYhLgSD9VadBlp0aV5oceYIsimQD101hICG9Kvbo8/ xG785rsiMc6QxhI03I9urhBEDtex7hHNtOkOws1NSZLXPbUQmTXeJfBOLZqlWKcREWtNQtt5 uIGJIQNDSENzlHZLHBjjVQfexN/DDNytHPuQ6X9QYVcehFUdAZ0ztE X-Talos-CUID: =?us-ascii?q?9a23=3A3PNW1GlQ+Yx0/HRKbjvUiQLkj8DXOUzB5kndcmW?= =?us-ascii?q?RMmd0T4SeSESNw7pKrOM7zg=3D=3D?= X-Talos-MUID: =?us-ascii?q?9a23=3Abb+7dQ9zzYZe2RnowZneSVuQf/tyyPS0Am8Xrbk?= =?us-ascii?q?5hZm2DBxvKijC0h3iFw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.06,175,1705359600"; d="scan'208";a="13835518" Date: Wed, 21 Feb 2024 16:35:46 +0100 From: Hartmut Brandt To: Mark Johnston CC: , Subject: Re: sanitizers broken (was RE: libc/libsys split coming soon) In-Reply-To: Message-ID: <8159bb39-6335-3a4-83bc-67fc723a3bef@dlr.de> References: <385dd04f716d4b90baa826dd1b18d277@dlr.de> 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 Content-Type: multipart/mixed; boundary="2457058846-1140260035-1708529753=:47195" X-ClientProxiedBy: DLDEFFMIMP26EXC.intra.dlr.de (10.184.138.26) To DLDEFFMIMP24EXC.intra.dlr.de (10.184.138.24) X-Spamd-Bar: ---- X-Rspamd-Queue-Id: 4Tg0jS64sPz4dMG X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:680, ipnet:194.94.0.0/15, country:DE] --2457058846-1140260035-1708529753=:47195 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT On Wed, 21 Feb 2024, Mark Johnston wrote: MJ>On Wed, Feb 21, 2024 at 09:52:23AM +0000, Hartmut.Brandt@dlr.de wrote: MJ>> Hi, MJ>> MJ>> I updated yesterday and now event a minimal program with MJ>> MJ>> cc -fsanitize=address MJ>> MJ>> produces MJ>> MJ>> ld: error: undefined symbol: __elf_aux_vector MJ>> >>> referenced by sanitizer_linux_libcdep.cpp:950 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp:950) MJ>> >>> sanitizer_linux_libcdep.o:(__sanitizer::ReExec()) in archive /usr/lib/clang/17/lib/freebsd/libclang_rt.asan-x86_64.a MJ>> cc: error: linker command failed with exit code 1 (use -v to see invocation) MJ>> MJ>> I think this is caused by the libsys split. MJ> MJ>I don't see any such problem on a system running 5f7ac491eef4, which MJ>includes the libsys split. Which compiler are you using, and which MJ>revision are you running? That is 445d3d227e68. The compiler is the system cc. Harti MJ> MJ>> Cheers, MJ>> Harti MJ>> MJ>> -----Original Message----- MJ>> From: owner-freebsd-current@freebsd.org On Behalf Of Brooks Davis MJ>> Sent: Friday, February 2, 2024 11:32 PM MJ>> To: current@freebsd.org MJ>> Subject: libc/libsys split coming soon MJ>> MJ>> TL;DR: The implementation of system calls is moving to a seperate library (libsys). No changes are required to existing software (except to ensure that libsys is present when building custom disk images). MJ>> MJ>> Code: https://github.com/freebsd/freebsd-src/pull/908 MJ>> MJ>> After nearly a decade of intermittent work, I'm about to land a series of patches which moves system calls, vdso support, and libc's parsing of the ELF auxiliary argument vector into a separate library (libsys). I plan to do this early next week (February 5th). MJ>> MJ>> This change serves three primary purposes: MJ>> 1. It's easier to completely replace system call implementations for MJ>> tracing or compartmentalization purposes. MJ>> 2. It simplifies the implementation of restrictions on system calls such MJ>> as those implemented by OpenBSD's msyscall(2) MJ>> (https://man.openbsd.org/msyscall.2). MJ>> 3. It allows language runtimes to link with libsys for system call MJ>> implementations without requiring libc. MJ>> MJ>> libsys is an auxiliary filter for libc. This means that for any symbol defined by both, the libsys version takes precedence at runtime. For system call implementations, libc contains empty stubs. For others it contains copies of the functions (this could be further refined at a later date). The statically linked libc contains the full implementations so linking libsys is not required. MJ>> MJ>> Additionally, libthr is now linked with libsys to provide _umtx_op_err(). MJ>> MJ>> The overall implementation follows https://reviews.freebsd.org/D14609, MJ>> but is redone from scratch as multiple commits to facilitate review and assist git's rename detection. MJ>> MJ>> Testing: MJ>> - Boot testing on amd64, aarch64, and riscv MJ>> - make tinderbox (prior version, final run in progress) MJ>> - exp-run: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276391 MJ>> - Kyua tests in poudriere amd64 jails: same 359 failures as with the MJ>> latest freebsdci build MJ>> MJ>> Thanks to Ali Mashtizadeh and Tal Garfinkel for D14609 and many apologies for not landing this in a timely manner. Additional thanks to kib@ for many rounds of review, markj@ and kib@ for debugging rtld issues exposed by this patch, and antoine@ for exp-runs. MJ>> MJ>> Future work: MJ>> - Purely functional interfaces to system calls (no errorno). MJ>> Unfortunately there isn't an obvious way to do this without MJ>> significant (possibly generated) assembly code. MJ>> - Investigate msyscall(2) and pinsyscalls(2). MJ>> - Reduce the size of stubs in libc. I’ve errored on the MJ>> side of not touching the copies that end up in libc to keep diff MJ>> size down. We might want to generate empty stubs instead. MJ>> MJ>> See also: MJ>> - Solaris Linker and Libraries Guide: MJ>> https://docs.oracle.com/cd/E23824_01/html/819-0690/chapter4-4.html MJ>> MJ>> -- Brooks MJ>> MJ> --2457058846-1140260035-1708529753=:47195--