Comment 1 for bug 1570055

Revision history for this message
Steve Langasek (vorlon) wrote :

I've tested building this with either all gcc or all g++, and the result is the same.

At this point I suspect a regression in glibc 2.23. I don't think lua is doing anything particularly fancy here, yet at the time the binary is built, stdout points to a place in memory (possibly read-only) that's too small for a struct _IO_FILE_complete, yet glibc nevertheless tries to cast to this in the destructor and then gets very sad.

It seems that it is possible to work around this by not passing the flags '-Wl,--version-script -Wl,../debian/version-script' to the link command.

Comparing the symbols between the binaries linked with and without this version script shows the following important difference:
  10030ab0 g DO .rodata 00000004 Base _IO_stdin_used
Seems like we probably want the executable to not hide that symbol.

OTOH seems like hiding that symbol shouldn't break the binary? which is happening only on powerpc.