.gnu.linkonce.* sections never get the SECTION_SMALL attribute set, but items small enough and placed therein will still be referenced through gprel22 (i.e. without going through the linkage table). A simple solution could be to have IA64 have a custom TARGET_SECTION_TYPE_FLAGS handler so that the the SECTION_SMALL flag can get properly set. This would also allow to not depend on a not ABI-mandated assembler feature marking .tdata.* and .tbss.* sections (as seen with -f{function,data}-sections) as short.
-- Summary: data referenced as short misplaced in non-short linkonce section Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jbeulich at novell dot com CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: ia64-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19139