Assembly compiler flags
Keith Snively <[email protected]> Tue, 10 Oct 2023 10:49:15 -0400
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <CABeHivmFNbc0vd77vpC3JrwJo5NKetjdn-XZnvUwsHFoR9+kiw@mail.gmail.com> |
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
_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users