Los objetos compartidos no ejecutables funcionan bien, pero las bibliotecas marcadas como ejecutables también pueden ejecutarse como programas independientes.
Entonces, ¿cuál es el punto de establecer esta x?
Ninguno, a menos que desee que emitan la versión u otra información
¿Todos los empaquetadores de la biblioteca deben hacer eso?
No
¿Qué sucederá si dlopen () una biblioteca compartida que tiene permisos 0644?
Obtendrá un nuevo identificador de objeto compartido (siempre que el archivo sea legible, etc.) ... el bit de ejecución no afecta esto
En cuanto a por qué las bibliotecas que no son utilizables como ejecutables independientes todavía tienen el conjunto de bits exec: esto es probablemente solo un artefacto del sistema de compilación o script de enlace utilizado.
ejemplo de salida, solo como referencia:
$ /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
y/usr/lib
son libc y libpthread, y ambas imprimen un aviso de copyright cuando se ejecutan.