[pypy-commit] pypy default: Remove an old workaround for gcc on OS/X.
amauryfa
noreply at buildbot.pypy.org
Wed Nov 5 18:38:30 CET 2014
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch:
Changeset: r74344:107f2d89cecc
Date: 2014-11-05 18:37 +0100
http://bitbucket.org/pypy/pypy/changeset/107f2d89cecc/
Log: Remove an old workaround for gcc on OS/X. It was already disabled
anyway.
diff --git a/rpython/rtyper/module/ll_os.py b/rpython/rtyper/module/ll_os.py
--- a/rpython/rtyper/module/ll_os.py
+++ b/rpython/rtyper/module/ll_os.py
@@ -249,12 +249,9 @@
@registering_if(os, 'execv')
def register_os_execv(self):
- eci = self.gcc_profiling_bug_workaround(
- 'RPY_EXPORTED_FOR_TESTS int _noprof_execv(char *path, char *argv[])',
- 'return execv(path, argv);')
- os_execv = self.llexternal('_noprof_execv',
- [rffi.CCHARP, rffi.CCHARPP],
- rffi.INT, compilation_info = eci)
+ os_execv = self.llexternal(
+ 'execv',
+ [rffi.CCHARP, rffi.CCHARPP], rffi.INT)
def execv_llimpl(path, args):
l_args = rffi.ll_liststr2charpp(args)
@@ -268,12 +265,9 @@
@registering_if(os, 'execve')
def register_os_execve(self):
- eci = self.gcc_profiling_bug_workaround(
- 'RPY_EXPORTED_FOR_TESTS int _noprof_execve(char *filename, char *argv[], char *envp[])',
- 'return execve(filename, argv, envp);')
os_execve = self.llexternal(
- '_noprof_execve', [rffi.CCHARP, rffi.CCHARPP, rffi.CCHARPP],
- rffi.INT, compilation_info = eci)
+ 'execve',
+ [rffi.CCHARP, rffi.CCHARPP, rffi.CCHARPP], rffi.INT)
def execve_llimpl(path, args, env):
# XXX Check path, args, env for \0 and raise TypeErrors as
@@ -1723,10 +1717,7 @@
@registering_if(os, 'fork')
def register_os_fork(self):
from rpython.rlib import debug, rthread
- eci = self.gcc_profiling_bug_workaround('RPY_EXPORTED_FOR_TESTS pid_t _noprof_fork(void)',
- 'return fork();')
- os_fork = self.llexternal('_noprof_fork', [], rffi.PID_T,
- compilation_info = eci,
+ os_fork = self.llexternal('fork', [], rffi.PID_T,
_nowrapper = True)
def fork_llimpl():
@@ -1927,21 +1918,6 @@
return extdef([int], str, "ll_os.ttyname",
llimpl=ttyname_llimpl)
- # ____________________________________________________________
- # XXX horrible workaround for a bug of profiling in gcc on
- # OS X with functions containing a direct call to some system calls
- # like fork(), execv(), execve()
- def gcc_profiling_bug_workaround(self, decl, body):
- body = ('/*--no-profiling-for-this-file!--*/\n'
- '#include "src/precommondefs.h"\n'
- '%s {\n'
- '\t%s\n'
- '}\n' % (decl, body,))
- return ExternalCompilationInfo(
- include_dirs=[cdir],
- post_include_bits = [decl + ';'],
- separate_module_sources = [body])
-
# ____________________________________________________________
# Support for os.environ
diff --git a/rpython/translator/c/genc.py b/rpython/translator/c/genc.py
--- a/rpython/translator/c/genc.py
+++ b/rpython/translator/c/genc.py
@@ -42,26 +42,7 @@
self.compiler = compiler
def first(self):
- platform = self.compiler.platform
- if platform.name.startswith('darwin'):
- # XXX incredible hack for darwin
- STR = '/*--no-profiling-for-this-file!--*/'
- no_prof = []
- prof = []
- for cfile in self.compiler.cfiles:
- if STR in cfile.read():
- no_prof.append(cfile)
- else:
- prof.append(cfile)
- p_eci = self.compiler.eci.merge(
- ExternalCompilationInfo(compile_extra=['-fprofile-generate'],
- link_extra=['-fprofile-generate']))
- ofiles = platform._compile_o_files(prof, p_eci)
- _, eci = self.compiler.eci.get_module_files()
- ofiles += platform._compile_o_files(no_prof, eci)
- return platform._finish_linking(ofiles, p_eci, None, True)
- else:
- return self.build('-fprofile-generate')
+ return self.build('-fprofile-generate')
def probe(self, exe, args):
# 'args' is a single string typically containing spaces
diff --git a/rpython/translator/platform/distutils_platform.py b/rpython/translator/platform/distutils_platform.py
--- a/rpython/translator/platform/distutils_platform.py
+++ b/rpython/translator/platform/distutils_platform.py
@@ -127,14 +127,6 @@
for cfile in self.cfilenames:
cfile = py.path.local(cfile)
compile_extra = self.compile_extra[:]
- # -frandom-seed is only to try to be as reproducable as possible
- if 0 and self.fix_gcc_random_seed:
- compile_extra.append('-frandom-seed=%s' % (cfile.basename,))
- # XXX horrible workaround for a bug of profiling in gcc on
- # OS X with functions containing a direct call to fork()
- if '/*--no-profiling-for-this-file!--*/' in cfile.read():
- compile_extra = [arg for arg in compile_extra
- if not arg.startswith('-fprofile-')]
old = cfile.dirpath().chdir()
try:
More information about the pypy-commit
mailing list