Encontrei um problema ao compilar o dealii usando petsc / openmpi. Eu sei que isso pode não ser o fórum adequado para enviar um bug, mas a página ReportingBugs não foi útil. O problema aparentemente só ocorre no Ubuntu 16.04.
Uma das pessoas envolvidas no projeto dealii escreveu:
======================= Start of written ==============================
uname -srv
(4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux):
$ cat test.cc
int main() {}
$ mpicxx -fuse-ld=gold test.cc
/usr/lib/openmpi/lib/libmpi_cxx.so: error: undefined reference to 'opal_list_item_t_class'
/usr/lib/openmpi/lib/libmpi_cxx.so: error: undefined reference to 'opal_class_initialize'
collect2: error: ld returned 1 exit status
This clearly is a bug in the OpenMPI implementation shipped by Ubuntu 16.04. I think someone should open a bug on the Ubuntu (or Debian?) bug tracker but I lack the time to do so right now...
However, it only appears when using the gold linker. If one disables the gold linker, everything works fine.
$ mpicxx test.cc
======================= End of written ==============================
No meu sistema, uname -srv
é
Linux 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016
O que eu tinha carregado para pacotes foi há 2 dias:
sudo apt-get install libpetsc-dev
sudo apt-get install petsc*
e
sudo apt-get install libopenmpi-dev
sudo apt-get install openmpi*
Quando também comentei:
$ mpicxx -fuse-ld=gold test.cc
do arquivo de compilação funcionou.
A propósito, o modo como o Ubuntu coleta erros deixa muito a desejar. Não vi maneira de enviar o texto apropriado (acima) para o grupo apropriado. Uma varredura automática dos pacotes ou qualquer outra coisa nunca o detectaria. Também pode ser que os pacotes do ubuntu não sejam responsáveis, mas eu tenho que começar em algum lugar.
A página ReportingBugs diz tudo para não fazer, mas não o que fazer. Eu realmente odeio assistir e esperar pela piada nos vídeos e, com base no que li, não esperava mais e não assisti.
Eu achei em outro lugar para usar ubuntu-bug libpetsc-dev
e ubuntu-bug libopenmpi-dev
, para inicializar uma maneira de inserir um relatório de bug, mas ambos vêm com uma busca de diálogo, dizendo "pacote não instalado", então o terminal trava. Talvez seja eu, mas parece que as coisas podem ser mais elegantes.
Para o registro. Pelo menos para a pré-visualização mostrada abaixo na entrada (this) você tende a ignorar alguns \n
's