[Scons-users] Assembly compiler flags

Keith Snively keith.d.snively at gmail.com
Tue Oct 10 10:49:15 EDT 2023


I have a project that invokes an assembler as part of the compilation
process. Starting with version 4.5.0, there appears to be an issue with the
flags that are supplied to the compiler though.  Basically, it is taking
the flags supplied to CPPDEFINES and truncating them to the first letter
only.

In this case, I am compiling boost.  Here is a SConstruct excerpt that sets
the CPPDEFINES:

local_env = env.Clone()

local_env.AppendUnique(CPPDEFINES = ['BOOST_ALL_NO_LIB=1',
'BOOST_CHRONO_DYN_LINK=1', 'BOOST_CONTEXT_DYN_LINK=1',
                                     'BOOST_CONTEXT_SOURCE',
'BOOST_DISABLE_ASSERTS', 'BOOST_THREAD_BUILD_DLL=1',
                                     'BOOST_THREAD_USE_DLL=1', 'NDEBUG'])

...
library_build = local_env.SharedLibrary(target=path.join(env['MY_LIBS'],
lib_target), source=sources)

The expected compile output (On Windows using VS 2019) is:

ml64 /nologo /DUSE_CPP /DGL_GAME_WIDGETS /DNO_DEVUTIL_STRACE
/DBOOST_ALL_NO_LIB=1 /DBOOST_CHRONO_DYN_LINK=1 /DBOOST_CONTEXT_DYN_LINK=1
/DBOOST_CONTEXT_SOURCE /DBOOST_DISABLE_ASSERTS /DBOOST_THREAD_BUILD_DLL=1
/DBOOST_THREAD_USE_DLL=1 /DNDEBUG /DBOOST_CONTEXT_EXPORT=EXPORT
/DBOOST_THREAD_WIN32 /D__STDC_LIMIT_MACROS /c
/Foasm\jump_x86_64_ms_pe_masm.obj asm\jump_x86_64_ms_pe_masm.asm

Starting with version 4.5.0, the compile output is:

ml64 /nologo /DU /DG /DN /DB /D_ /c /Foasm\jump_x86_64_ms_pe_masm.obj
asm\jump_x86_64_ms_pe_masm.asm

It looks like it only keeps the first letter of the defines and then
removes duplicates (e.g. the /DB ).

Seems like this may be a bug in scons.  Any help is appreciated.

Thanks,
Keith
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20231010/9b8ce00a/attachment.htm>


More information about the Scons-users mailing list