[pypy-commit] pypy default: Fix: there are roughly 80'000 symbols '__gcmap_*' in an asmgcc pypy, and

arigo noreply at buildbot.pypy.org
Sat Apr 11 11:49:42 CEST 2015


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r76772:2769d419e952
Date: 2015-04-11 10:39 +0200
http://bitbucket.org/pypy/pypy/changeset/2769d419e952/

Log:	Fix: there are roughly 80'000 symbols '__gcmap_*' in an asmgcc pypy,
	and they were not declared '.hidden', which means that they were
	left in the binary. Moreover, they were relocated at start-up,
	which took an appreciable fraction of second.

diff --git a/rpython/translator/c/gcc/trackgcroot.py b/rpython/translator/c/gcc/trackgcroot.py
--- a/rpython/translator/c/gcc/trackgcroot.py
+++ b/rpython/translator/c/gcc/trackgcroot.py
@@ -423,6 +423,7 @@
                 # the original value for gcmaptable.s.  That's a hack.
                 self.lines.insert(call.lineno+1, '%s=.+%d\n' % (label,
                                                                 self.OFFSET_LABELS))
+                self.lines.insert(call.lineno+1, '\t.hidden\t%s\n' % (label,))
                 self.lines.insert(call.lineno+1, '\t.globl\t%s\n' % (label,))
         call.global_label = label
 


More information about the pypy-commit mailing list