@@ -1268,6 +1268,12 @@
]
common_include_dirs = ['mercurial']
+common_cflags = []
+
+# MSVC 2008 still needs declarations at the top of the scope.
+if os.name != 'nt':
+ common_cflags = ['-Werror=declaration-after-statement']
+
osutil_cflags = []
osutil_ldflags = []
@@ -1441,18 +1447,21 @@
'mercurial.cext.base85',
['mercurial/cext/base85.c'],
include_dirs=common_include_dirs,
+ extra_compile_args=common_cflags,
depends=common_depends,
),
Extension(
'mercurial.cext.bdiff',
['mercurial/bdiff.c', 'mercurial/cext/bdiff.c'] + xdiff_srcs,
include_dirs=common_include_dirs,
+ extra_compile_args=common_cflags,
depends=common_depends + ['mercurial/bdiff.h'] + xdiff_headers,
),
Extension(
'mercurial.cext.mpatch',
['mercurial/mpatch.c', 'mercurial/cext/mpatch.c'],
include_dirs=common_include_dirs,
+ extra_compile_args=common_cflags,
depends=common_depends,
),
Extension(
@@ -1466,6 +1475,7 @@
'mercurial/cext/revlog.c',
],
include_dirs=common_include_dirs,
+ extra_compile_args=common_cflags,
depends=common_depends
+ ['mercurial/cext/charencode.h', 'mercurial/cext/revlog.h',],
),
@@ -1473,7 +1483,7 @@
'mercurial.cext.osutil',
['mercurial/cext/osutil.c'],
include_dirs=common_include_dirs,
- extra_compile_args=osutil_cflags,
+ extra_compile_args=common_cflags + osutil_cflags,
extra_link_args=osutil_ldflags,
depends=common_depends,
),
@@ -1482,6 +1492,7 @@
[
'mercurial/thirdparty/zope/interface/_zope_interface_coptimizations.c',
],
+ extra_compile_args=common_cflags,
),
Extension(
'mercurial.thirdparty.sha1dc',
@@ -1490,9 +1501,12 @@
'mercurial/thirdparty/sha1dc/lib/sha1.c',
'mercurial/thirdparty/sha1dc/lib/ubc_check.c',
],
+ extra_compile_args=common_cflags,
),
Extension(
- 'hgext.fsmonitor.pywatchman.bser', ['hgext/fsmonitor/pywatchman/bser.c']
+ 'hgext.fsmonitor.pywatchman.bser',
+ ['hgext/fsmonitor/pywatchman/bser.c'],
+ extra_compile_args=common_cflags,
),
RustStandaloneExtension(
'mercurial.rustext', 'hg-cpython', 'librusthg', py3_features='python3'
@@ -1503,11 +1517,11 @@
sys.path.insert(0, 'contrib/python-zstandard')
import setup_zstd
-extmodules.append(
- setup_zstd.get_c_extension(
- name='mercurial.zstd', root=os.path.abspath(os.path.dirname(__file__))
- )
+zstd = setup_zstd.get_c_extension(
+ name='mercurial.zstd', root=os.path.abspath(os.path.dirname(__file__))
)
+zstd.extra_compile_args += common_cflags
+extmodules.append(zstd)
try:
from distutils import cygwinccompiler
@@ -810,9 +810,10 @@
/* Check the memory we can use. Typically, argv[i] and
* argv[i + 1] are continuous. */
for (i = 0; i < argc; ++i) {
+ size_t len;
if (argv[i] > argvend || argv[i] < argvstart)
break; /* not continuous */
- size_t len = strlen(argv[i]);
+ len = strlen(argv[i]);
argvend = argv[i] + len + 1 /* '\0' */;
}
if (argvend > argvstart) /* sanity check */
@@ -1170,9 +1171,9 @@
{
int sig = 0;
int r;
+ sigset_t set;
if (!PyArg_ParseTuple(args, "i", &sig))
return NULL;
- sigset_t set;
r = sigemptyset(&set);
if (r != 0)
return PyErr_SetFromErrno(PyExc_OSError);