8901a6be16
ELF ET_DYN files can be shared libraries, executable files or both. Requiring shared libraries that cannot actually be executed (or segfault when you do so) is dumb, but rpm has traditionally required executable bit to be set for requires to be generated. Refine the definition of "executable" to mean files that actually *can* be executed, ie those with PT_INTERP and whose actual behavior depends on whether the executable bit is set or not. In other words, pure shared libraries will have requires generated regardless of their permission, but executable files can still disable that by disabling the on-disk executable bit because unlike shared libraries, they only require anything when being executed. Also add rudimentary testcases for the scenarios involving a shared library, traditional binary and a PIE binary. The test material needs to be pre-built as we cannot predict what dependencies building on an arbitrary compiler on arbitrary platform may have, but source is included for manually regenerating as needed. |
||
---|---|---|
.. | ||
debugedit.c | ||
elfdeps.c | ||
hashtab.c | ||
hashtab.h | ||
rpmdeps.c | ||
rpmgraph.c | ||
sepdebugcrcfix.c |