Gary,I haven't had issues with "nmake clean" not working. I have had issues in the past with the build environment not being set correctly.
Are you calling the appropriate vcvars64.bat or vcvars32.bat (see README.txt for full paths if necessary) when you switch between 32-bit and 64-bit? The error messages look like you have a mix of 32-bit and 64-bit configuration.
For release builds where I am especailly paranoid, I use spearate command prompts for 32-bit and 64-bit builds to make sure the environments are set correctly.
Mark On 08/01/2025 19:15, Gary D. Gregory wrote:
Hi Mark, I think some of the problems I am running into are due to building over and over and "nmake clean" not working properly, I'm not sure, see below. Maybe you can clarify what I could be missing. I am on Windows 10 (ver = Microsoft Windows [Version 10.0.19045.5247]) For prunmgr, I can build X86, X64, with and without Hybrid, EXCEPT: nmake clean nmake CPU=X86 STATIC_CRT=Hybrid Microsoft (R) Program Maintenance Utility Version 14.41.34120.0 Copyright (C) Microsoft Corporation. All rights reserved. link.exe /NOLOGO /SUBSYSTEM:WINDOWS /MACHINE:X86 /INCREMENTAL:NO /DEBUG /OPT:REF /guard:cf /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib /version:1.0 /DYNAMICBASE /NXCOMPAT WIN10_X86_GUI_RELEASE\cmdline.obj WIN10_X86_GUI_RELEASE\console.obj WIN10_X86_GUI_RELEASE\gui.obj WIN10_X86_GUI_RELEASE\handles.obj WIN10_X86_GUI_RELEASE\javajni.obj WIN10_X86_GUI_RELEASE\log.obj WIN10_X86_GUI_RELEASE\mclib.obj WIN10_X86_GUI_RELEASE\registry.obj WIN10_X86_GUI_RELEASE\rprocess.obj WIN10_X86_GUI_RELEASE\security.obj WIN10_X86_GUI_RELEASE\service.obj WIN10_X86_GUI_RELEASE\utils.obj WIN10_X86_GUI_RELEASE\prunmgr.obj WIN10_X86_GUI_RELEASE\prunmgr.res kernel32.lib advapi32.lib ole32.lib shell32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib comctl32.lib shlwapi.lib /pdb:WIN10_X86_GUI_RELEASE\prunmgr.pdb /out:WIN10_X86_GUI_RELEASE\prunmgr.exe WIN10_X86_GUI_RELEASE\cmdline.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86' NMAKE : fatal error U1077: 'link.exe /NOLOGO /SUBSYSTEM:WINDOWS /MACHINE:X86 /INCREMENTAL:NO /DEBUG /OPT:REF /guard:cf /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib /version:1.0 /DYNAMICBASE /NXCOMPAT WIN10_X86_GUI_RELEASE\cmdline.obj WIN10_X86_GUI_RELEASE\console.obj WIN10_X86_GUI_RELEASE\gui.obj WIN10_X86_GUI_RELEASE\handles.obj WIN10_X86_GUI_RELEASE\javajni.obj WIN10_X86_GUI_RELEASE\log.obj WIN10_X86_GUI_RELEASE\mclib.obj WIN10_X86_GUI_RELEASE\registry.obj WIN10_X86_GUI_RELEASE\rprocess.obj WIN10_X86_GUI_RELEASE\security.obj WIN10_X86_GUI_RELEASE\service.obj WIN10_X86_GUI_RELEASE\utils.obj WIN10_X86_GUI_RELEASE\prunmgr.obj WIN10_X86_GUI_RELEASE\prunmgr.res kernel32.lib advapi32.lib ole32.lib shell32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib comctl32.lib shlwapi.lib /pdb:WIN10_X86_GUI_RELEASE\prunmgr.pdb /out:WIN10_X86_GUI_RELEASE\prunmgr.exe' : return code '0x458' Stop. Maybe something is not getting cleaned? The X64 is OK though: nmake clean nmake CPU=X64 STATIC_CRT=Hybrid Same issue with prunsrv: C:\tmp\commons-daemon-1.4.1-src\src\native\windows\apps\prunsrv>nmake clean && nmake CPU=X86 STATIC_CRT=Hybrid Microsoft (R) Program Maintenance Utility Version 14.41.34120.0 Copyright (C) Microsoft Corporation. All rights reserved. Microsoft (R) Program Maintenance Utility Version 14.41.34120.0 Copyright (C) Microsoft Corporation. All rights reserved. link.exe /NOLOGO /SUBSYSTEM:CONSOLE /MACHINE:X86 /INCREMENTAL:NO /DEBUG /OPT:REF /guard:cf /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib /stack:0x64000 /version:1.0 /DYNAMICBASE /NXCOMPAT WIN10_X86_EXE_RELEASE\cmdline.obj WIN10_X86_EXE_RELEASE\console.obj WIN10_X86_EXE_RELEASE\gui.obj WIN10_X86_EXE_RELEASE\handles.obj WIN10_X86_EXE_RELEASE\javajni.obj WIN10_X86_EXE_RELEASE\log.obj WIN10_X86_EXE_RELEASE\mclib.obj WIN10_X86_EXE_RELEASE\registry.obj WIN10_X86_EXE_RELEASE\rprocess.obj WIN10_X86_EXE_RELEASE\security.obj WIN10_X86_EXE_RELEASE\service.obj WIN10_X86_EXE_RELEASE\utils.obj WIN10_X86_EXE_RELEASE\prunsrv.obj WIN10_X86_EXE_RELEASE\prunsrv.res kernel32.lib advapi32.lib ole32.lib shell32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib comctl32.lib shlwapi.lib /pdb:WIN10_X86_EXE_RELEASE\prunsrv.pdb /out:WIN10_X86_EXE_RELEASE\prunsrv.exe WIN10_X86_EXE_RELEASE\cmdline.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86' NMAKE : fatal error U1077: 'link.exe /NOLOGO /SUBSYSTEM:CONSOLE /MACHINE:X86 /INCREMENTAL:NO /DEBUG /OPT:REF /guard:cf /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib /stack:0x64000 /version:1.0 /DYNAMICBASE /NXCOMPAT WIN10_X86_EXE_RELEASE\cmdline.obj WIN10_X86_EXE_RELEASE\console.obj WIN10_X86_EXE_RELEASE\gui.obj WIN10_X86_EXE_RELEASE\handles.obj WIN10_X86_EXE_RELEASE\javajni.obj WIN10_X86_EXE_RELEASE\log.obj WIN10_X86_EXE_RELEASE\mclib.obj WIN10_X86_EXE_RELEASE\registry.obj WIN10_X86_EXE_RELEASE\rprocess.obj WIN10_X86_EXE_RELEASE\security.obj WIN10_X86_EXE_RELEASE\service.obj WIN10_X86_EXE_RELEASE\utils.obj WIN10_X86_EXE_RELEASE\prunsrv.obj WIN10_X86_EXE_RELEASE\prunsrv.res kernel32.lib advapi32.lib ole32.lib shell32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib comctl32.lib shlwapi.lib /pdb:WIN10_X86_EXE_RELEASE\prunsrv.pdb /out:WIN10_X86_EXE_RELEASE\prunsrv.exe' : return code '0x458' In addition, a plain X86 build fails: C:\tmp\commons-daemon-1.4.1-src\src\native\windows\apps\prunsrv>nmake clean && nmake CPU=X86 Microsoft (R) Program Maintenance Utility Version 14.41.34120.0 Copyright (C) Microsoft Corporation. All rights reserved. Microsoft (R) Program Maintenance Utility Version 14.41.34120.0 Copyright (C) Microsoft Corporation. All rights reserved. link.exe /NOLOGO /SUBSYSTEM:CONSOLE /MACHINE:X86 /INCREMENTAL:NO /DEBUG /OPT:REF /guard:cf /stack:0x64000 /version:1.0 /DYNAMICBASE /NXCOMPAT WIN10_X86_EXE_RELEASE\cmdline.obj WIN10_X86_EXE_RELEASE\console.obj WIN10_X86_EXE_RELEASE\gui.obj WIN10_X86_EXE_RELEASE\handles.obj WIN10_X86_EXE_RELEASE\javajni.obj WIN10_X86_EXE_RELEASE\log.obj WIN10_X86_EXE_RELEASE\mclib.obj WIN10_X86_EXE_RELEASE\registry.obj WIN10_X86_EXE_RELEASE\rprocess.obj WIN10_X86_EXE_RELEASE\security.obj WIN10_X86_EXE_RELEASE\service.obj WIN10_X86_EXE_RELEASE\utils.obj WIN10_X86_EXE_RELEASE\prunsrv.obj WIN10_X86_EXE_RELEASE\prunsrv.res kernel32.lib advapi32.lib ole32.lib shell32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib comctl32.lib shlwapi.lib /pdb:WIN10_X86_EXE_RELEASE\prunsrv.pdb /out:WIN10_X86_EXE_RELEASE\prunsrv.exe WIN10_X86_EXE_RELEASE\cmdline.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86' NMAKE : fatal error U1077: 'link.exe /NOLOGO /SUBSYSTEM:CONSOLE /MACHINE:X86 /INCREMENTAL:NO /DEBUG /OPT:REF /guard:cf /stack:0x64000 /version:1.0 /DYNAMICBASE /NXCOMPAT WIN10_X86_EXE_RELEASE\cmdline.obj WIN10_X86_EXE_RELEASE\console.obj WIN10_X86_EXE_RELEASE\gui.obj WIN10_X86_EXE_RELEASE\handles.obj WIN10_X86_EXE_RELEASE\javajni.obj WIN10_X86_EXE_RELEASE\log.obj WIN10_X86_EXE_RELEASE\mclib.obj WIN10_X86_EXE_RELEASE\registry.obj WIN10_X86_EXE_RELEASE\rprocess.obj WIN10_X86_EXE_RELEASE\security.obj WIN10_X86_EXE_RELEASE\service.obj WIN10_X86_EXE_RELEASE\utils.obj WIN10_X86_EXE_RELEASE\prunsrv.obj WIN10_X86_EXE_RELEASE\prunsrv.res kernel32.lib advapi32.lib ole32.lib shell32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib comctl32.lib shlwapi.lib /pdb:WIN10_X86_EXE_RELEASE\prunsrv.pdb /out:WIN10_X86_EXE_RELEASE\prunsrv.exe' : return code '0x458' My tool chain: nmake: Microsoft (R) Program Maintenance Utility Version 14.41.34120.0 cl: Microsoft (R) C/C++ Optimizing Compiler Version 19.41.34120 for x64 link: Microsoft (R) Incremental Linker Version 14.41.34120.0 VS 2022 says my build tools are at 16.11.40 and the current version is 16.11.42, not sure that matters. Gary On 2025/01/07 17:35:48 Gary Gregory wrote:HI Mark, After "brew install automake", I was able to "sh support/buildconf.sh" which gave me: aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in' ./support/apfunctions.m4:18: warning: underquoted definition of AP_MSG_HEADER ./support/apfunctions.m4:18: run info Automake 'Extending aclocal' ./support/apfunctions.m4:18: or see https://www.gnu.org/software/automake/manual/automake.html#Extending-aclocal support/buildconf.sh: configure script generated successfully Then it worked with "make" giving 3 warnings: arguments.c:453:5: warning: switch condition has boolean value [-Wswitch-bool] 453 | switch (par) { | ^ ~~~ arguments.c:464:5: warning: switch condition has boolean value [-Wswitch-bool] 464 | switch (par) { | ^ ~~~ arguments.c:475:5: warning: switch condition has boolean value [-Wswitch-bool] 475 | switch (par) { | ^ ~~~ 3 warnings generated. Then I was also able to build the 64-binaries but not the fat binaries (I must be missing something) I will try Windows next. Gary. On Tue, Jan 7, 2025 at 12:22 PM Mark Thomas <ma...@apache.org> wrote:On 07/01/2025 15:59, Gary Gregory wrote:Hi Mark, I tested the src zip file, on macOS, when I run: sh support/buildconf.sh I get: support/buildconf.sh: line 22: autoreconf: command not found support/buildconf.sh: cannot generate configure script I have gcc installed (Apple clang version 16.0.0 (clang-1600.0.26.6)), so an unlisted requirement is "autoreconf". I installed "brew install autoconf".src/native/unix/install lists autoconf as a requirementThen, I get: sh support/buildconf.sh autoreconf: warning: autoconf input should be named 'configure.ac', not 'configure.in'That warning is harmless but has been fixed for the next release as I saw it too when I was building RC1.Can't exec "aclocal": No such file or directory at /opt/homebrew/Cellar/autoconf/2.72/share/autoconf/Autom4te/FileUtils.pm line 299. autoreconf: error: aclocal failed with exit status: 2 support/buildconf.sh: cannot generate configure scriptLooks like this issue: https://github.com/Homebrew/homebrew-core/issues/21125 Updating the docs to state automake is required rather than autoconf will probably save a few folks some Googling.When I try it from the HEAD of git master, I get: Can't exec "aclocal": No such file or directory at /opt/homebrew/Cellar/autoconf/2.72/share/autoconf/Autom4te/FileUtils.pm line 299. autoreconf: error: aclocal failed with exit status: 2 support/buildconf.sh: cannot generate configure script Any ideas? If macOS isn't supported, it would be nice to say that in unix/INSTALL.txt Please let me know.I'll update the INSTALL.txt to refer to to automake rather than autoconf. Let me know if you think that requires a new RC. Mark-- On the Java side: I tested the src zip file: - SHA512 OK - ASC OK - mvn clean verify The above succeeds on: openjdk version "11.0.25" 2024-10-15 OpenJDK Runtime Environment Homebrew (build 11.0.25+0) OpenJDK 64-Bit Server VM Homebrew (build 11.0.25+0, mixed mode) openjdk version "17.0.13" 2024-10-15 OpenJDK Runtime Environment Homebrew (build 17.0.13+0) OpenJDK 64-Bit Server VM Homebrew (build 17.0.13+0, mixed mode, sharing) openjdk version "21.0.5" 2024-10-15 OpenJDK Runtime Environment Homebrew (build 21.0.5) OpenJDK 64-Bit Server VM Homebrew (build 21.0.5, mixed mode, sharing) openjdk version "23.0.1" 2024-10-15 OpenJDK Runtime Environment Homebrew (build 23.0.1) OpenJDK 64-Bit Server VM Homebrew (build 23.0.1, mixed mode, sharing) Maven: Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937) Maven home: /opt/homebrew/Cellar/maven/3.9.9/libexec Java version: 17.0.13, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "15.2", arch: "aarch64", family: "mac" Darwin ****.local 24.2.0 Darwin Kernel Version 24.2.0: Fri Dec 6 19:03:40 PST 2024; root:xnu-11215.61.5~2/RELEASE_ARM64_T6041 arm64 Docker version 27.3.1, build ce12230 On Tue, Jan 7, 2025 at 10:21 AM Mark Thomas <ma...@apache.org> wrote:We have fixed a few bugs and added enhancements since Apache Commons Daemon 1.4.0 was released, so I would like to release Apache Commons Daemon 1.4.1. Apache Commons Daemon 1.4.1 RC1 is available for review here: https://dist.apache.org/repos/dist/dev/commons/daemon/1.4.1-RC1 (svn revision 74028) The Git tag commons-daemon-1.4.1-RC1 commit for this RC is 067ee7f609ad25c90fb1c0ff6ad049f33b2ed387 which you can browse here: https://gitbox.apache.org/repos/asf?p=commons-daemon.git;a=commit;h=067ee7f609ad25c90fb1c0ff6ad049f33b2ed387 You may checkout this tag using: git clone https://gitbox.apache.org/repos/asf/commons-daemon.git --branch commons-daemon-1.4.1-RC1 commons-daemon-1.4.1-RC1 Maven artifacts are here: https://repository.apache.org/content/repositories/orgapachecommons-1799/commons-daemon/commons-daemon/1.4.1/ These are the artifacts and their hashes: #Release SHA-512s #Tue Jan 07 14:42:59 GMT 2025 commons-daemon-1.4.1-bin-windows.zip=b8eeea01dbca495780e61db26776eab1561990d54499202bcb5d97c9f49e194ebc40002fabbaf74b5334481a2f42f80df5132efd0671632074df83759e04484a commons-daemon-1.4.1-bin.tar.gz=6e1e590d1b25b1c543b7e149748b25b7a200a20a70d490b1f2628ce808dd9da170d33c62b57421bdf7db0a9e0ac1df7f67de5e9ea4e70d500ec97ff7e6662e6a commons-daemon-1.4.1-bin.zip=bc9f1f27c450556893b738e4ff1068c5289be56c2fc333abbe418abe42a039e1e8677608b54e4514d7fa82d220060c35c8492c23cd73515f961fc5091c8ec43f commons-daemon-1.4.1-bom.json=d6a6877f3714a2ebd87d7601cf17bfeff03c7be68a8e14ef9ad6f4766b95a327f980e7c141eee0f6eb2353d67c1f873d41679088f363b8f796620ea81924999a commons-daemon-1.4.1-bom.xml=f1faf168562749df30d268ab50d36c77b675d78d181d595c15f1de5fde5ffb1645ab183fe03524885a89465ec3fb8bfea983f4bb1b2d4c50b579bb08806646a7 commons-daemon-1.4.1-javadoc.jar=ac426d6eb10fa88f61e22ab039abd13f244db4687481cdc97bc42d4f1ae0534251eeb500b95d042d44939e5466aff924d68c6499a20a392fdf91da74519bd4c3 commons-daemon-1.4.1-native-src.tar.gz=578002ddd6d1a63488b9920b848d839cab39fca58c1e208b929b5c327590ca63c5878cd5280d2a2006191a8e81d93e5ca07414f6f6f4a72669352df72a5977b1 commons-daemon-1.4.1-native-src.zip=2e957e7b762b0031a6cea90d737037b0ede72e0d24573ad358a4fc7ba138e0ef1b7fd1a039543a96b0037120088c09a89737967619df6d202b2863703f146cbd commons-daemon-1.4.1-sources.jar=55dbeb7b0dd8474a786d20b336cd86cb767692f1fd6b476c33e45f8c66adb85596d7f1b303bd9a039fe5939270fef198697347bf646574a32aa5e478d51ee5c7 commons-daemon-1.4.1-src.tar.gz=948d176922e3d7d0843e9e8d6bdba653b367b3d4d87dc96e600bfe6a8721c1d813584116773e4a32740424e276b93c1808e0b644ee79e21b23b23d1b08b5569a commons-daemon-1.4.1-src.zip=b18eec0a2937d52b14ee468d42b8d0a3e317d6de181377fee38b9f6d87e3151188563e4630f364ac44ccbb080c16f0bdd2c8e1f243efcd34111ce182a2f3b573 commons-daemon_commons-daemon-1.4.1.spdx.json=957ab7bd230f6d6f401be67e50dad3cead32139f001156d57e46521c367c48c5dd579b3a01f3c8b2ca6bf735682018e8f88dc3c5247e9a8f82bd3d0345e2eb69 KEYS: https://downloads.apache.org/commons/KEYS Please review the release candidate and vote. This vote will close no sooner than 72 hours from now. [ ] +1 Release these artifacts [ ] +0 OK, but... [ ] -0 OK, but really should fix... [ ] -1 I oppose this release because... Thank you, Mark Thomas, Release Manager (using key 10C01C5A2F6059E7) For following is intended as a helper and refresher for reviewers. Validating a release candidate ============================== These guidelines are NOT complete. Requirements: Git, Java, Maven. You can validate a release from a release candidate (RC) tag as follows. 1a) Clone and checkout the RC tag git clone https://gitbox.apache.org/repos/asf/commons-daemon.git --branch commons-daemon-1.4.1-RC1 commons-daemon-1.4.1-RC1 cd commons-daemon-1.4.1-RC1 1b) Download and unpack the source archive from: https://dist.apache.org/repos/dist/dev/commons/daemon/1.4.1-RC1/source 2) Check Apache licenses This step is not required if the site includes a RAT report page which you then must check. mvn apache-rat:check 3) Check binary compatibility Older components still use Apache Clirr: This step is not required if the site includes a Clirr report page which you then must check. mvn clirr:check Newer components use JApiCmp with the japicmp Maven Profile: This step is not required if the site includes a JApiCmp report page which you then must check. mvn install -DskipTests -P japicmp japicmp:cmp 4) Build the package mvn -V clean package You can record the Maven and Java version produced by -V in your VOTE reply. To gather OS information from a command line: Windows: ver Linux: uname -a 5) Build the site for a single module project Note: Some plugins require the components to be installed instead of packaged. mvn site Check the site reports in: - Windows: target\site\index.html - Linux: target/site/index.html 6) Build the site for a multi-module project mvn site mvn site:stage Check the site reports in: - Windows: target\site\index.html - Linux: target/site/index.html Note that the project reports are created for each module. Modules can be accessed using the 'Project Modules' link under the 'Project Information' menu (see <path-to-site>/modules.html). --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org