bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/22554] New: .largecomm, .lbss, .ldata, and .lrodata are still n


From: john at buu dot ac.th
Subject: [Bug gas/22554] New: .largecomm, .lbss, .ldata, and .lrodata are still not documented after many, many years
Date: Wed, 06 Dec 2017 05:56:12 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=22554

            Bug ID: 22554
           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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]