From: Shenghou Ma Date: Tue, 11 Jun 2013 22:56:50 +0000 (+0800) Subject: cmd/ld: supply -s to gcc if -s is passed. X-Git-Tag: go1.2rc2~1272 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e50e4f7ec1c25017dc8e906c752375e43a8a38a3;p=gostls13.git cmd/ld: supply -s to gcc if -s is passed. Fixes #5463. R=golang-dev, iant CC=golang-dev https://golang.org/cl/9239045 --- diff --git a/src/cmd/ld/elf.c b/src/cmd/ld/elf.c index 46d7056665..e0a522ad7f 100644 --- a/src/cmd/ld/elf.c +++ b/src/cmd/ld/elf.c @@ -909,6 +909,7 @@ doelf(void) addstring(shstrtab, ".gopclntab"); if(linkmode == LinkExternal) { + debug_s = debug['s']; debug['s'] = 0; debug['d'] = 1; diff --git a/src/cmd/ld/lib.c b/src/cmd/ld/lib.c index 7084debcc0..87af5a28ea 100644 --- a/src/cmd/ld/lib.c +++ b/src/cmd/ld/lib.c @@ -666,8 +666,11 @@ hostlink(void) argv[argc++] = "-m64"; break; } - if(!debug['s']) + if(!debug['s'] && !debug_s) { argv[argc++] = "-gdwarf-2"; + } else { + argv[argc++] = "-s"; + } if(HEADTYPE == Hdarwin) argv[argc++] = "-Wl,-no_pie,-pagezero_size,4000000"; argv[argc++] = "-o"; diff --git a/src/cmd/ld/lib.h b/src/cmd/ld/lib.h index e552deb02f..63775b5ff5 100644 --- a/src/cmd/ld/lib.h +++ b/src/cmd/ld/lib.h @@ -159,6 +159,7 @@ EXTERN char* interpreter; EXTERN char* tmpdir; EXTERN char* extld; EXTERN char* extldflags; +EXTERN int debug_s; // backup old value of debug['s'] enum {