On Thu, Jun 23, 2016 at 3:06 PM, Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx> wrote: > 2016-06-23 15:40 GMT+03:00 Dmitry Vyukov <dvyukov@xxxxxxxxxx>: >> On Thu, Jun 23, 2016 at 1:50 PM, Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx> wrote: >>> 2016-06-23 14:49 GMT+03:00 Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>: >>> >>>> Frankly, I don't understand why .text.[exit,startup] sections has any relation >>>> to the bug you described, but maybe I just don't now linker >>> >>> ... scripting well enough to understand what's going on here. >> >> >> I noticed that these 3 new sections are what's different between >> kernel that works and kernel that does not work. So I decided to >> account all of them >> Checked now, it works only with .dtors. >> Is it preferable to add only .dtors or all sections? > > No. Merging text.startup/text.exit into INIT_TEXT/EXIT_TEXT makes sense anyway. > This will save us some memory. Also we can add .fini_array into > DISCARD section, because we don't need destructors. > > As for .dtors, at first I'd like to understand where it comes from. > AFAIU it shouldn't exist at all. > Recent gcc should generate .fini_array instead of .dtors - > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770 > So something is wrong here. Can you share your kernel .config, kernel version? > And you use gcc-6.1.0, right? gcc version 6.1.1 20160513 .dtors contains asan destructors for global vars: [18] .dtors PROGBITS ffffffff8279a600 016c7600 0000000000002e20 0000000000000000 WA 0 0 8 016c7600 00 1b b4 81 ff ff ff ff 20 1b b4 81 ff ff ff ff |........ .......| 016c7610 40 1b b4 81 ff ff ff ff 60 1b b4 81 ff ff ff ff |@.......`.......| 016c7620 80 1b b4 81 ff ff ff ff a0 1b b4 81 ff ff ff ff |................| 016c7630 c0 1b b4 81 ff ff ff ff e0 1b b4 81 ff ff ff ff |................| vmlinux.old:ffffffff81b41b20 0000000000000017 t _GLOBAL__sub_D_65535_0_init_uts_ns vmlinux.old:ffffffff81b41b40 0000000000000017 t _GLOBAL__sub_D_65535_0_root_mountflags vmlinux.old:ffffffff81b41b60 0000000000000017 t _GLOBAL__sub_D_65535_0_rd_prompt vmlinux.old:ffffffff81b41b80 0000000000000017 t _GLOBAL__sub_D_65535_0_initrd_load ffffffff81b41b20 <_GLOBAL__sub_D_65535_0_init_uts_ns>: ffffffff81b41b20: 55 push %rbp ffffffff81b41b21: be 03 00 00 00 mov $0x3,%esi ffffffff81b41b26: 48 c7 c7 a0 23 21 82 mov $0xffffffff822123a0,%rdi ffffffff81b41b2d: 48 89 e5 mov %rsp,%rbp ffffffff81b41b30: e8 9b 85 83 ff callq ffffffff8137a0d0 <__asan_unregister_globals> ffffffff81b41b35: 5d pop %rbp ffffffff81b41b36: c3 retq ffffffff81b41b37: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) ffffffff81b41b3e: 00 00 -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html