Tente isto:
cd ~
cp /usr/bin/g++ gx
touch x.cpp
strace ./gx -o x x.cpp 2>xlog
Ele falha com a mesma mensagem de erro, e no xlog você pode ver que o g ++ espera encontrar o cc1plus em um diretório relativo ../lib/etc
. Isto é independente do apparmor.
Agora, provavelmente há alguma configuração que você pode usar para fazer o g ++ procurar outro lugar para o cc1plus, se você quiser construí-lo a partir do código fonte, mas sim que a opção g ++ deve ser executada a partir do diretório normal instalado. g ++ será executado a partir de uma cópia de si mesmo em seu diretório normal, renomeado, é claro. Eu acho que você poderia sujeitar a cópia ao aparmor, se isso estimular suas galinhas.