Objetos compartilhados não executáveis funcionam bem, mas as bibliotecas marcadas como executáveis também podem ser executáveis como programas independentes.
Então, qual é o objetivo de definir esse x?
Nenhuma, a menos que você queira que eles emitam versão ou outras informações
Todos os empacotadores de bibliotecas devem fazer isso?
Não
O que acontecerá se eu dlopen () uma biblioteca compartilhada com permissões 0644?
Você obterá um novo identificador de objeto compartilhado (desde que o arquivo seja legível etc.) ... o bit exec não afeta isso
Por que as bibliotecas que não são utilizáveis como executáveis independentes ainda possuem o bit exec definido: esse é provavelmente apenas um artefato do sistema de construção ou script de link usado.
saída de exemplo, apenas para referência:
$ /lib/i386-linux-gnu/libc.so.6
GNU C Library (Ubuntu EGLIBC 2.15-0ubuntu10) stable release version 2.15, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.6.3.
Compiled on a Linux 3.2.14 system on 2012-04-19.
Available extensions:
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.debian.org/Bugs/>.
/lib
e/usr/lib
são libc e libpthread, e ambas imprimem um aviso de direitos autorais quando executadas.