These patches allow us to handle toplevel assembly referencing symbols. Previous linux kernel patches needed to mark any such referenced symbols manually. Currently needed linux patches are here: https://gitlab.com/mixal_iirec/linux_gcc_lto_patches
First part of these patches allows toplevel assembly to be partitioned. Seconds part heuristically detects which symbols are referenced from toplevel assembly and disables optimizations so that they are correctly partitioned. It works with 1to1 partitioning. The requirement is that the partitioning puts local symbols and toplevel assembly from single file into the same partition by default. So it cannot work with our default balanced partitioning, but it could work with nto1 partitioning (similar to cache partitioning) if we handled identically named local symbols that cannot be renamed.