summaryrefslogtreecommitdiff
path: root/src/cmd/8l/list.c
Commit message (Collapse)AuthorAgeFilesLines
* cmd/cc, cmd/gc, cmd/ld: consolidate print format routinesAnthony Martin2014-02-121-312/+1
| | | | | | | | | | | | | | | We now use the %A, %D, %P, and %R routines from liblink across the board. Fixes issue 7178. Fixes issue 7055. LGTM=iant R=golang-codereviews, gobot, rsc, dave, iant, remyoudompheng CC=golang-codereviews https://codereview.appspot.com/49170043 Committer: Russ Cox <rsc@golang.org>
* cmd/8c, cmd/8g, cmd/8l: fix Plan 9 warningsDavid du Colombier2013-12-091-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | warning: src/cmd/8c/list.c:124 format mismatch d VLONG, arg 3 warning: src/cmd/8c/list.c:134 format mismatch d VLONG, arg 3 warning: src/cmd/8c/list.c:142 format mismatch d VLONG, arg 3 warning: src/cmd/8c/list.c:152 format mismatch d VLONG, arg 3 warning: src/cmd/8c/list.c:156 format mismatch d VLONG, arg 4 warning: src/cmd/8c/list.c:160 format mismatch d VLONG, arg 4 warning: src/cmd/8c/list.c:165 format mismatch d VLONG, arg 4 warning: src/cmd/8c/list.c:167 format mismatch d VLONG, arg 3 warning: src/cmd/8c/list.c:172 format mismatch d VLONG, arg 4 warning: src/cmd/8c/list.c:174 format mismatch d VLONG, arg 3 warning: src/cmd/8c/list.c:178 format mismatch d VLONG, arg 3 warning: src/cmd/8c/list.c:184 format mismatch d VLONG, arg 3 warning: src/cmd/8g/list.c:91 format mismatch d VLONG, arg 4 warning: src/cmd/8g/list.c:100 format mismatch d VLONG, arg 4 warning: src/cmd/8g/list.c:114 format mismatch d VLONG, arg 5 warning: src/cmd/8g/list.c:118 format mismatch d VLONG, arg 5 warning: src/cmd/8g/list.c:122 format mismatch d VLONG, arg 5 warning: src/cmd/8g/list.c:126 format mismatch d VLONG, arg 5 warning: src/cmd/8g/list.c:136 format mismatch d VLONG, arg 4 warning: src/cmd/8l/list.c:107 format mismatch d VLONG, arg 4 warning: src/cmd/8l/list.c:125 format mismatch ux VLONG, arg 4 warning: src/cmd/8l/list.c:128 format mismatch ux VLONG, arg 4 warning: src/cmd/8l/list.c:130 format mismatch d VLONG, arg 4 warning: src/cmd/8l/list.c:134 format mismatch d VLONG, arg 5 warning: src/cmd/8l/list.c:138 format mismatch d VLONG, arg 6 warning: src/cmd/8l/list.c:143 format mismatch d VLONG, arg 5 warning: src/cmd/8l/list.c:148 format mismatch d VLONG, arg 5 warning: src/cmd/8l/list.c:150 format mismatch d VLONG, arg 4 warning: src/cmd/8l/list.c:154 format mismatch d VLONG, arg 4 warning: src/cmd/8l/list.c:158 format mismatch d VLONG, arg 4 warning: src/cmd/8l/obj.c:132 format mismatch ux VLONG, arg 2 R=golang-dev, rsc CC=golang-dev https://codereview.appspot.com/39710043 Committer: Russ Cox <rsc@golang.org>
* liblink: create new library based on linker codeRuss Cox2013-12-081-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is an enormous amount of code moving around in this CL, but the code is the same, and it is invoked in the same ways. This CL is preparation for the new linker structure, not the new structure itself. The new library's definition is in include/link.h. The main change is the use of a Link structure to hold all the linker-relevant state, replacing the smattering of global variables. The Link structure should both make it clearer which state must be carried around and make it possible to parallelize more easily later. The main body of the linker has moved into the architecture-independent cmd/ld directory. That includes the list of known header types, so the distinction between Hplan9x32 and Hplan9x64 is removed (no other header type distinguished 32- and 64-bit formats), and code for unused formats such as ipaq kernels has been deleted. The code being deleted from 5l, 6l, and 8l reappears in liblink or in ld. Because multiple files are being merged in the liblink directory, it is not possible to show the diffs nicely in hg. The Prog and Addr structures have been unified into an architecture-independent form and moved to link.h, where they will be shared by all tools: the assemblers, the compilers, and the linkers. The unification makes it possible to write architecture-independent traversal of Prog lists, among other benefits. The Sym structures cannot be unified: they are too fundamentally different between the linker and the compilers. Instead, liblink defines an LSym - a linker Sym - to be used in the Prog and Addr structures, and the linker now refers exclusively to LSyms. The compilers will keep using their own syms but will fill out the corresponding LSyms in the Prog and Addr structures. Although code from 5l, 6l, and 8l is now in a single library, the code has been arranged so that only one architecture needs to be linked into a particular program: 5l will not contain the code needed for x86 instruction layout, for example. The object file writing code in liblink/obj.c is from cmd/gc/obj.c. Preparation for golang.org/s/go13linker work. This CL does not build by itself. It depends on 35740044 and will be submitted at the same time. R=iant CC=golang-dev https://codereview.appspot.com/35790044
* cmd/5l, cmd/6l, cmd/8l: increase error buffer sizeRuss Cox2013-07-111-1/+1
| | | | | | | | | | | STRINGSZ (200) is fine for lines generated by things like instruction dumps, but an error containing a couple file names can easily exceed that, especially on Macs with the ridiculous default $TMPDIR. R=ken2 CC=golang-dev https://codereview.appspot.com/11199043
* cmd/8l: add SSE2 instructionsRuss Cox2012-10-071-0/+9
| | | | | | R=ken CC=golang-dev http://codereview.appspot.com/6610065
* 8l: more fixes for Plan 9Lucio De Re2011-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once these changes are effected, it is possible to construct "8l" native on a (386?) Plan 9 system, albeit with assistance from modules such as mkfiles that are not (yet) included in any public patches. 8l/asm.c: . Corrected some format qualifiers. 8l/list.c: . Cast a print() argument to (int) to match the given format. It may be possible to change the format (%R), but I have not looked into it. 8l/obj.c: . Removed some unused code. 8l/span.c: . Removed unnecessary incrementation on "bp". . Corrected some format qualifiers. ld/data.c: . Corrected some format qualifiers. . Cast print argument to (int): used as field size. . Use braces to suppress warning about empty if() statements. ld/dwarf.c: . Trivial spelling mistake in comment. ld/ldelf.c: . Added USED() statements to silence warnings. . Dropped redundant address (&) operators. . corrected some format qualifiers. . Cast to (int) for switch selection variable. ld/macho.c: . Added USED() statements to silence warnings. ld/ldpe.c: . Added USED() statements to silence warnings. . More careful use of "sect" variable. . Corrected some format qualifiers. . Removed redundant assignments. . Minor fix dropped as it was submitted separately. ld/pe.c: . Dropped <time.h> which is now in <u.h>. . Dropped redundant address (&) operators. . Added a missing variable initialisation. ld/symtab.c: . Added USED() statements to silence warnings. . Removed redundant incrementation. . Corrected some format qualifiers. All the above have been tested against a (very) recent release and do not seem to trigger any regressions. All review suggestions have been incorporated. R=rsc CC=golang-dev http://codereview.appspot.com/4633043 Committer: Russ Cox <rsc@golang.org>
* 5l, 6l, 8l: link pclntab and symtab as ordinary rodata symbolsRuss Cox2010-10-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That is, move the pc/ln table and the symbol table into the read-only data segment. This eliminates the need for a special load command to map the symbol table into memory, which makes the information available on systems that couldn't handle the magic load to 0x99000000, like NaCl and ARM QEMU and Linux without config_highmem=y. It also eliminates an #ifdef and some clumsy code to find the symbol table on Windows. The bad news is that the binary appears to be bigger than it used to be. This is not actually the case, though: the same amount of data is being mapped into memory as before, and the tables are still read-only, so they're still shared across multiple instances of the binary as they were before. The difference is just that the tables aren't squirreled away in some section that "size" doesn't know to look at. This is a checkpoint. It probably breaks Windows and breaks NaCl more than it used to be broken, but those will be fixed. The logic involving -s needs to be revisited too. Fixes issue 871. R=ken2 CC=golang-dev http://codereview.appspot.com/2587041
* 5l, 6l, 8l: separate pass to fix addressesRuss Cox2010-10-191-0/+27
| | | | | | | | | | Lay out code before data. R=ken2 CC=golang-dev http://codereview.appspot.com/2490043 Committer: Russ Cox <rsc@golang.org>
* various: avoid %ld etcRuss Cox2010-10-131-12/+12
| | | | | | | | | | | | | | | The Plan 9 tools assume that long is 32 bits. We converted all instances of long to int32 when importing the code but missed the print formats. Because int32 is always int on the compilers we use, it is never correct to use %lux, %ld, etc. Convert to %ux, %d, etc. (It matters because on 64-bit gcc, long is 64 bits, so we were printing 32-bit quantities with 64-bit formats.) R=ken2 CC=golang-dev http://codereview.appspot.com/2491041
* 5l, 6l, 8l: first pass cleanupRuss Cox2010-10-131-7/+12
| | | | | | | | | | | | | | | | | | | | | | * Maintain Sym* list for text with individual prog lists instead of using one huge list and overloading p->pcond. * Comment what each file is for. * Move some output code from span.c to asm.c. * Move profiling into prof.c, symbol table into symtab.c. * Move mkfwd to ld/lib.c. * Throw away dhog dynamic loading code. * Throw away Alef become. * Fix printing of WORD instructions in 5l -a. Goal here is to be able to handle each piece of text or data as a separate piece, both to make it easier to load the occasional .o file and also to make it possible to split the work across multiple threads. R=ken2, r, ken3 CC=golang-dev http://codereview.appspot.com/2335043
* 6g, 6l, 8g, 8l: move read-only data to text segmentRuss Cox2010-09-121-21/+20
| | | | | | | | Changing 5g and 5l too, but it doesn't work yet. R=ken2 CC=golang-dev http://codereview.appspot.com/2136047
* linux/386: use Xen-friendly ELF TLS instruction sequenceRuss Cox2010-07-171-1/+1
| | | | | | | | Fixes issue 465. R=iant CC=golang-dev http://codereview.appspot.com/1665051
* change print print buffer sizeKen Thompson2010-01-271-3/+3
| | | | | | | | to go with the full path names R=rsc CC=golang-dev http://codereview.appspot.com/195079
* 6l, 8l: make string buffer big enough for 8 chars (and then some)weekly.2009-12-07Russ Cox2009-12-071-1/+1
| | | | | | | Fixes issue 221. R=ken2 http://codereview.appspot.com/165086
* 8l: fix print line number format, buffer overflowRuss Cox2009-12-031-4/+4
| | | | | R=ken2 http://codereview.appspot.com/165059
* same speedup as 6lKen Thompson2009-11-051-2/+2
| | | | | R=rsc http://go/go-review/1016050
* factor portable object+library bits out of 5l/6l/8l into ldRuss Cox2009-10-071-0/+1
| | | | | | | R=r DELTA=3214 (904 added, 2260 deleted, 50 changed) OCL=35425 CL=35427
* symbol bugs.Russ Cox2009-08-201-1/+4
| | | | | | | | | do not emit unreachable data symbols. R=austin DELTA=103 (71 added, 4 deleted, 28 changed) OCL=33325 CL=33622
* * move go-specific loader codeRuss Cox2009-03-311-1/+1
| | | | | | | | | | | | | | | | | | | into gc directory, where it gets included as ../gc/ldbody this is similar to the assemblers including ../cc/lexbody and ../cc/macbody. * hook go-specific loader code into 8l. * make current 8.out.h and 6.out.h backward compatible with plan 9's versions. i had added some constants in the middle of enums and have now moved them to the end. this keeps us from invalidating old .8 and .6 files. not sure how much it really matters, but easy to do. R=r DELTA=1314 (667 added, 623 deleted, 24 changed) OCL=26938 CL=26941
* update 8a, 8c, 8l to use new object format.Russ Cox2009-03-201-3/+15
| | | | | | | | | | | add "extern register" support to 8c. extern register means allocate in the FS-relative segment. make 8l generate segmented stack checks. R=ken OCL=26600 CL=26606
* 8a, 8c, and 8l from inferno distributionRuss Cox2009-01-061-0/+322
R=r DELTA=19539 (19539 added, 0 deleted, 0 changed) OCL=22109 CL=22109