https://sourceware.org/bugzilla/show_bug.cgi?id=22553
Bug ID: 22553 Summary: .largecomm, .lbss, .ldata, and .lrodata are still not documented after many, many years Product: binutils Version: 2.29 Status: UNCONFIRMED Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: john at buu dot ac.th Target Milestone: --- .largecomm is not documented, but gcc emits it for some >64K objects in medium model code on x86-64. .ldata, .lbss, and .lrodata are also undocumented, but emitted by gcc for the medium model in some cases. The texinfo manual outright fails to document the required directives for medium model x86-64 (AMD64/INTEL64) code. The man page hints that the texinfo is the cannonical documentation which should be used. I'm using GNU info in an xterm with the search operator / and cannot find any of the 4 directives explained. I also tried the index search operator i and tried all 4 directives (both with and without the leading dot) and got absolutely nothing. In desperation, I decompressed the as.info.gz file and used grep, but still got no matches for the directives either with or without the leading dot. The rather ancient email from 2011 archived here: https://cygwin.com/ml/binutils/2011-05/msg00152.html proves that .largecomm is supposed to be supported, but it is wrong to have something supported but not documented. I verified gcc-7.2.0 will generate .lbss, .ldata, and .lrodata in some cases for medium model, and it also will generate .largecomm in some cases. Testing was on an Ubuntu 17.10 system if it matters. I am actually using binutils 2.29.1, but in bugzilla there is no 'Version:' tag for that, so I chose 2.29 as the closest released version. I'm having a hard time getting some compiler authors to generate medium model code using these directives since they rightly state these directives are undocumented and thus not really supported whole-heartedly by the upstream gas developers. The people I correspond with said they don't want to emit code that depends on undocumented, unsupported, or poorly-supported features of the GNU gas assembler, and that maybe these things are 'gcc only'. But I think if they don't use at least the 3 .lbss, .ldata, and .lrodata sections, the code they generate might link and run, but it violates at least the spirit of the ABI. If this stuff was documented, at least I could point to that documentation and they could read it and realize it is actually supported and necessary to use for correct medium-model AMD64 code generation. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils