Como compilar com êxito o lsof no Solaris 10?

1

Os pacotes pré-compilados de lsof para Solaris (por exemplo, do Blastwave ou sunfreeware) não mostram as portas abertas, como quando se usa as opções: "-Pni". A sabedoria do criador de lsof é que devemos nos recompor. O pacote tar, a configuração, etc., são muito diferentes da maioria dos pacotes de código aberto que podem ser compilados a partir da origem. Estou com poucas pistas no pacote para saber o que há de errado com a minha tentativa de compilação.

Eu tenho o Sun Studio 11 para fornecer o compilador C. Também instalado o Gcc 3.4.5

O sistema é sparc, com o ZFS em todos os sistemas de arquivos. OS é Solaris 10, U7.

uname -a
SunOS myhostname 5.10 Generic_141444-09 sun4u sparc SUNW,Sun-Fire-280R

lsof source é para 4.82. Eu configuro com opções padrão e suporte ao ZFS em.

Com cc ou gcc, a falha ao executar o make é semelhante:

gcc  -Dsolaris=100000  -DHASPR_GWINDOWS -m64 -DHASIPv6 -DHASSOUXSOUA -DHAS_IPCLASSIFIER_H -DHAS_CRED_IMPL_H -DHAS_V_PATH -DHASZONES -DHAS_ZFS=1 -DZFS_VERS=15 -DHASUTMPX -DHAS_VSOCK -DHAS_STRFTIME -DLSOF_VSTR=\"5.10\"  -O  -c  dnode.c
dnode.c: In function 'process_node':
dnode.c:2082: error: structure has no member named 'pcfs_entps'
*** Error code 1
make: Fatal error: Command failed for target 'dnode.o'

Eu consegui isso para compilar em um sistema não-ZFS com 4.77 há muitos meses, mas não me lembro como.

    
por labradort 17.11.2009 / 17:08

3 respostas

1

Eu encontrei esta referência para o problema de googling por parte do erro de compilação

link

Não há necessidade de obter nenhum arquivo de cabeçalho do OpenSolaris ou de outro lugar. A versão beta do 4.83 funciona na minha caixa Sparc ZFS com padrões para o script Configure.

Agora tenho um lsof de trabalho -Pni no Solaris 10.

    
por 19.11.2009 / 16:43
1

O lsof FAQ indica que os arquivos de cabeçalho necessários não são fornecidos pela Sun e após a seção citada abaixo continuar a sugerir como obtê-los do Open Solaris e outros problemas que possam ser encontrados.

17.27 Solaris 10 ZFS probblems [sic]

17.27.1 Why does Configure ask for the location of ZFS header files?

To provide ZFS support when lsof is compiled it needs to have
access to the definitions of ZFS structures used by the kernel.
Those definitions are contained in header files that Sun does
not distribute with Solaris 10.
    
por 17.11.2009 / 19:27
0

Enquanto você espera pela resposta real, você pode tentar pcp como alternativa ao lsof em solaris. É construído em torno do comando solaris muito útil pfiles .

    
por 17.11.2009 / 19:05