|
Message-ID: <CAH4OOv65h74u84fwJJkU0NTjgWcJcUcZxuWbLDiV6YETjGNvEA@mail.gmail.com> Date: Mon, 23 Oct 2023 11:08:31 -0700 From: Farid Zakaria <fmzakari@...c.edu> To: Rich Felker <dalias@...c.org> Cc: musl@...ts.openwall.com Subject: Re: dynlink.c tests Just to be pedantic, few ideas come to mind: - One could change the symbol count method to only use DT_HASH and it would succeed until GCC removed it ;) - The order of resolution for dependencies - $ORIGIN replacement I am very appreciative of the codebase. I'm going through it at the moment "stripping it down" a bit to be for x86-64 and adding some comments to help me better understand the process. I was going to look at whether I can take on a C++ standard as a dependency as well. If you are interested in my fork + what I'm hoping to accomplish, please reach out. Thank you Rich. On Mon, Oct 23, 2023 at 10:57 AM Rich Felker <dalias@...c.org> wrote: > > On Mon, Oct 23, 2023 at 10:08:41AM -0700, Farid Zakaria wrote: > > Sorry for the late reply Rich. > > > > That's what my current plan of attack is but I was wondering if the > > musl codebase itself has such a test suite already > > (something similar to the libc test suite) > > > > How do dynlink authors validate they haven't broken any edge cases in > > program loading? > > (i.e. such as DT_GNU_HASH etc..) > > Generally this code has almost zero churn, and is expected to be that > way. Your example of gnu hash for example is a pure mathematical > function that never has any reason to be changed. > > On top of that, none of this is code that dynamically succeeds or > fails based on any complex runtime condition. For the most part, > either it does the right thing or it doesn't, and if it doesn't, > nothing would load. > > This doesn't mean testability is unwanted, just that this code is > rather low priority for testing compared to things with a lot more > dynamic corner cases. > > Rich > > > > On Fri, Oct 20, 2023 at 5:00 PM Rich Felker <dalias@...c.org> wrote: > > > > > > On Fri, Oct 20, 2023 at 11:18:44AM -0700, Farid Zakaria wrote: > > > > What's the best way to test dynlink.c ? > > > > I'm making some small changes (actually just simplifying it by > > > > removing some code for unneeded arch like DL_FDPIC) but would like to > > > > make sure I didn't bork anything. > > > > > > > > I found https://wiki.musl-libc.org/writing-tests but that seems > > > > focused strictly on the libc itself. > > > > Is there a dynamic-loader test suite anyone is familiar with ? > > > > > > The general strategy I would use would be to setup recipes to build > > > binaries/shared libraries that make use of particular dynamic linking > > > features, then load/execute them in ways that assert that the relevant > > > feature operated as expected. > > > > > > Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.