lsof build failed under FreeBSD 7.2-STABLE AMD64

Larry Rosenman ler at lerctr.org
Sun Nov 1 20:29:09 UTC 2009


I'm in contact with Vic Abell (LSOF author), and will get an update out soon.

Thanks!

On Sun, November 1, 2009 1:48 pm, Erik Trulsson wrote:
> [lsof maintainer added to Cc:]
>
> On Sun, Nov 01, 2009 at 12:10:07PM -0600, Larry Rosenman wrote:
>> Are your system sources current?  and do they match the running system?
>>
>> it compiles file for me on:
>
> But if you update your FreeBSD system to the very latest (or at least
> after
> Oct 29) it will not compile fine for you either.
>
> The following commit to 7-stable broke lsof compilation:
>
>   Author: jhb
>   Date: Thu Oct 29 15:10:38 2009
>   New Revision: 198595
>   URL: http://svn.freebsd.org/changeset/base/198595
>
>   Log:
>     MFC 196615:
>     Extend the device pager to support different memory attributes on
> different
>     pages in an object.
>     - Add a new variant of d_mmap() currently called d_mmap2() which
> accepts
>       an additional in/out parameter that is the memory attribute to use
> for
>       the requested page.
>     - A driver either uses d_mmap() or d_mmap2() for all requests but not
>     - both.
>       The current implementation uses a flag in the cdevsw (D_MMAP2) to
> indicate
>       that the driver provides a d_mmap2() handler instead of d_mmap().
> This
>       is done to make the change ABI compatible with existing drivers and
>       MFC'able to 7 and 8.
>
> The lsof source code contains code to handle the problem for -CURRENT. The
> following part from dialects/freebsd/dlsof.h is the relevant part which
> describes the problem and contains a solution for 9-CURRENT.
>
>   #  if   FREEBSDV>=9000
>   /*
>    * The FreeBSD 9 and above d_mmap2_t function typedef in <sys/conf.h>
> needs
>    * the definition of vm_memattr_t for a pointer, but that definition is
> only
>    * available under _KERNEL in <sys/types.h>.  Defining _KERNEL before
>    * including <sys/types.h> causes many compilation problems, so this
>    * expedient (hack) is used.
>    */
>   #define vm_memattr_t    void
>   #  endif        /* FREEBSDV>=9000 */
>
>   #include <sys/conf.h>
>
>   #  if   FREEBSDV>=9000
>   #undef  vm_memattr_t
>   #  endif        /* FREEBSDV>=9000 */
>
>
> The 'if FREEBSDV>=9000' parts need to be mofified to make it work for
> older
> releases too now that the d_mmap2_t function has been MFC'd.
>
>
>
>
>
>
> --
> <Insert your favourite quote here.>
> Erik Trulsson
> ertr1013 at student.uu.se
>


-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 512-248-2683                 E-Mail: ler at lerctr.org
US Mail: 430 Valona Loop, Round Rock, TX 78681-3893




More information about the freebsd-ports mailing list