{"guid":"5J96cLw9prhLQ4hlZv1ZUA","title":"Libabigail: How semantic analysis of C and C++ ELF binaries can be used to analyze ABI changes","subtitle":null,"slug":"1234-libabigail-how-semantic-analysis-of-c-and-c-elf-binaries-can-be-used-to-analyze-abi-changes","link":"https://c3voc.de","description":"Libabigail is an infrastructure for semantic analysis of ELF binaries containing C or C++ programs. It powers command line tools like ‘abidiff’, which let users compare ABI changes between two different versions of a given ELF binary by analyzing just the binary and its ancillary debug information.\n\nThe result of the binary comparison is a kind of hierarchical ‘diff’ which shows changes up to the types of the interfaces that constitute the ABI of an ELF program.\n\nThis infrastructure allows software distributors (among other actors) to build specific tooling to review and analyze ABI changes that might occur whenever a shared library package is updated.  That tooling might even be tailored to automatically prevent packages with unwanted incompatible ABI changes to reach users.\n\nThis talk intends to present Libabigail, its architecture, its capabilities, its current limits, its associated tools and how it might be used to further build highly tailored ABI verification tooling.  The talk will also explore the potential improvement paths that are currently identified, and from the feedback of the audience, explore improvement paths that are not yet identified.","original_language":"eng","persons":["dodjiseketeli"],"tags":["osc17","1234"],"view_count":99,"promoted":false,"date":"2017-05-28T00:00:00.000+02:00","release_date":"2017-05-28T02:00:00.000+02:00","updated_at":"2026-01-29T20:00:14.248+01:00","length":3605,"duration":3605,"thumb_url":"https://static.media.ccc.de/media/events/osc/2017/1234-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/osc/2017/1234-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/osc/2017/5J96cLw9prhLQ4hlZv1ZUA-timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/osc/2017/5J96cLw9prhLQ4hlZv1ZUA-thumbnails.vtt","frontend_link":"https://media.ccc.de/v/1234-libabigail-how-semantic-analysis-of-c-and-c-elf-binaries-can-be-used-to-analyze-abi-changes","url":"https://media.ccc.de/public/events/5J96cLw9prhLQ4hlZv1ZUA","conference_title":"openSUSE Conference 2017","conference_url":"https://media.ccc.de/public/conferences/osc17","related":[{"event_id":106,"event_guid":"import-c6b33fcb2523d7b8e4","weight":1},{"event_id":684,"event_guid":"import-3c6185884db88b4055","weight":1},{"event_id":1386,"event_guid":"import-889bf7d4f546181efe","weight":1},{"event_id":1806,"event_guid":"IE5aOu8FUaPfpFv5v4rtJg","weight":1},{"event_id":1836,"event_guid":"SKDne_Zu6SPJc-ADxqiLnA","weight":1},{"event_id":1918,"event_guid":"ix6eImcX7hzVSBSn6_CHdA","weight":2},{"event_id":1949,"event_guid":"0d7893ca11637d8d","weight":1},{"event_id":2350,"event_guid":"433e598a-4a96-4be5-90f1-014b4be7b3ec","weight":1},{"event_id":2375,"event_guid":"128d4236-6001-4483-9152-c5941314d2cb","weight":1},{"event_id":2406,"event_guid":"680d0aea18aa6ba03f104efcd2bac2f3","weight":1},{"event_id":2422,"event_guid":"03553ade-bec3-4833-8210-6ac0983bb0c0","weight":1},{"event_id":2521,"event_guid":"55a2a1d7-f022-4e5a-8d24-568e42b8dadd","weight":1},{"event_id":2673,"event_guid":"ae1b85a2-ac41-43b8-9784-05aecdf50b6c","weight":1},{"event_id":2713,"event_guid":"Adgg9NyiQpCSnSNqt4xLnw","weight":1},{"event_id":2735,"event_guid":"5c0323b6-c538-4fb6-8d70-d08def6bf865","weight":1},{"event_id":2811,"event_guid":"fa0727ab-81a7-4197-bc7d-0ce5e9dc4526","weight":1},{"event_id":2879,"event_guid":"3f61827f-8b17-47b4-a43c-e0dce6532cbe","weight":1},{"event_id":2922,"event_guid":"47cbd880-f500-4c44-b717-c11ed1da087d","weight":1},{"event_id":3257,"event_guid":"5bce04d8-6e13-5591-bf56-9335b21be7f9","weight":1},{"event_id":3309,"event_guid":"9335f1f1-c0c5-5378-b686-fffd6781c5ce","weight":1},{"event_id":3427,"event_guid":"8d656de7-3b04-4e71-bd77-fd8fc494bc43","weight":1},{"event_id":3733,"event_guid":"855ab830-c6c0-4be7-b84c-31ba78e90e3c","weight":1},{"event_id":3741,"event_guid":"725b4ff6-8d4c-4d8f-9e38-6b1e49e1602c","weight":1},{"event_id":3744,"event_guid":"9039efe4-3282-47d2-a0b5-630843e23304","weight":1},{"event_id":3786,"event_guid":"9f730bc5-eb12-44e0-94e7-a65fd86490d9","weight":1},{"event_id":3797,"event_guid":"08ae8c78-d14d-4c3c-8679-bef7ef52d88c","weight":1},{"event_id":3799,"event_guid":"adf2b546-84c1-4617-886a-9d1430392151","weight":1},{"event_id":3853,"event_guid":"efeeaebc-3f29-11e7-9ba7-2f214305c877","weight":1},{"event_id":3866,"event_guid":"wtIryX0wXoJwm3FKr4PRZw","weight":1},{"event_id":3868,"event_guid":"4jEhQPQqW12ZbkAHI0uZGA","weight":1},{"event_id":3874,"event_guid":"G6H3Uw0zdxfr2d_HHOIZHQ","weight":1},{"event_id":3876,"event_guid":"FP5pC1RGONBa6Xn_FjW04w","weight":1},{"event_id":3880,"event_guid":"da855d30-e440-49f1-b811-afac8cd3ed43","weight":1},{"event_id":3886,"event_guid":"dSKbkXngHk9A0b_HUCbw9Q","weight":1},{"event_id":3889,"event_guid":"Q3YPVoHoG6KKmhTW4QzLJg","weight":1},{"event_id":3891,"event_guid":"iViaSdT9_Q6RCP88cI8-bA","weight":1},{"event_id":3905,"event_guid":"VfmyqiuDevNeA1REbbHUXA","weight":2},{"event_id":3907,"event_guid":"NuaV3IXGpEC9JQ1LnRZksQ","weight":1},{"event_id":3908,"event_guid":"-vvrZxatKLSv4pWA4oIpVg","weight":3},{"event_id":3914,"event_guid":"Y0JnC201w-pFxwZtVua59g","weight":1},{"event_id":3922,"event_guid":"XvCn305wK00HlDQBdQR6rw","weight":1},{"event_id":3930,"event_guid":"SGalEkMfbjvUHtG8OucYjg","weight":1},{"event_id":3934,"event_guid":"uEjGRz2ikYXsemssGT5smQ","weight":1},{"event_id":3943,"event_guid":"sei-F_kQp49QL0o97grYzQ","weight":1},{"event_id":3947,"event_guid":"ZwjtZbsZpe6Xfim50cj-CA","weight":2},{"event_id":3950,"event_guid":"L0a92AY4MXdIRWubHJn0Jg","weight":1},{"event_id":3953,"event_guid":"LxGiZFjmRQy3U6o41kSPSA","weight":1},{"event_id":4129,"event_guid":"0bbf1764-bd0a-4c11-b22a-13038e9835af","weight":1},{"event_id":4165,"event_guid":"7ab93789-ec77-5b7f-892f-77b1e2dfff5e","weight":1},{"event_id":4167,"event_guid":"7562f4f4-5774-543d-9179-916378df783d","weight":1},{"event_id":4212,"event_guid":"3e70713c-8276-4dfb-a028-67b83261c303","weight":1},{"event_id":4216,"event_guid":"f90b88a0-e43e-46f4-b9ad-373995a520ee","weight":1},{"event_id":4224,"event_guid":"a59ac068-c147-44a6-8d55-ae35448727b8","weight":1},{"event_id":4229,"event_guid":"6a40f977-5db3-4051-8257-3c30e84816a4","weight":1},{"event_id":4249,"event_guid":"98f8267c-cad1-4d04-8a52-f7e979e68c00","weight":1},{"event_id":4250,"event_guid":"80bf473f-8f34-4b9b-92be-ccdbf75952e2","weight":1},{"event_id":4259,"event_guid":"b5a645a9-bbdc-433e-a77c-b416074a92ea","weight":1},{"event_id":4268,"event_guid":"ba28bb48-0861-4159-a27b-d27b8a3e2ec2","weight":1},{"event_id":4273,"event_guid":"abd8b143-a3d8-4655-bd1c-a355a0bd5d8d","weight":1},{"event_id":4284,"event_guid":"d23d5053-0684-4342-a0a4-7cfc4cd2afe3","weight":1},{"event_id":4285,"event_guid":"d57cf068-ca2f-4e30-956b-e5149a1be25a","weight":1},{"event_id":4310,"event_guid":"98a24995-17aa-415a-9cf5-906faa0d1475","weight":1},{"event_id":4623,"event_guid":"49c234de-3276-b71c-89d7-0b3c6d276d6c","weight":1},{"event_id":4625,"event_guid":"d7f7c152-686b-6bdc-2ebf-2b2a7afe5013","weight":1},{"event_id":4817,"event_guid":"be19fbe3-e825-4e67-93f9-a6aeda2e31af","weight":1},{"event_id":5123,"event_guid":"12a277ea-9957-52cf-9a90-74381109e115","weight":1},{"event_id":5134,"event_guid":"eec4c54b-0b9b-533d-aed8-400c957e450d","weight":1},{"event_id":5995,"event_guid":"9711dc2c-f34a-5cec-943f-4bddbe86d9ee","weight":1},{"event_id":6376,"event_guid":"456fb60c-5ce7-11e8-be47-1fb2912eb895","weight":1},{"event_id":6474,"event_guid":"f58a2b6d-bde0-483b-a8db-043ea9371cb6","weight":1},{"event_id":6520,"event_guid":"64d3f3f5-5665-4050-ba15-0db530ecc262","weight":1},{"event_id":7262,"event_guid":"6636c191-d2c2-4255-98e9-5ad7a656bbbe","weight":1},{"event_id":7296,"event_guid":"b8424140-1639-44f7-a19a-67af58ad61e9","weight":1},{"event_id":7798,"event_guid":"6260c933-5ab0-4c58-b335-ee419b180712","weight":1},{"event_id":7925,"event_guid":"fd85bb93-e67e-5ecc-ad41-8470024119fe","weight":1},{"event_id":7989,"event_guid":"a75f727b-b87b-4e64-a8c0-a80a20325b94","weight":1},{"event_id":8061,"event_guid":"fad8122f-c935-56e6-a49f-f5b94ba6c366","weight":1}],"recordings":[{"size":213,"length":3605,"mime_type":"video/mp4","language":"eng","filename":"osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2017-05-28T15:22:45.128+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2017/h264-hd/osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes_hd.mp4","url":"https://media.ccc.de/public/recordings/16050","event_url":"https://media.ccc.de/public/events/5J96cLw9prhLQ4hlZv1ZUA","conference_url":"https://media.ccc.de/public/conferences/osc17"},{"size":88,"length":3605,"mime_type":"video/mp4","language":"eng","filename":"osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2017-05-28T15:32:50.481+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2017/h264-sd/osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes_sd.mp4","url":"https://media.ccc.de/public/recordings/16054","event_url":"https://media.ccc.de/public/events/5J96cLw9prhLQ4hlZv1ZUA","conference_url":"https://media.ccc.de/public/conferences/osc17"},{"size":46,"length":3597,"mime_type":"audio/opus","language":"eng","filename":"osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2017-05-28T15:33:14.199+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2017/opus/osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes.opus","url":"https://media.ccc.de/public/recordings/16055","event_url":"https://media.ccc.de/public/events/5J96cLw9prhLQ4hlZv1ZUA","conference_url":"https://media.ccc.de/public/conferences/osc17"},{"size":54,"length":3597,"mime_type":"audio/mpeg","language":"eng","filename":"osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2017-05-28T15:33:38.282+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2017/mp3/osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes.mp3","url":"https://media.ccc.de/public/recordings/16056","event_url":"https://media.ccc.de/public/events/5J96cLw9prhLQ4hlZv1ZUA","conference_url":"https://media.ccc.de/public/conferences/osc17"},{"size":101,"length":3605,"mime_type":"video/webm","language":"eng","filename":"osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2017-05-28T15:57:08.583+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2017/webm-sd/osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes_webm-sd.webm","url":"https://media.ccc.de/public/recordings/16062","event_url":"https://media.ccc.de/public/events/5J96cLw9prhLQ4hlZv1ZUA","conference_url":"https://media.ccc.de/public/conferences/osc17"},{"size":234,"length":3605,"mime_type":"video/webm","language":"eng","filename":"osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2017-05-28T16:45:54.185+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2017/webm-hd/osc17-1234-eng-Libabigail_How_semantic_analysis_of_C_and_C_ELF_binaries_can_be_used_to_analyze_ABI_changes_webm-hd.webm","url":"https://media.ccc.de/public/recordings/16077","event_url":"https://media.ccc.de/public/events/5J96cLw9prhLQ4hlZv1ZUA","conference_url":"https://media.ccc.de/public/conferences/osc17"}]}