[ 
https://issues.apache.org/jira/browse/ARTEMIS-3966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17601750#comment-17601750
 ] 

Robbie Gemmell commented on ARTEMIS-3966:
-----------------------------------------

The readme needs updated at least, it doesnt seem to mention you need to 
generate the file separately from running the scripts like 
./scripts/compile-native.sh now (the .c file and .java do note it...which isnt 
too useful if you havent known to look at them)

Could the cmake build not check the header file exists and fail-fast if not? Or 
even just call maven itself to have the compiler generate the header, not too 
dissimilar from before when cmake used to call javah and it generated the 
header.

E.g in the first case it could at least do something like 'Check file exists -> 
if not: fail and print "You need to run 'mvn generate-sources' first before 
running ./scripts/compile-native.sh. Alternatively use mvn install -Pbare-metal 
which does both."



> libaio does not build using ./scripts/compile-native.sh
> -------------------------------------------------------
>
>                 Key: ARTEMIS-3966
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3966
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: ActiveMQ-Artemis-Native
>         Environment: quay.io/fedora/fedora:31-x86_64 docker image
>            Reporter: Jiri Daněk
>            Assignee: Clebert Suconic
>            Priority: Major
>
> {noformat}
> + git clone https://github.com/apache/activemq-artemis-native.git
> Cloning into 'activemq-artemis-native'...
> Coverity Build Capture (64-bit) version 2022.6.0 on Linux 
> 5.6.13-100.fc30.x86_64 x86_64
> Internal version numbers: 9501b3bfc3 p-2022.6-push-41
> + pushd activemq-artemis-native
> + ./scripts/compile-native.sh
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  /builds/messaging/coverity-static-analysis/activemq-artemis
> CMake Warning (dev) in CMakeLists.txt:
>   No project() command is present.  The top-level CMakeLists.txt file must
>   contain a literal, direct call to the project() command.  Add a line of
>   code such as
>     project(ProjectName)
>   near the top of the file, but after cmake_minimum_required().
>   CMake is pretending there is a "project(Project)" command on the first
>   line.
> This warning is for project developers.  Use -Wno-dev to suppress it.
> -- The C compiler identification is GNU 9.3.1
> -- The CXX compiler identification is GNU 9.3.1
> -- Check for working C compiler: /usr/bin/cc
> -- Check for working C compiler: /usr/bin/cc - works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- Check for working CXX compiler: /usr/bin/c++
> -- Check for working CXX compiler: /usr/bin/c++ - works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Found Java: /usr/bin/java (found version "1.8.0_272") 
> -- Found JNI: /usr/lib/jvm/java/jre/lib/amd64/libjawt.so  
> -- 
> JNI_INCLUDE_DIRS=/usr/lib/jvm/java/include;/usr/lib/jvm/java/include/linux;/usr/lib/jvm/java/include
> -- 
> JNI_LIBRARIES=/usr/lib/jvm/java/jre/lib/amd64/libjawt.so;/usr/lib/jvm/java/jre/lib/amd64/server/libjvm.so
> -- Using cross-compilation
> -- Using the following libaio library for linking: /usr/lib64/libaio.so
> -- Setting up library as artemis-native-32 based on current architecture
> -- Configuring done
> -- Generating done
> -- Build files have been written to: 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
> /usr/bin/cmake 
> -S/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  
> -B/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  --check-build-system CMakeFiles/Makefile.cmake 0
> /usr/bin/cmake -E cmake_progress_start 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/CMakeFiles
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/CMakeFiles/progress.marks
> make  -f CMakeFiles/Makefile2 all
> make[1]: Entering directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> make  -f src/main/c/CMakeFiles/artemis-native.dir/build.make 
> src/main/c/CMakeFiles/artemis-native.dir/depend
> make[2]: Entering directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> cd 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  && /usr/bin/cmake -E cmake_depends "Unix Makefiles" 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/CMakeFiles/artemis-native.dir/DependInfo.cmake
>  --color=
> Scanning dependencies of target artemis-native
> make[2]: Leaving directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> make  -f src/main/c/CMakeFiles/artemis-native.dir/build.make 
> src/main/c/CMakeFiles/artemis-native.dir/build
> make[2]: Entering directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> [ 50%] Building C object 
> src/main/c/CMakeFiles/artemis-native.dir/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c.o
> cd 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c
>  && /usr/bin/cc -Dartemis_native_EXPORTS 
> -I/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/.
>  -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux 
> -I/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/../../../target/include
>   -O3 -std=c99 -Wall -m32 -fPIC   -o 
> CMakeFiles/artemis-native.dir/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c.o
>    -c 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c
> In file included from /usr/include/features.h:474,
>                  from /usr/include/bits/libc-header-start.h:33,
>                  from /usr/include/stdio.h:27,
>                  from /usr/lib/jvm/java/include/jni.h:39,
>                  from 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c:25:
> /usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or 
> directory
>     7 | # include <gnu/stubs-32.h>
>       |           ^~~~~~~~~~~~~~~~
> compilation terminated.
> make[2]: Leaving directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> make[2]: *** [src/main/c/CMakeFiles/artemis-native.dir/build.make:86: 
> src/main/c/CMakeFiles/artemis-native.dir/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c.o]
>  Error 1
> make[1]: *** [CMakeFiles/Makefile2:117: 
> src/main/c/CMakeFiles/artemis-native.dir/all] Error 2
> make[1]: Leaving directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> make: *** [Makefile:107: all] Error 2
> CMake Warning (dev) in CMakeLists.txt:
>   No project() command is present.  The top-level CMakeLists.txt file must
>   contain a literal, direct call to the project() command.  Add a line of
>   code such as
>     project(ProjectName)
>   near the top of the file, but after cmake_minimum_required().
>   CMake is pretending there is a "project(Project)" command on the first
>   line.
> This warning is for project developers.  Use -Wno-dev to suppress it.
> -- The C compiler identification is GNU 9.3.1
> -- The CXX compiler identification is GNU 9.3.1
> -- Check for working C compiler: /usr/bin/cc
> -- Check for working C compiler: /usr/bin/cc - works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- Check for working CXX compiler: /usr/bin/c++
> -- Check for working CXX compiler: /usr/bin/c++ - works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Found Java: /usr/bin/java (found version "1.8.0_272") 
> -- Found JNI: /usr/lib/jvm/java/jre/lib/amd64/libjawt.so  
> -- 
> JNI_INCLUDE_DIRS=/usr/lib/jvm/java/include;/usr/lib/jvm/java/include/linux;/usr/lib/jvm/java/include
> -- 
> JNI_LIBRARIES=/usr/lib/jvm/java/jre/lib/amd64/libjawt.so;/usr/lib/jvm/java/jre/lib/amd64/server/libjvm.so
> -- Using the following libaio library for linking: /usr/lib64/libaio.so
> -- Setting up library as artemis-native-64 based on current architecture
> -- Configuring done
> -- Generating done
> CMake Warning:
>   Manually-specified variables were not used by the project:
>     ARTEMIS_CROSS_COMPILE_ROOT_PATH
> -- Build files have been written to: 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
> /usr/bin/cmake 
> -S/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  
> -B/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  --check-build-system CMakeFiles/Makefile.cmake 0
> /usr/bin/cmake -E cmake_progress_start 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/CMakeFiles
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/CMakeFiles/progress.marks
> make  -f CMakeFiles/Makefile2 all
> make[1]: Entering directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> make  -f src/main/c/CMakeFiles/artemis-native.dir/build.make 
> src/main/c/CMakeFiles/artemis-native.dir/depend
> make[2]: Entering directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> cd 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  && /usr/bin/cmake -E cmake_depends "Unix Makefiles" 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c
>  
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/CMakeFiles/artemis-native.dir/DependInfo.cmake
>  --color=
> make[2]: Leaving directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> make  -f src/main/c/CMakeFiles/artemis-native.dir/build.make 
> src/main/c/CMakeFiles/artemis-native.dir/build
> make[2]: Entering directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> [ 50%] Building C object 
> src/main/c/CMakeFiles/artemis-native.dir/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c.o
> cd 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c
>  && /usr/bin/cc -Dartemis_native_EXPORTS 
> -I/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/.
>  -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux 
> -I/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/../../../target/include
>   -O3 -std=c99 -Wall  -fPIC   -o 
> CMakeFiles/artemis-native.dir/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c.o
>    -c 
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c
> /builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native/src/main/c/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c:40:10:
>  fatal error: org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.h: No 
> such file or directory
>    40 | #include "org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.h"
>       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[2]: *** [src/main/c/CMakeFiles/artemis-native.dir/build.make:86: 
> src/main/c/CMakeFiles/artemis-native.dir/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c.o]
>  Error 1
> make[2]: Leaving directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> make[1]: *** [CMakeFiles/Makefile2:117: 
> src/main/c/CMakeFiles/artemis-native.dir/all] Error 2
> make[1]: Leaving directory 
> '/builds/messaging/coverity-static-analysis/activemq-artemis/activemq-artemis-native'
> make: *** [Makefile:107: all] Error 2
> [WARNING] Build command ./build_for_analysis.sh exited with code 2. Please 
> verify that the build completed successfully.
> [WARNING] Emitted 6 C/C++ compilation units (75%) successfully
> 6 C/C++ compilation units (75%) are ready for analysis
>  For more details, please look at: 
>     
> /builds/messaging/coverity-static-analysis/activemq-artemis/cov-int/build-log.txt
> Cleaning up file based variables
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to