On Fri, Feb 15, 2019 at 3:56 PM Howard Chu <[email protected]> wrote: > > [email protected] wrote: > > Full_Name: Matthieu Guegan > > Version: current > > OS: SmartOS > > URL: > > Submission from: (NULL) (109.190.148.77) > > > > > > Hi, > > > > In order to compile knot[1] on SmartOS, I have done a series of little > > patches. > > One of them is linked to the LMDB project, which redirects me here. > > > > The idea is to tell SmartOS (and I think the SunOS family) to make use of > > posix_madvise(3), instead of madvise(3) as implementation on this OS[2] is > > different than, for example, the Linux[3] one. > > > > So, I kindly ask you to take a look at the merge request of the knot > > project[4], > > in particular the `src/contrib/lmdb/mdb.c` patch (that's just a ifdef > > modification) : would it be possible to apply this patch directly in this > > repository ? > > I see no functional difference between your references [2] and [3]. > What is the benefit of this patch?
Well, the Solaris/SunOS's madvise(3) is defined with an old `caddr_t` type whereas Linux (and *BSD OSes too) use a more modern approach with `void *`. On the `knot` project, which embed the lmdb part of openldap, compilation failed when using madvise(3) on SmartOS, so I did a replacement with posix_madvise(3) which uses the `void *` argument too. I don't know what's the best way to handle this case, that's why I ask here. > > > > Thanks > > > > > > [1] https://www.knot-dns.cz/ > > [2] https://docs.oracle.com/cd/E36784_01/html/E36874/madvise-3c.html > > [3] http://man7.org/linux/man-pages/man2/madvise.2.html > > [4] > > https://gitlab.labs.nic.cz/knot/knot-dns/merge_requests/979/diffs?commit_id=64cd2cfdb76d7299beb5a5561bc65162c2ec8a06 > > > > > > > -- > -- Howard Chu > CTO, Symas Corp. http://www.symas.com > Director, Highland Sun http://highlandsun.com/hyc/ > Chief Architect, OpenLDAP http://www.openldap.org/project/
