From: Mark J. <ma...@fr...> - 2019-06-30 14:29:56
|
On Sun, Jun 30, 2019 at 02:35:16PM +0100, Joseph Koshy wrote: > Mark, > > m.j> The context for that change is FreeBSD PR 234949 > m.j> (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=234949). > m.j> It comes from a series of changes which reduces > m.j> elftoolchain's strip runtime on an archive of > m.j> Haskell libraries compiled with -ffunction-sections. > > Thanks for providing the context; nice work on that PR. > > m.j> I know that *BSD provides tree.h and libbsd has a > m.j> tree.h as well; that seemed sufficient to me, but > m.j> maybe I'm missing something? It seemed reasonable > m.j> to use tree.h given that elftoolchain already makes > m.j> extensive use of queue.h. > > We've seen incompatibilities between *BSD's > <sys/queue.h> implementations; for example, OpenBSD > 6.3's <sys/queue.h> lacked the STAILQ_* macros, and so > we had to provide a local copy in "common/_elftc.h". > > I hope <sys/tree.h> is more portable than > <sys/queue.h>, but if not we could add local > definitions to "common/_elftc.h" till the time the > differences are reconciled upstream. I'm fairly confident that all of the BSDs have roughly the same RB_* macros in tree.h. I can try compiling elftoolchain on each of them, but you may be better set up to test that than me. > Thanks again for tracking down this performance > issue. I have created a ticket (on myself) > (https://sourceforge.net/p/elftoolchain/tickets/574/) > to fold in this change. Thanks. The full set of changes needed to get parity with GNU strip is in the PR; they are all now committed to FreeBSD. |