[Bug 1906980] Review Request: highway - Efficient and performance-portable SIMD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1906980

Ben Beasley <code@xxxxxxxxxxxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Flags|needinfo?(code@musicinmybra |
                   |in.net)                     |



--- Comment #12 from Ben Beasley <code@xxxxxxxxxxxxxxxxxx> ---
I’ve never seen this before: fedora-review spends a while building, then spits
this out:

> WARNING: Package highway-devel-0.11.1-1.fc35 not built
> WARNING: Package highway-doc-0.11.1-1.fc35 not built
> ERROR: 'No srpm found for highway' (logs in /home/reviewer/.cache/fedora-review.log)

Eventually I figured out that this was just a consequence of the SRPM in your
last comment not matching the spec file.

Once I got the correct SRPM from the Koji scratch-build, I got a similar error
to before, although it was later in the build this time:

> [ 92%] Built target arithmetic_test
> [ 95%] Linking CXX executable tests/hwy_test
> /usr/bin/cmake -E cmake_link_script CMakeFiles/hwy_test.dir/link.txt --verbose=1
> /usr/bin/g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -DNDEBUG -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fPIE -pie CMakeFiles/hwy_test.dir/hwy/tests/hwy_test.cc.o -o tests/hwy_test  libhwy.a /usr/lib64/libgtest.so /usr/lib64/libgtest_main.so /usr/lib64/libgtest.so -lpthread
> /usr/bin/cmake -D TEST_TARGET=hwy_test -D TEST_EXECUTABLE=/builddir/build/BUILD/highway-0.11.1/x86_64-redhat-linux-gnu/tests/hwy_test -D TEST_EXECUTOR= -D TEST_WORKING_DIR=/builddir/build/BUILD/highway-0.11.1/x86_64-redhat-linux-gnu -D TEST_EXTRA_ARGS= -D TEST_PROPERTIES= -D TEST_PREFIX= -D TEST_SUFFIX= -D NO_PRETTY_TYPES=FALSE -D NO_PRETTY_VALUES=FALSE -D TEST_LIST=hwy_test_TESTS -D CTEST_FILE=/builddir/build/BUILD/highway-0.11.1/x86_64-redhat-linux-gnu/hwy_test[1]_tests.cmake -D TEST_DISCOVERY_TIMEOUT=60 -D TEST_XML_OUTPUT_DIR= -P /usr/share/cmake/Modules/GoogleTestAddTests.cmake
> CMake Error at /usr/share/cmake/Modules/GoogleTestAddTests.cmake:77 (message):
>   Error running test executable.
>     Path: '/builddir/build/BUILD/highway-0.11.1/x86_64-redhat-linux-gnu/tests/hwy_test'
>     Result: Illegal instruction
>     Output:
> 
> Call Stack (most recent call first):
>   /usr/share/cmake/Modules/GoogleTestAddTests.cmake:173 (gtest_discover_tests_impl)
> gmake[2]: Leaving directory '/builddir/build/BUILD/highway-0.11.1/x86_64-redhat-linux-gnu'
> gmake[2]: *** [CMakeFiles/hwy_test.dir/build.make:111: tests/hwy_test] Error 1
> gmake[2]: *** Deleting file 'tests/hwy_test'
> gmake[1]: *** [CMakeFiles/Makefile2:239: CMakeFiles/hwy_test.dir/all] Error 2
> gmake[1]: *** Waiting for unfinished jobs....

It looks like this is the offending section in GoogleTestAddTests.cmake:

>   # Run test executable to get list of available tests
>   if(NOT EXISTS "${_TEST_EXECUTABLE}")
>     message(FATAL_ERROR
>       "Specified test executable does not exist.\n"
>       "  Path: '${_TEST_EXECUTABLE}'"
>     )
>   endif()
>   execute_process(
>     COMMAND ${_TEST_EXECUTOR} "${_TEST_EXECUTABLE}" --gtest_list_tests
>     WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
>     TIMEOUT ${_TEST_DISCOVERY_TIMEOUT}
>     OUTPUT_VARIABLE output
>     RESULT_VARIABLE result
>   )
>   if(NOT ${result} EQUAL 0)
>     string(REPLACE "\n" "\n    " output "${output}")
>     message(FATAL_ERROR
>       "Error running test executable.\n"
>       "  Path: '${_TEST_EXECUTABLE}'\n"
>       "  Result: ${result}\n"
>       "  Output:\n"
>       "    ${output}\n"
>     )
>   endif()

So the test executables are getting run with --gtest_list_tests to discover the
tests they implement, and the code that sets up the test suites has been
compiled such that even this requires–well, here I haven’t waded through all of
the macro soup, but something I don’t have, anyway. I think if it required all
supported ISA extensions to run it would not be working on Koji.

Note that the baseline target is scalar:

> ./hwy_list_targets || ( exit 0 )
> Compiled HWY_TARGETS: AVX3 AVX2 SSE4 Scalar
> HWY_BASELINE_TARGETS: Scalar

…but that this was also the case in your older Koji scratch build,
https://koji.fedoraproject.org/koji/taskinfo?taskID=65535443.

So I’m pretty sure that adding -DHWY_COMPILE_ALL_ATTAINABLE is not doing
anything at all here on x86_64, since scalar is the only baseline target. (This
makes sense as baseline targets are supposed to be only those enabled in the
compilation environment, and you are not adding anything beyond the default
Fedora flags.) is causing it to additionally compile targets below the best
baseline for testing, but it does not keep the test executable from requiring
extensions.

When I have a chance, I’m going to read the CMake and C sources a little more,
and perhaps try a couple of experiments, to try to understand better what’s
really happening here.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux