mirror of
https://github.com/Nuitka/Nuitka.git
synced 2025-12-14 20:35:49 +01:00
Merge tag '2.8.9' into develop
This commit is contained in:
6
debian/changelog
vendored
6
debian/changelog
vendored
@@ -4,6 +4,12 @@ nuitka (4.0~rc2+ds-1) unstable; urgency=medium
|
||||
|
||||
-- Kay Hayen <kay.hayen@gmail.com> Wed, 26 Nov 2025 11:21:52 +0000
|
||||
|
||||
nuitka (2.8.9+ds-1) unstable; urgency=medium
|
||||
|
||||
* New upstream hotfix release.
|
||||
|
||||
-- Kay Hayen <kay.hayen@gmail.com> Fri, 28 Nov 2025 13:58:44 +0000
|
||||
|
||||
nuitka (2.8.8+ds-1) unstable; urgency=medium
|
||||
|
||||
* New upstream hotfix release.
|
||||
|
||||
@@ -354,7 +354,7 @@ NUITKA_MAY_BE_UNUSED static bool UNPACK_ITERATOR_CHECK(PyThreadState *tstate,
|
||||
SET_EXCEPTION_PRESERVATION_STATE_FROM_TYPE0_FORMAT1(tstate, exception_state, PyExc_ValueError,
|
||||
"too many values to unpack (expected %d)", expected);
|
||||
#else
|
||||
int gotten = -1;
|
||||
Py_ssize_t gotten = -1;
|
||||
|
||||
if (Py_TYPE(iterator) == &PyTupleIter_Type) {
|
||||
gotten = PyTuple_GET_SIZE(((_PyTupleIterObject *)iterator)->it_seq);
|
||||
|
||||
@@ -132,10 +132,12 @@ def _call_env_subst(env, string, *args, **kw):
|
||||
|
||||
def smart_link(source, target, env, for_signature):
|
||||
import SCons.Tool.cxx
|
||||
import SCons.Tool.FortranCommon
|
||||
# Nuitka: Avoid unused tools
|
||||
# import SCons.Tool.FortranCommon
|
||||
|
||||
has_cplusplus = SCons.Tool.cxx.iscplusplus(source)
|
||||
has_fortran = SCons.Tool.FortranCommon.isfortran(env, source)
|
||||
# Nuitka: Avoid unused tools
|
||||
has_fortran = False
|
||||
has_d = isD(env, source)
|
||||
if has_cplusplus and has_fortran and not has_d:
|
||||
global issued_mixed_link_warning
|
||||
|
||||
@@ -41,23 +41,10 @@ import SCons.Defaults
|
||||
import SCons.Tool
|
||||
import SCons.Util
|
||||
|
||||
# TODO: should this be synced with SCons/Platform/mingw.py:MINGW_DEFAULTPATHS
|
||||
# i.e. either keep the same, or make sure there's only one?
|
||||
mingw_base_paths = [
|
||||
r'c:\MinGW\bin',
|
||||
r'C:\cygwin64\bin',
|
||||
r'C:\msys64',
|
||||
r'C:\msys64\mingw64\bin',
|
||||
r'C:\cygwin\bin',
|
||||
r'C:\msys',
|
||||
# Chocolatey mingw (pkg name for MinGW-w64) does not use ChocolateyToolsLocation
|
||||
r'C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin',
|
||||
]
|
||||
# Chocolatey msys2 uses envvar ChocolateyToolsLocation to base the install
|
||||
# location (unless the user supplied additional params). Try to reproduce:
|
||||
choco = os.environ.get('ChocolateyToolsLocation')
|
||||
if choco:
|
||||
mingw_base_paths.append(choco + r'\msys64\bin')
|
||||
# Nuitka: Only use version specific paths if possible.
|
||||
# Cygwin and msys2 should be avoided.
|
||||
mingw_base_paths = []
|
||||
mingw_paths = []
|
||||
|
||||
|
||||
def shlib_generator(target, source, env, for_signature):
|
||||
@@ -66,10 +53,15 @@ def shlib_generator(target, source, env, for_signature):
|
||||
dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
|
||||
if dll: cmd.extend(['-o', dll])
|
||||
|
||||
cmd.extend(['$SOURCES', '$_LIBDIRFLAGS', '$_LIBFLAGS'])
|
||||
# Nuitka: Use linker file
|
||||
tmp_linker_filename = "@%s" % (
|
||||
os.path.join(env.source_dir, "@link_input.txt").replace(os.path.sep, "/"),
|
||||
)
|
||||
cmd.extend([tmp_linker_filename, '$_LIBDIRFLAGS', '$_LIBFLAGS'])
|
||||
|
||||
implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
|
||||
if implib: cmd.append('-Wl,--out-implib,' + implib.get_string(for_signature))
|
||||
# Nuitka: Disable implib here, we do it manually.
|
||||
# implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
|
||||
# if implib: cmd.append('-Wl,--out-implib,' + implib.get_string(for_signature))
|
||||
|
||||
def_target = env.FindIxes(target, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
|
||||
insert_def = env.subst("$WINDOWS_INSERT_DEF")
|
||||
@@ -130,19 +122,13 @@ SCons.Tool.SourceFileScanner.add_scanner('.rc', SCons.Defaults.CScan)
|
||||
key_program = 'mingw32-make'
|
||||
|
||||
|
||||
def find_version_specific_mingw_paths():
|
||||
r"""
|
||||
One example of default mingw install paths is:
|
||||
C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev2\mingw64\bin
|
||||
|
||||
Use glob'ing to find such and add to mingw_base_paths
|
||||
"""
|
||||
new_paths = glob.glob(r"C:\mingw-w64\*\mingw64\bin")
|
||||
|
||||
return new_paths
|
||||
# Nuitka: We try to find matching ones only.
|
||||
def find_version_specific_mingw_paths(env):
|
||||
return []
|
||||
|
||||
|
||||
_mingw_all_paths = None
|
||||
|
||||
_mingw_all_paths = []
|
||||
|
||||
def get_mingw_paths():
|
||||
global _mingw_all_paths
|
||||
@@ -151,8 +137,10 @@ def get_mingw_paths():
|
||||
return _mingw_all_paths
|
||||
|
||||
def generate(env):
|
||||
global mingw_paths
|
||||
# Check for reasoanble mingw default paths
|
||||
mingw_paths = get_mingw_paths()
|
||||
# Nuitks: Do not do that anymore.
|
||||
# mingw_paths += find_version_specific_mingw_paths(env)
|
||||
|
||||
mingw = SCons.Tool.find_program_path(env, key_program, default_paths=mingw_paths)
|
||||
if mingw:
|
||||
|
||||
@@ -73,7 +73,7 @@ static void _createGlobalConstants(PyThreadState *tstate) {
|
||||
// The empty name means global.
|
||||
loadConstantsBlob(tstate, &global_constants[0], "");
|
||||
|
||||
#if _NUITKA_EXE_MODE
|
||||
#if _NUITKA_EXE_MODE || _NUITKA_DLL_MODE
|
||||
/* Set the "sys.executable" path to the original CPython executable or point to inside the
|
||||
distribution for standalone. */
|
||||
Nuitka_SysSetObject(
|
||||
|
||||
@@ -9,6 +9,11 @@
|
||||
- depends:
|
||||
- 'asyncio'
|
||||
|
||||
- module-name: '_ctypes' # checksum: b31a8f6b
|
||||
implicit-imports:
|
||||
- depends:
|
||||
- 'ctypes._layout'
|
||||
|
||||
- module-name: '_curses_panel' # checksum: c9b072ec
|
||||
implicit-imports:
|
||||
- depends:
|
||||
|
||||
Reference in New Issue
Block a user