Skip to content

L0 — binary only

Detectable from the shipped binary's symbol table alone.

67 case(s). ← back to all examples

Case Title Verdict Category
case01_symbol_removal Symbol Removal 🔴 BREAKING Breaking
case03_compat_addition Compatible Addition (New Export) 🟢 COMPATIBLE Addition (Compatible)
case04_no_change No Change ✅ NO_CHANGE No Change
case05_soname Missing SONAME 🟢 COMPATIBLE Quality (Compatible)
case06_visibility Symbol Visibility Leak 🔴 BREAKING Breaking
case12_function_removed Function Removed from Shared Library 🔴 BREAKING Breaking
case13_symbol_versioning Symbol Versioning Script 🟢 COMPATIBLE Quality (Compatible)
case15_noexcept_change noexcept Removed 🟡 COMPATIBLE_WITH_RISK Risk
case16_inline_to_non_inline Inline → Non-inline (ODR / Symbol Appearance) 🟢 COMPATIBLE Addition (Compatible)
case27_symbol_binding_weakened Symbol Binding Weakened (GLOBAL → WEAK) 🟢 COMPATIBLE Quality (Compatible)
case29_ifunc_transition GNU IFUNC Transition 🟢 COMPATIBLE Quality (Compatible)
case47_inline_to_outlined Inline Method Moved Out-of-Line 🟢 COMPATIBLE Addition (Compatible)
case49_executable_stack Executable Stack (GNU_STACK RWX) 🟢 COMPATIBLE Quality (Compatible)
case50_soname_inconsistent SONAME Inconsistent (Wrong Major Version) 🟡 COMPATIBLE_WITH_RISK Risk
case51_protected_visibility Protected Visibility (DEFAULT to PROTECTED) 🟢 COMPATIBLE Quality (Compatible)
case52_rpath_leak RPATH Leak (Hardcoded Build Directory) 🟢 COMPATIBLE Quality (Compatible)
case53_namespace_pollution Namespace Pollution (Generic Symbol Names) 🔴 BREAKING Breaking
case58_var_removed Global Variable Removed 🔴 BREAKING Breaking
case59_func_became_inline Function Became Inline (outlined → inline) 🔴 BREAKING Breaking
case61_var_added Global Variable Added 🟢 COMPATIBLE Addition (Compatible)
case62_type_field_added_compatible Type Field Added (Compatible — Opaque Struct) 🟢 COMPATIBLE Addition (Compatible)
case65_symbol_version_removed Symbol Version Removed 🔴 BREAKING Breaking
case66_language_linkage_changed Language Linkage Changed (extern "C" removed) 🔴 BREAKING Breaking
case71_inline_namespace_moved Inline Namespace Moved 🔴 BREAKING Breaking
case82_sycl_overload_set_removed SYCL Overload Set Removed (DPC++ Build Withdrawn) 🔴 BREAKING Breaking
case83_cpu_dispatch_isa_dropped CPU-dispatch ISA family dropped 🟡 COMPATIBLE_WITH_RISK Risk
case84_bundle_soname_skew Multi-Library Bundle SONAME Skew 🔴 BREAKING Bundle (Multi-library)
case86_tag_struct_renamed Tag Struct Renamed (empty class re-mangling) 🔴 BREAKING Breaking
case90_bundle_intra_dep_removed Bundle — Intra-Bundle Removed Symbol 🔴 BREAKING Bundle (Multi-library)
case91_bundle_intra_signature_drift Bundle — Intra-Bundle extern-C Signature Drift 🔴 BREAKING Bundle (Multi-library)
case92_bundle_provider_changed Bundle — Symbol Provider Migration 🟡 COMPATIBLE_WITH_RISK Bundle (Multi-library)
case93_bundle_manifest_drift Bundle — Instantiation Manifest Drift 🔴 BREAKING Bundle (Multi-library)
case97_api_depends_on_consumer_env API Depends on Consumer Environment 🔴 BREAKING Breaking
case99_experimental_graduated Experimental to Stable Graduation (Compatible) 🟢 COMPATIBLE Addition (Compatible)
case100_experimental_removed_without_replacement Experimental Declaration Removed Without Replacement 🔴 BREAKING Breaking
case101_inline_namespace_version_bumped Inline Namespace Version Bumped 🔴 BREAKING Breaking
case104_glibcxx_dual_abi_flip libstdc++ Dual-ABI Flip 🔴 BREAKING Breaking
case110_concurrent_unordered_map_api_drift concurrent_unordered_map API Drift 🔴 BREAKING Breaking
case113_abi_tag_changed ABI-tag set change ([abi:cxx11] lost on a single symbol) 🔴 BREAKING Breaking
case127_data_object_size_changed Exported Data Object Size Changed 🔴 BREAKING Breaking
case128_symbol_binding_strengthened Symbol Binding Strengthened (Weak → Global) 🟢 COMPATIBLE Quality (Compatible)
case134_relro_weakened RELRO Weakened 🟡 COMPATIBLE_WITH_RISK Risk
case135_stack_canary_removed Stack Canary Removed 🟡 COMPATIBLE_WITH_RISK Risk
case136_executable_stack_removed Executable Stack Removed (the fix direction) 🟢 COMPATIBLE Quality (Compatible)
case137_runpath_changed DT_RUNPATH Changed 🟢 COMPATIBLE Quality (Compatible)
case138_needed_added DT_NEEDED Added 🟢 COMPATIBLE Quality (Compatible)
case139_symbol_version_node_removed Symbol Version Node Removed 🔴 BREAKING Breaking
case141_versioned_symbol_scheme Versioned-Symbol Scheme (library-wide rename) 🔴 BREAKING Breaking
case142_vtable_slot_count_binary_only Vtable Slot Count Changed (detected from a stripped binary) 🔴 BREAKING Breaking
case145_audit_unversioned_export Unversioned Export Under a Versioning Scheme (Audit, Pure L0) 🟢 COMPATIBLE Quality (Compatible)
case169_overload_added Overload Added to a Previously Unique Function 🟡 COMPATIBLE_WITH_RISK Risk
case170_env_runtime_floor_raised Runtime Floor Raised (glibc Relink Drift) 🟡 COMPATIBLE_WITH_RISK Risk
case171_static_tls_introduced Static TLS Introduced 🟡 COMPATIBLE_WITH_RISK Risk
case172_vtable_thunk_offset_changed Vtable Thunk Offset Changed (detected from a stripped binary) 🔴 BREAKING Breaking
case173_vtt_slot_count_changed VTT Slot Count Changed (detected from a stripped binary) 🔴 BREAKING Breaking
case175_kabi_crc_changed kABI CRC Changed 🔴 BREAKING Breaking
case176_kabi_symbol_namespace_changed kABI Export Namespace Changed 🔴 BREAKING Breaking
case177_long_double_abi_changed long double ABI Changed 🔴 BREAKING Breaking
case178_unnamed_type_in_public_abi Unnamed Type Leaks Into the Public ABI 🟡 COMPATIBLE_WITH_RISK Risk
case179_cet_protection_weakened CET Protection Weakened 🟡 COMPATIBLE_WITH_RISK Risk
case180_symbol_binding_lost_unique Symbol Binding Lost GNU_UNIQUE 🟡 COMPATIBLE_WITH_RISK Risk
case182_accidental_export_removed_still_breaking Accidental Export Removed — Still Breaking Under Public-Header Scoping 🔴 BREAKING Breaking
case183_internal_version_node_churn Internal ELF symbol-version node churn 🟡 COMPATIBLE_WITH_RISK Risk
case185_inherited_override_reuses_slot Inherited override reuses the base's vtable slot 🟢 COMPATIBLE Addition (Compatible)
case193_ordinary_exported_fn_call_not_reachable Ordinary Exported Function's Internal Call Is Not Public-Reachable 🔴 BREAKING Breaking
case200_new_entry_point_instead_of_parameter_added New Entry Point Instead of a Changed Arity 🟢 COMPATIBLE Addition (Compatible)
case204_class_gained_non_virtual_method Class Gained a Non-Virtual Method 🟢 COMPATIBLE Addition (Compatible)