An error occurred fetching the project authors.
- 18 Oct, 2011 1 commit
-
-
Mikkel Krautz authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5272050
-
- 29 Jul, 2011 1 commit
-
-
Joel Sing authored
Add linker support for OpenBSD ELF-64. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/4815066
-
- 28 Jul, 2011 1 commit
-
-
Alex Brainman authored
Simplify code and add more checks. Fixes #2105. R=rsc CC=golang-dev https://golang.org/cl/4794060
-
- 25 Jul, 2011 1 commit
-
-
Lucio De Re authored
ld/data.c: . Format specifier with corresponding cast to cater for all architectures (llux and vlong). ld/ldelf.c: ld/ldmacho.c: . Missing "pn" argument in diag() calls. ld/ldpe.c: . Dropped "sym->sectnum" in diag() call. . Typo in a comment. ld/lib.h: . Added varargck pragma for "O". R=rsc CC=golang-dev https://golang.org/cl/4749042
-
- 23 Jul, 2011 1 commit
-
-
Russ Cox authored
Fixes #2052. R=r CC=golang-dev https://golang.org/cl/4812053
-
- 20 Jul, 2011 1 commit
-
-
Gustavo Niemeyer authored
The dynamic ELF sections were pointing to the proper data, but that data was already owned by the rodata and text sections. Some ELF references explicitly prohibit multiple sections from owning the same data, and strip behaves accordingly. The data for these sections was moved out and their ranges are now owned by their respective sections. This change makes strip happy both with and without -s being provided at link time. A test was added in debug/elf to ensure there are no regressions on this area in the future. Fixes #1242. Fixes #2022. NOTE: Tested on Linux amd64/386/arm only. R=rsc CC=golang-dev https://golang.org/cl/4808043
-
- 18 Jul, 2011 1 commit
-
-
Russ Cox authored
Reduces number of write+seek's from 88516 to 2080 when linking godoc with 6l. Thanks to Alex Brainman for pointing out the many small writes. R=golang-dev, r, alex.brainman, robert.hencke CC=golang-dev https://golang.org/cl/4743043
-
- 28 Jun, 2011 1 commit
-
-
Gustavo Niemeyer authored
The gosymtab and gopclntab sections were pointing to the proper data, but that data was already owned by the rodata section. Some ELF references explicitly prohibit multiple sections from owning the same data, and strip behaves accordingly. The data for these sections was moved to after rodata, and the gosymtab and gopclntab sections now own their respective ranges. This change makes strip happy both with and without -s being provided at link time. Note that it won't remove these sections because they are still allocated, and that's by design since they are necessary at runtime for generating proper backtraces and similar introspection operations. Unlike the previous behavior, -s will now maintain zero-sized gosymtab and gopclntab sections. This makes the implementation slightly cleaner. Fixes #1242. NOTE: Tested on Linux amd64/386/arm only. R=ality, rsc CC=golang-dev https://golang.org/cl/4639077
-
- 21 Jun, 2011 1 commit
-
-
Robert Hencke authored
R=golang-dev, r, rsc CC=golang-dev https://golang.org/cl/4635053
-
- 07 Jun, 2011 1 commit
-
-
Anthony Martin authored
I started looking at this code because the nm in GNU binutils was ignoring the first symbol in the .symtab section. Apparently, the System V ABI reserves the first entry and requires all fields inside to be set to zero. The list of changes is as follows: · reserve the first symbol entry (as noted above) · fix the section indices for .data and .bss symbols · factor out common code for Elf32 and Elf64 · remove the special case for elfsymo in [568]l/asm.c:/^asmb · add the "etext" symbol in 6l · add static symbols R=rsc CC=golang-dev https://golang.org/cl/4524075
-
- 25 May, 2011 1 commit
-
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/4538095
-
- 12 May, 2011 1 commit
-
-
Russ Cox authored
Should have been added long ago. Thanks to Alex Brainman for noticing. R=ken2 CC=golang-dev https://golang.org/cl/4538046
-
- 03 May, 2011 1 commit
-
-
Russ Cox authored
$ file $GOROOT/bin/{godoc,goyacc} /home/rsc/g/go/bin/godoc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not strpped /home/rsc/g/go/bin/goyacc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped $ Fixes #1758. R=iant CC=golang-dev https://golang.org/cl/4428079
-
- 14 Apr, 2011 1 commit
-
-
Russ Cox authored
Fixes #1698. Fixes #1699. R=ken2 CC=golang-dev https://golang.org/cl/4419041
-
- 11 Apr, 2011 1 commit
-
-
Luuk van Dijk authored
Moved Sym printing to Yconv. Fixed warning in data.c R=rsc CC=golang-dev https://golang.org/cl/4378052
-
- 09 Apr, 2011 1 commit
-
-
Russ Cox authored
The ld time was dominated by symbol table processing, so * increase hash table size * emit fewer symbols in gc (just 1 per string, 1 per type) * add read-only lookup to avoid creating spurious symbols * add linked list to speed whole-table traversals Breaks dwarf generator (no idea why), so disable dwarf. Reduces time for 6l to link godoc by 25%. R=ken2 CC=golang-dev https://golang.org/cl/4383047
-
- 08 Mar, 2011 1 commit
-
-
Russ Cox authored
Much of the bulk of Go binaries is the symbol tables, which give a name to every C string, Go string, and reflection type symbol. These names are not worth much other than seeing what's where in a binary. This CL deletes all those names from the symbol table, instead aggregating the symbols into contiguous blocks and giving them the names "string.*", "go.string.*", and "type.*". Before: $ 6nm $(which godoc.old) | sort | grep ' string\.' | tail -10 59eda4 D string."aa87ca22be8b05378eb1c71... 59ee08 D string."b3312fa7e23ee7e4988e056... 59ee6c D string."func(*token.FileSet, st... 59eed0 D string."func(io.Writer, []uint8... 59ef34 D string."func(*tls.Config, *tls.... 59ef98 D string."func(*bool, **template.... 59effc D string."method(p *printer.print... 59f060 D string."method(S *scanner.Scann... 59f12c D string."func(*struct { begin in... 59f194 D string."method(ka *tls.ecdheRSA... $ After: $ 6nm $(which godoc) | sort | grep ' string\.' | tail -10 5e6a30 D string.* $ Those names in the "Before" are truncated for the CL. In the real binary they are the complete string, up to a certain length, or else a unique identifier. The same applies to the type and go.string symbols. Removing the names cuts godoc by more than half: -rwxr-xr-x 1 rsc rsc 9153405 2011-03-07 23:19 godoc.old -rwxr-xr-x 1 rsc rsc 4290071 2011-03-07 23:19 godoc For what it's worth, only 80% of what's left gets loaded into memory; the other 20% is dwarf debugging information only ever accessed by gdb: -rwxr-xr-x 1 rsc rsc 3397787 2011-03-07 23:19 godoc.nodwarf R=r, cw CC=golang-dev https://golang.org/cl/4245072
-
- 24 Feb, 2011 2 commits
-
-
Russ Cox authored
A reference to the address of weak.foo resolves at link time to the address of the symbol foo if foo would end up in the binary anyway, or to zero if foo would not be in the binary. For example: int xxx = 1; int yyy = 2; int weak·xxx; int weak·yyy; void main·main(void) { runtime·printf("%p %p %p\n", &xxx, &weak·xxx, &weak·yyy); } prints the same non-nil address twice, then 0 (because yyy is not referenced so it was dropped from the binary). This will be used by the reflection tables. R=iant CC=golang-dev https://golang.org/cl/4223044
-
Alex Brainman authored
Fixes #1516. R=rsc, mattn CC=golang-dev https://golang.org/cl/4214041
-
- 23 Feb, 2011 1 commit
-
-
Alex Brainman authored
Thanks to rsc for the suggestion. R=r CC=golang-dev https://golang.org/cl/4174060
-
- 22 Feb, 2011 1 commit
-
-
Russ Cox authored
Fix problems found. On amd64, various library routines had bigger stack frames than expected, because large function calls had been added. runtime.assertI2T: nosplit stack overflow 120 assumed on entry to runtime.assertI2T 8 after runtime.assertI2T uses 112 0 on entry to runtime.newTypeAssertionError -8 on entry to runtime.morestack01 runtime.assertE2E: nosplit stack overflow 120 assumed on entry to runtime.assertE2E 16 after runtime.assertE2E uses 104 8 on entry to runtime.panic 0 on entry to runtime.morestack16 -8 after runtime.morestack16 uses 8 runtime.assertE2T: nosplit stack overflow 120 assumed on entry to runtime.assertE2T 16 after runtime.assertE2T uses 104 8 on entry to runtime.panic 0 on entry to runtime.morestack16 -8 after runtime.morestack16 uses 8 runtime.newselect: nosplit stack overflow 120 assumed on entry to runtime.newselect 56 after runtime.newselect uses 64 48 on entry to runtime.printf 8 after runtime.printf uses 40 0 on entry to vprintf -8 on entry to runtime.morestack16 runtime.selectdefault: nosplit stack overflow 120 assumed on entry to runtime.selectdefault 56 after runtime.selectdefault uses 64 48 on entry to runtime.printf 8 after runtime.printf uses 40 0 on entry to vprintf -8 on entry to runtime.morestack16 runtime.selectgo: nosplit stack overflow 120 assumed on entry to runtime.selectgo 0 after runtime.selectgo uses 120 -8 on entry to runtime.gosched On arm, 5c was tagging functions NOSPLIT that should not have been, like the recursive function printpanics: printpanics: nosplit stack overflow 124 assumed on entry to printpanics 112 after printpanics uses 12 108 on entry to printpanics 96 after printpanics uses 12 92 on entry to printpanics 80 after printpanics uses 12 76 on entry to printpanics 64 after printpanics uses 12 60 on entry to printpanics 48 after printpanics uses 12 44 on entry to printpanics 32 after printpanics uses 12 28 on entry to printpanics 16 after printpanics uses 12 12 on entry to printpanics 0 after printpanics uses 12 -4 on entry to printpanics R=r, r2 CC=golang-dev https://golang.org/cl/4188061
-
- 04 Feb, 2011 1 commit
-
-
Yuval Pavel Zholkover authored
Was crashing with GOOS=plan9 unless -s was passed. Add symbols and line numbers to Plan 9 a.out. R=rsc CC=golang-dev https://golang.org/cl/4080050
-
- 29 Jan, 2011 1 commit
-
-
Alex Brainman authored
- fixed length of amd64 .data pe section (don't need to include non-initialised data) - use correct oh/oh64 variable when updating data directory in addexports - simplify and cleanup R=vcc, rsc CC=golang-dev https://golang.org/cl/4106044
-
- 11 Jan, 2011 1 commit
-
-
Ian Lance Taylor authored
* Avoid confusion between imported and exported symbols. * Record number of imported and exported symbols correctly. * Explictly relocate SMACHOSYM section, since it is not in datap. R=rsc CC=golang-dev https://golang.org/cl/3920042
-
- 15 Dec, 2010 2 commits
-
-
Russ Cox authored
R=iant, r CC=dho, golang-dev https://golang.org/cl/3687041
-
Russ Cox authored
The recent linker changes broke NaCl support a month ago, and there are no known users of it. The NaCl code can always be recovered from the repository history. R=adg, r CC=golang-dev https://golang.org/cl/3671042
-
- 08 Dec, 2010 1 commit
-
-
Russ Cox authored
More support for references to dynamic symbols, including full GOT and PLT for ELF objects. For Mach-O everything ends up in the GOT: dealing with the real lazy PLT is too hard for now so we punt. R=iant, iant2 CC=golang-dev https://golang.org/cl/3491042
-
- 19 Oct, 2010 2 commits
-
-
Russ Cox authored
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 #871. R=ken2 CC=golang-dev https://golang.org/cl/2587041
-
Russ Cox authored
Lay out code before data. R=ken2 CC=golang-dev https://golang.org/cl/2490043
-
- 15 Oct, 2010 2 commits
-
-
Russ Cox authored
Also change the span-dependent jump algorithm to use fewer iterations: * resolve forward jumps at their targets (comefrom list) * mark jumps as small or big and only do small->big * record whether a jump failed to be encodable These changes mean that a function with only small jumps can be laid out in a single iteration, and the vast majority of functions take just two iterations. I was seeing a maximum of 5 iterations before; the max now is 3 and there are fewer that get even that far. R=ken2 CC=golang-dev https://golang.org/cl/2537041
-
Russ Cox authored
Using explicit relocations internally, we can represent the data for a particular symbol as an initialized block of memory instead of a linked list of ADATA instructions. The real goal here is to be able to hand off some of the relocations to the dynamic linker when interacting with system libraries, but a pleasant side effect is that the memory image is much more compact than the ADATA list, so the linkers use less memory. R=ken2 CC=golang-dev https://golang.org/cl/2512041
-
- 13 Oct, 2010 1 commit
-
-
Russ Cox authored
* 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 https://golang.org/cl/2335043
-
- 06 Oct, 2010 1 commit
-
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/2373043
-
- 28 Sep, 2010 1 commit
-
-
Russ Cox authored
Silence warnings about not checking return values from read and write system calls. R=r, r2 CC=golang-dev https://golang.org/cl/2258045
-
- 20 Sep, 2010 1 commit
-
-
Russ Cox authored
R=r CC=golang-dev https://golang.org/cl/2221042
-
- 21 Jul, 2010 1 commit
-
-
Russ Cox authored
Fixes #937. Fixes #938. Fixes #939. Fixes #940. R=r CC=golang-dev https://golang.org/cl/1886043
-
- 30 Jun, 2010 1 commit
-
-
Russ Cox authored
R=r CC=golang-dev https://golang.org/cl/1678046
-
- 28 Apr, 2010 1 commit
-
-
Russ Cox authored
5l, 6l, 8l: change ELF header so that strip doesn't destroy binary Fixes #261. R=iant, r CC=golang-dev https://golang.org/cl/994044
-
- 04 Feb, 2010 2 commits
-
-
Andrew Gerrand authored
Allows binary to run on some Linux system. Fix for issue 365. R=rsc CC=golang-dev https://golang.org/cl/199096
-
Russ Cox authored
Fixes #585. R=r CC=golang-dev https://golang.org/cl/195075
-