X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=scons%2Fcrossmingw.py;h=b2efccea7e81e8a28722eea94c4e76844c406aa2;hb=90cf741d316d231bdc8a67dce8ef1c84a80eeec8;hp=4a695a440d65c5788b1308fe0e345af7d2e7891c;hpb=f8e6d19f3f40931be741b44d3edf210c38e13f0f;p=mesa.git diff --git a/scons/crossmingw.py b/scons/crossmingw.py index 4a695a440d6..b2efccea7e8 100644 --- a/scons/crossmingw.py +++ b/scons/crossmingw.py @@ -41,25 +41,12 @@ import SCons.Builder import SCons.Tool import SCons.Util -# This is what we search for to find mingw: +# These are the mingw toolchain prefixes we search for: +# (We only search for the mingw-w64 toolchain, and not the mingw.org one.) prefixes32 = SCons.Util.Split(""" - mingw32- - mingw32msvc- - i386-mingw32- - i486-mingw32- - i586-mingw32- - i686-mingw32- - i386-mingw32msvc- - i486-mingw32msvc- - i586-mingw32msvc- - i686-mingw32msvc- - i686-pc-mingw32- i686-w64-mingw32- """) prefixes64 = SCons.Util.Split(""" - amd64-mingw32- - amd64-mingw32msvc- - amd64-pc-mingw32- x86_64-w64-mingw32- """) @@ -96,7 +83,7 @@ def shlib_emitter(target, source, env): no_import_lib = env.get('no_import_lib', 0) if not dll: - raise SCons.Errors.UserError, "A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX") + raise SCons.Errors.UserError("A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX")) if not no_import_lib and \ not env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX'): @@ -130,40 +117,6 @@ SCons.Tool.SourceFileScanner.add_scanner('.rc', SCons.Defaults.CScan) -def compile_without_gstabs(env, sources, c_file): - '''This is a hack used to compile some source files without the - -gstabs option. - - It seems that some versions of mingw32's gcc (4.4.2 at least) die - when compiling large files with the -gstabs option. -gstabs is - related to debug symbols and can be omitted from the effected - files. - - This function compiles the given c_file without -gstabs, removes - the c_file from the sources list, then appends the new .o file to - sources. Then return the new sources list. - ''' - - # Modify CCFLAGS to not have -gstabs option: - env2 = env.Clone() - flags = str(env2['CCFLAGS']) - flags = flags.replace("-gstabs", "") - env2['CCFLAGS'] = SCons.Util.CLVar(flags) - - # Build the special-case files: - obj_file = env2.SharedObject(c_file) - - # Replace ".cpp" or ".c" with ".o" - o_file = c_file.replace(".cpp", ".o") - o_file = o_file.replace(".c", ".o") - - # Replace the .c files with the specially-compiled .o file - sources.remove(c_file) - sources.append(o_file) - - return sources - - def generate(env): mingw_prefix = find(env) @@ -175,9 +128,9 @@ def generate(env): if not path: path = [] if SCons.Util.is_String(path): - path = string.split(path, os.pathsep) + path = str.split(path, os.pathsep) - env['ENV']['PATH'] = string.join([dir] + path, os.pathsep) + env['ENV']['PATH'] = str.join(os.pathsep, [dir] + path) # Most of mingw is the same as gcc and friends... gnu_tools = ['gcc', 'g++', 'gnulink', 'ar', 'gas'] @@ -221,19 +174,5 @@ def generate(env): env['LIBPREFIXES'] = [ 'lib', '' ] env['LIBSUFFIXES'] = [ '.a', '.lib' ] - # MinGW port of gdb does not handle well dwarf debug info which is the - # default in recent gcc versions - env.AppendUnique(CCFLAGS = ['-gstabs']) - - env.AppendUnique(CPPDEFINES = [('__MSVCRT_VERSION__', '0x0700')]) - #env.AppendUnique(LIBS = ['iberty']) - env.AppendUnique(SHLINKFLAGS = ['-Wl,--enable-stdcall-fixup']) - #env.AppendUnique(SHLINKFLAGS = ['-Wl,--kill-at']) - - # Avoid depending on gcc runtime DLLs - env.AppendUnique(LINKFLAGS = ['-static-libgcc']) - - env.AddMethod(compile_without_gstabs, 'compile_without_gstabs') - def exists(env): return find(env)