Package: libc6-i386 Version: 2.29-8 Since updating my system today our build system binaries started crashing.
Upon further investigation problem is that __mktime_internal code in libc6-i386 now started using 'movaps' instruction without aligning stack on 16 byte boundary. As far as I can tell, while x86-64 ABI requires stack to be aligned on entry to the functions, x86 ABI does not have any such requirement, and so glibc should align stack itself if it wants to use XMM instructions that require aligned values. It seems that libc6:i386 is compiled correctly, so I worked around by installing that instead of libc6-i386:amd64. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/build/toolchain/lin32/p7zip-9.20/bin/7za x -y -tzip /bhavesh/home/petr/drboss/'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0xf7dbe0e2 in __mktime_internal (tp=0xffb60f8c, convert=0xf7dbd990 <__GI___gmtime_r>, offset=0xf7ee6350 <gmtime_offset>) at mktime.c:387 387 mktime.c: No such file or directory. (gdb) bt #0 0xf7dbe0e2 in __mktime_internal (tp=0xffb60f8c, convert=0xf7dbd990 <__GI___gmtime_r>, offset=0xf7ee6350 <gmtime_offset>) at mktime.c:387 #1 0xf7dc114d in timegm (tmp=0xffb60f8c) at timegm.c:33 #2 0x0804aa2b in ?? () #3 0x080704fc in ?? () #4 0x080f6859 in ?? () #5 0x0807fdf8 in ?? () #6 0x080804de in ?? () #7 0x080fa53a in ?? () #8 0x0808d0f9 in ?? () #9 0x0808f118 in ?? () #10 0x08054101 in ?? () #11 0x08057edf in ?? () #12 0xf7d2b811 in __libc_start_main (main=0x8057eb0, argc=6, argv=0xffb61be4, init=0x804a190, fini=0x8141ab0, rtld_fini=0xf7f41300 <_dl_fini>, stack_end=0xffb61bdc) at ../csu/libc-start.c:308 #13 0x0804a871 in ?? () (gdb) x /10i $eip-19 0xf7dbe0cf <__mktime_internal+591>: psubq %xmm1,%xmm0 0xf7dbe0d3 <__mktime_internal+595>: movd %xmm0,0x78(%esp) 0xf7dbe0d9 <__mktime_internal+601>: movq %xmm0,0x90(%esp) => 0xf7dbe0e2 <__mktime_internal+610>: movaps %xmm0,(%esp) 0xf7dbe0e6 <__mktime_internal+614>: movaps %xmm0,0x10(%esp) 0xf7dbe0eb <__mktime_internal+619>: mov 0x40(%esp),%eax 0xf7dbe0ef <__mktime_internal+623>: mov %edi,%ecx 0xf7dbe0f1 <__mktime_internal+625>: mov %esi,%edx 0xf7dbe0f3 <__mktime_internal+627>: call 0xf7dbdc10 <ranged_convert> 0xf7dbe0f8 <__mktime_internal+632>: test %eax,%eax (gdb) print /x $esp $1 = 0xffb60e24