Print this page
6098 ld(1) should not require symbols which identify group sections be global
*** 239,269 ****
gd.gd_name = str;
gd.gd_data = gisc->is_indata->d_buf;
gd.gd_cnt = gisc->is_indata->d_size / sizeof (Word);
/*
- * If this group is a COMDAT group, validate the signature symbol.
- */
- if ((gd.gd_data[0] & GRP_COMDAT) && !gnu_stt_section &&
- ((ELF_ST_BIND(sym->st_info) == STB_LOCAL) ||
- (sym->st_shndx == SHN_UNDEF))) {
- /* If section symbol, construct a printable name for it */
- if (ELF_ST_TYPE(sym->st_info) == STT_SECTION) {
- if (gisc->is_sym_name == NULL)
- (void) ld_stt_section_sym_name(gisc);
-
- if (gisc->is_sym_name != NULL)
- str = gisc->is_sym_name;
- }
-
- ld_eprintf(ofl, ERR_FATAL, MSG_INTL(MSG_GRP_INVALSYM),
- gifl->ifl_name, EC_WORD(gisc->is_scnndx),
- gisc->is_name, str);
- return (0);
- }
-
- /*
* If the signature symbol is a name generated by the GNU compiler to
* refer to a header, we need sloppy relocation.
*/
if (is_header_gensym(str)) {
if ((ofl->ofl_flags1 & FLG_OF1_NRLXREL) == 0)
--- 239,248 ----