How do I avoid building modules?

All development related issues welcome

Moderator: Moderator Team

Post Reply
middings
Posts: 1073
Joined: Tue May 07, 2013 9:18 pm
Location: California, USA

How do I avoid building modules?

Post by middings »

Can anyone help me build a ReactOS installation .iso without ninja trying to build anything in the rostests module?

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.
The "ninja all" command builds an unpatched r74555 successfully (including building the rostests and rapps files). After running that ninja command, the "ninja bootcd" command successfully built a ReactOS installation .iso for r74555.

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?
ThFabba
Developer
Posts: 293
Joined: Sun Jul 11, 2010 11:39 am

Re: How do I avoid building modules?

Post by ThFabba »

First of all, you can assume rostests should normally build fine. If https://build.reactos.org/builders/Build%20GCCLin_x86 shows green, there's a good chance it's something about your environment that's causing the failure. In this case the first thing I would look for (assuming you have no local changes, either in reactos or in rostests) is a difference in revision between reactos and rostests. Running the 'svn info' command in both reactos/ and reactos/modules/rostests/ will tell you whether they're in sync (the build expects them to be).

Secondly, rostests (and other modules) are included in the bootcd if they are present, and not included if they are not. This is determined when CMake is (re-)run. So to disable the tests you can either edit modules/CMakeLists.txt and comment out the add_subdirectory line for rostests, or simply rename the rostests folder to something else. If you get a message such as "nothing to do" from ninja, "ninja rebuild_cache" will force CMake to rerun and thus update the state of the module.
User avatar
EmuandCo
Developer
Posts: 4723
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: How do I avoid building modules?

Post by EmuandCo »

"reactosfanboy's workaround" ... for what?! Used on WHAT Windows host on WHICH machine? ^^ You should know better, middings, you are here a while now :P
https://jira.reactos.org/browse/CORE-4937 here is your newer ninja btw...
And due to the fact that you used the older ninja from 2.1.3 theres NOTHING which could cause any more new problems. Check the changelog from RosBE and you will see ALL changes and none causes your problems. Sooo.... I am out ^^
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
middings
Posts: 1073
Joined: Tue May 07, 2013 9:18 pm
Location: California, USA

Re: How do I avoid building modules?

Post by middings »

EmuandCo wrote:"reactosfanboy's workaround" ... for what?! Used on WHAT Windows host on WHICH machine? ^^ You should know better, middings, you are here a while now :P
You are correct. I denounce myself.

Sometimes I'm too Windows-centric and forget that there is a RosBE for Unix-compatible systems too. I recalled that workaround of putting the ninja.exe from RosBE 2.1.3 into a RosBE 2.1.4 setup was a suggestion of reactosfanboy. After a search, I found the suggestion in ROSBE-112, a bug reactosfanboy reported. Just for the record my Windows host is Microsoft Windows XP Home Edition SP3 (32-bit, of course). My build machine is an HP a350n desktop PC with a 2.8 GHz Pentium 4 HT (Northwood) and 3.0 GB of RAM.
ThFabba wrote:...the first thing I would look for (assuming you have no local changes, either in reactos or in rostests) is a difference in revision between reactos and rostests. Running the 'svn info' command in both reactos/ and reactos/modules/rostests/ will tell you whether they're in sync (the build expects them to be).
Thank you for this advice. To my surprise, there was a difference in revision levels between reactos and rostests. I had assumed that they were at the same revision level because they update together with the ssvn update command. In RosBE, I moved to the rostests directory then ran ssvn update there. This brought rostests to the same revision level as reactos. After that, I started a build and it compiled and completed successfully. Thank you very much for your advice, ThFabba.
ThFabba wrote:Secondly, rostests (and other modules) are included in the bootcd if they are present, and not included if they are not. This is determined when CMake is (re-)run. So to disable the tests you can either edit modules/CMakeLists.txt and comment out the add_subdirectory line for rostests, or simply rename the rostests folder to something else. If you get a message such as "nothing to do" from ninja, "ninja rebuild_cache" will force CMake to rerun and thus update the state of the module.
Thank you for this tip also. Disabling rostests will speed compilation of ReactOS on my Pentium 4 based PC.
Post Reply

Who is online

Users browsing this forum: No registered users and 11 guests