When I use RosBE 2.1.4 for Windows to build my patched version of ReactOS r73829, the "ninja bootcd" command appears to attempt to build the rostests module. Unfortunately one or more of the files in the rostests module fails to build properly. Ninja emits error messages then stops. Here is ninja's output when it starts building rostests files:
Code: Select all
[67/6227] Building C object modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlpEnsureBufferSize.c.obj
[68/6227] Building C object modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlNtPathNameToDosPathName.c.obj
[69/6227] Building C object modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlReAllocateHeap.c.obj
FAILED: C:\RosBE\i386\bin\gcc.exe -DDBG=1 -DKDBG=1 -DUSE_COMPILER_EXCEPTIONS -DWINVER=0x502 -D_DLL -D_M_IX86 -D_SEH_ENABLE_TRACE -D_SETUPAPI_VER=0x502 -D_USE_32BIT_TIME_T -D_USE_PSEH3=1 -D_WIN32_IE=0x600 -D_WIN32_WINDOWS=0x502 -D_WIN32_WINNT=0x502 -D_X86_ -D__REACTOS__ -D__USE_CRTIMP -D__i386__ -D_inline=__inline -Di386 -Wa,--compress-debug-sections -pipe -fms-extensions -fno-strict-aliasing -nostdinc -mstackrealign -Wold-style-declaration -Wdeclaration-after-statement -fdebug-prefix-map="K:\BUILD\reactos"=ReactOS -gdwarf-2 -gstrict-dwarf -femit-struct-debug-detailed=none -feliminate-unused-debug-symbols -march=pentium -mtune=i686 -Werror -Wall -Wpointer-arith -Wno-char-subscripts -Wno-multichar -Wno-unused-value -Wno-maybe-uninitialized -O1 -fno-optimize-sibling-calls -fno-omit-frame-pointer -mpreferred-stack-boundary=3 -fno-set-stack-executable -Winvalid-pch -Werror=invalid-pch -Imodules/rostests/apitests/ntdll -IK:/BUILD/reactos/modules/rostests/apitests/ntdll -IK:/BUILD/reactos/sdk/include -IK:/BUILD/reactos/sdk/include/psdk -IK:/BUILD/reactos/sdk/include/dxsdk -Isdk/include -Isdk/include/psdk -Isdk/include/dxsdk -Isdk/include/ddk -Isdk/include/reactos -Isdk/include/reactos/mc -IK:/BUILD/reactos/sdk/include/crt -IK:/BUILD/reactos/sdk/include/ddk -IK:/BUILD/reactos/sdk/include/ndk -IK:/BUILD/reactos/sdk/include/reactos -IK:/BUILD/reactos/sdk/include/reactos/libs -IK:/BUILD/reactos/modules/rostests/apitests/include -MMD -MT modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlNtPathNameToDosPathName.c.obj -MF modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlNtPathNameToDosPathName.c.obj.d -o modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlNtPathNameToDosPathName.c.obj -c K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c
K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:49:65: error: 'RTL_UNCHANGED_UNK_PATH' undeclared here (not in a function) K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:58:65: error: 'RTL_UNCHANGED_DOS_PATH' undeclared here (not in a function) K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:70:65: error: 'RTL_CONVERTED_NT_PATH' undeclared here (not in a function) K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:134:65: error: 'RTL_CONVERTED_UNC_PATH' undeclared here (not in a function) K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c: In function 'test_specialhandling': K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:247:5: error: implicit declaration of function 'RtlInitBuffer' [-Werror=implicit-function-declaration] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:252:5: error: comparison between pointer and integer [-Werror] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:258:5: error: implicit declaration of function 'RtlFreeBuffer' [-Werror=implicit-function-declaration] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:269:5: error: comparison between pointer and integer [-Werror] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:287:5: error: comparison between pointer and integer [-Werror] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:306:5: error: comparison between pointer and integer [-Werror] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c: In function 'test_table': K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:372:5: error: implicit declaration of function 'RtlEnsureBufferSize' [-Werror=implicit-function-declaration] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:372:25: error: 'RTL_SKIP_BUFFER_COPY' undeclared (first use in this function) K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:372:25: note: each undeclared identifier is reported only once for each function it appears in K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c: In function 'func_RtlNtPathNameToDosPathName': K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c:430:5: error: comparison between pointer and integer [-Werror] cc1.exe: all warnings being treated as errors FAILED: C:\RosBE\i386\bin\gcc.exe -DDBG=1 -DKDBG=1 -DUSE_COMPILER_EXCEPTIONS -DWINVER=0x502 -D_DLL -D_M_IX86 -D_SEH_ENABLE_TRACE -D_SETUPAPI_VER=0x502 -D_USE_32BIT_TIME_T -D_USE_PSEH3=1 -D_WIN32_IE=0x600 -D_WIN32_WINDOWS=0x502 -D_WIN32_WINNT=0x502 -D_X86_ -D__REACTOS__ -D__USE_CRTIMP -D__i386__ -D_inline=__inline -Di386 -Wa,--compress-debug-sections -pipe -fms-extensions -fno-strict-aliasing -nostdinc -mstackrealign -Wold-style-declaration -Wdeclaration-after-statement -fdebug-prefix-map="K:\BUILD\reactos"=ReactOS -gdwarf-2 -gstrict-dwarf -femit-struct-debug-detailed=none -feliminate-unused-debug-symbols -march=pentium -mtune=i686 -Werror -Wall -Wpointer-arith -Wno-char-subscripts -Wno-multichar -Wno-unused-value -Wno-maybe-uninitialized -O1 -fno-optimize-sibling-calls -fno-omit-frame-pointer -mpreferred-stack-boundary=3 -fno-set-stack-executable -Winvalid-pch -Werror=invalid-pch -Imodules/rostests/apitests/ntdll -IK:/BUILD/reactos/modules/rostests/apitests/ntdll -IK:/BUILD/reactos/sdk/include -IK:/BUILD/reactos/sdk/include/psdk -IK:/BUILD/reactos/sdk/include/dxsdk -Isdk/include -Isdk/include/psdk -Isdk/include/dxsdk -Isdk/include/ddk -Isdk/include/reactos -Isdk/include/reactos/mc -IK:/BUILD/reactos/sdk/include/crt -IK:/BUILD/reactos/sdk/include/ddk -IK:/BUILD/reactos/sdk/include/ndk -IK:/BUILD/reactos/sdk/include/reactos -IK:/BUILD/reactos/sdk/include/reactos/libs -IK:/BUILD/reactos/modules/rostests/apitests/include -MMD -MT modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlpEnsureBufferSize.c.obj -MF modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlpEnsureBufferSize.c.obj.d -o modules/rostests/apitests/ntdll/CMakeFiles/ntdll_apitest.dir/RtlpEnsureBufferSize.c.obj -c K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlpEnsureBufferSize.c
K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlpEnsureBufferSize.c: In function 'func_RtlpEnsureBufferSize': K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlpEnsureBufferSize.c:85:5: error: implicit declaration of function 'RtlInitBuffer' [-Werror=implicit-function-declaration] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlpEnsureBufferSize.c:98:9: error: implicit declaration of function 'RtlFreeBuffer' [-Werror=implicit-function-declaration] K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlpEnsureBufferSize.c:155:5: error: 'RTL_SKIP_BUFFER_COPY' undeclared (first use in this function) K:/BUILD/reactos/modules/rostests/apitests/ntdll/RtlpEnsureBufferSize.c:155:5: note: each undeclared identifier is reported only once for each function it appears in cc1.exe: all warnings being treated as errors ninja: build stopped: subcommand failed.
I use reactosfanboy's workaround of putting the ninja.exe from RosBE 2.1.3 into my RosBE 2.1.4. I use this workaround for all my builds with RosBE 2.1.4.
I studied the Building Modules page in the ReactOS Wiki. Those instructions confuse me. I cannot figure out if there is a way to select specific modules for building or to avoid building certain modules. I expect "ninja all" to build all the modules I have in my local copy of the Subversion (SVN) repository (repo) and "ninja bootcd" to build only the files necessary for building a ReactOS .iso. I did not expect "ninja bootcd" to cause any rostests or rapps files to be built.
When I used RosBE 2.1.3, the "ninja all" and "ninja bootcd" commands would not build any rostests or rapps files even though I had them in my copy of the SVN repo--even when I wanted them to.
I suspect that a change to RosBE's behavior was made in RosBE 2.1.4. Or, I have unknowingly changed something that changed RosBE's (ninja's?) behavior during a build.
Can anyone help me build a ReactOS installation .iso without ninja trying to build anything in the rostests module?