Skip to content
14 changes: 11 additions & 3 deletions conda_build/os_utils/liefldd.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,16 @@ def get_libraries(file):
return result


def _get_dynamic_tags(binary):
return [
dynamic_entry
for dynamic_entry in binary.dynamic_entries
if isinstance(dynamic_entry, ELF_DYNAMIC_TAGS)
]


def _get_elf_rpathy_thing(binary, attribute, dyn_tag):
dynamic_entries = binary.dynamic_entries
dynamic_entries = _get_dynamic_tags(binary)
rpaths_colons = [getattr(e, attribute) for e in dynamic_entries if e.tag == dyn_tag]
rpaths = []
for rpath in rpaths_colons:
Expand All @@ -169,7 +177,7 @@ def _get_elf_rpathy_thing(binary, attribute, dyn_tag):


def _set_elf_rpathy_thing(binary, old_matching, new_rpath, set_rpath, set_runpath):
dynamic_entries = binary.dynamic_entries
dynamic_entries = _get_dynamic_tags(binary)
changed = False
for e in dynamic_entries:
if (
Expand Down Expand Up @@ -377,7 +385,7 @@ def get_uniqueness_key(filename, file):
elif binary.format == EXE_FORMATS.ELF and ( # noqa
binary.type == ELF32 or binary.type == ELF64
):
dynamic_entries = binary.dynamic_entries
dynamic_entries = _get_dynamic_tags(binary)
result = [e.name for e in dynamic_entries if e.tag == ELF_DYNAMIC_TAGS.SONAME]
if result:
return result[0]
Expand Down
19 changes: 19 additions & 0 deletions news/5778.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
### Enhancements

* <news item>

### Bug fixes

* Handle unknown dynanic tags in liefldd. (#5778)

### Deprecations

* <news item>

### Docs

* <news item>

### Other

* <news item>
Loading