https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780
--- Comment #23 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to H.J. Lu from comment #22) > Created attachment 35331 [details] > A patch > > I am testing this. +static bool +ix86_binds_local_p (const_tree exp) +{ + return default_binds_local_p_3 (exp, flag_shlib != 0, true, false, + (!flag_pic + || (TARGET_64BIT + && HAVE_LD_PIE_COPYRELOC != 0))); +} shouldn't the 4th argument be true? At least before this patch, i386 backend was the only one that passed true as extern_protected_data, but after this patch you never pass true to that parameter, making it dead again. Also, a typo: lcoal -> local