summaryrefslogtreecommitdiff
path: root/src/cmd/ld/pe.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2010-10-19 18:07:19 -0400
committerRuss Cox <rsc@golang.org>2010-10-19 18:07:19 -0400
commit32eae0c76b48d7e36f9048823284489e5c6e20a1 (patch)
tree46fd44e037a15593ad211837fb5fce5be0a2027b /src/cmd/ld/pe.c
parentd12fae902fe0b5d53774f769adaa8ffc64273d54 (diff)
downloadgo-32eae0c76b48d7e36f9048823284489e5c6e20a1.tar.gz
5l, 6l, 8l: link pclntab and symtab as ordinary rodata symbols
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
Diffstat (limited to 'src/cmd/ld/pe.c')
-rw-r--r--src/cmd/ld/pe.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/src/cmd/ld/pe.c b/src/cmd/ld/pe.c
index ea978a356..da7bb7292 100644
--- a/src/cmd/ld/pe.c
+++ b/src/cmd/ld/pe.c
@@ -205,13 +205,6 @@ asmbpe(void)
break;
}
- if(!debug['s']) {
- IMAGE_SECTION_HEADER *symsect;
- symsect = new_section(".symdat", 8+symsize+lcsize, 0);
- symsect->Characteristics = IMAGE_SCN_MEM_READ|
- IMAGE_SCN_CNT_INITIALIZED_DATA;
- }
-
add_import_table();
fh.NumberOfSections = nsect;