Bug 8809 - [Anolis23.1 GA][ANCK-6.6.25-2][x86-64/aarch64] libfuse-test测试test_examples.pytest_passthrough_hp用例编译失败
Summary: [Anolis23.1 GA][ANCK-6.6.25-2][x86-64/aarch64] libfuse-test测试test_examples.py...
Status: CLOSED INVALID
Alias: None
Product: Anolis OS 23
Classification: Anolis OS
Component: ---> ToBeTriaged (show other bugs) ---> ToBeTriaged
Version: 23.1
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: happy_orange
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-22 10:29 UTC by wanqian
Modified: 2024-04-28 14:34 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wanqian alibaba_cloud_group 2024-04-22 10:29:33 UTC
[问题简述]
6.6.25-2_rc1.an23 内核 libfuse-test测试中test_examples.pytest_passthrough_hp编译失败,x86-64和aarch64同样问题。

编译报错日志:
[root@iZbp143ti4ccpaufkzata3Z build]#  ninja-build
[1/2] Compiling C++ object example/passthrough_hp.p/passthrough_hp.cc.o
FAILED: example/passthrough_hp.p/passthrough_hp.cc.o
c++ -Iexample/passthrough_hp.p -Iexample -I../example -Iinclude -I../include -Ilib -I../lib -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O2 -g -D_REENTRANT -DHAVE_CONFIG_H -D_GNU_SOURCE -Wall -Wextra -Wno-sign-compare -std=c++11 -Wmissing-declarations -Wwrite-strings -fno-strict-aliasing -pthread -MD -MQ example/passthrough_hp.p/passthrough_hp.cc.o -MF example/passthrough_hp.p/passthrough_hp.cc.o.d -o example/passthrough_hp.p/passthrough_hp.cc.o -c ../example/passthrough_hp.cc
In file included from ../example/passthrough_hp.cc:77:
../example/cxxopts.hpp: In member function ‘void cxxopts::values::detail::SignedCheck<T, true>::operator()(bool, U, const std::string&)’:
../example/cxxopts.hpp:488:42: error: ‘numeric_limits’ is not a member of ‘std’
  488 |             if (u > static_cast<U>(-std::numeric_limits<T>::min()))
      |                                          ^~~~~~~~~~~~~~
../example/cxxopts.hpp:488:58: error: expected primary-expression before ‘>’ token
  488 |             if (u > static_cast<U>(-std::numeric_limits<T>::min()))
      |                                                          ^
../example/cxxopts.hpp:488:61: error: ‘::min’ has not been declared; did you mean ‘std::min’?
  488 |             if (u > static_cast<U>(-std::numeric_limits<T>::min()))
      |                                                             ^~~
      |                                                             std::min
In file included from /usr/include/c++/12/regex:50,
                 from ../example/cxxopts.hpp:34:
/usr/include/c++/12/bits/stl_algo.h:5736:5: note: ‘std::min’ declared here
 5736 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
../example/cxxopts.hpp:495:41: error: ‘numeric_limits’ is not a member of ‘std’
  495 |             if (u > static_cast<U>(std::numeric_limits<T>::max()))
      |                                         ^~~~~~~~~~~~~~
../example/cxxopts.hpp:495:57: error: expected primary-expression before ‘>’ token
  495 |             if (u > static_cast<U>(std::numeric_limits<T>::max()))
      |                                                         ^
../example/cxxopts.hpp:495:60: error: ‘::max’ has not been declared; did you mean ‘std::max’?
  495 |             if (u > static_cast<U>(std::numeric_limits<T>::max()))
      |                                                            ^~~
      |                                                            std::max
/usr/include/c++/12/bits/stl_algo.h:5756:5: note: ‘std::max’ declared here
 5756 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
../example/cxxopts.hpp: In function ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&)’:
../example/cxxopts.hpp:515:29: error: ‘numeric_limits’ is not a member of ‘std’
  515 |         SignedCheck<T, std::numeric_limits<T>::is_signed>()(negative, value, text);
      |                             ^~~~~~~~~~~~~~
../example/cxxopts.hpp:515:29: error: ‘numeric_limits’ is not a member of ‘std’
../example/cxxopts.hpp:515:45: error: template argument 2 is invalid
  515 |         SignedCheck<T, std::numeric_limits<T>::is_signed>()(negative, value, text);
      |                                             ^
../example/cxxopts.hpp:515:57: error: qualified-id in declaration before ‘>’ token
  515 |         SignedCheck<T, std::numeric_limits<T>::is_signed>()(negative, value, text);
      |                                                         ^
../example/cxxopts.hpp: In function ‘void cxxopts::values::integer_parser(const std::string&, T&)’:
../example/cxxopts.hpp:556:34: error: ‘numeric_limits’ is not a member of ‘std’
  556 |       constexpr auto umax = std::numeric_limits<US>::max();
      |                                  ^~~~~~~~~~~~~~
../example/cxxopts.hpp:556:51: error: expected primary-expression before ‘>’ token
  556 |       constexpr auto umax = std::numeric_limits<US>::max();
      |                                                   ^
../example/cxxopts.hpp:556:54: error: ‘::max’ has not been declared; did you mean ‘std::max’?
  556 |       constexpr auto umax = std::numeric_limits<US>::max();
      |                                                      ^~~
      |                                                      std::max
/usr/include/c++/12/bits/stl_algo.h:5756:5: note: ‘std::max’ declared here
 5756 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
../example/cxxopts.hpp:557:39: error: ‘numeric_limits’ is not a member of ‘std’
  557 |       constexpr bool is_signed = std::numeric_limits<T>::is_signed;
      |                                       ^~~~~~~~~~~~~~
../example/cxxopts.hpp:557:55: error: expected primary-expression before ‘>’ token
  557 |       constexpr bool is_signed = std::numeric_limits<T>::is_signed;
      |                                                       ^
../example/cxxopts.hpp:557:58: error: ‘::is_signed’ has not been declared; did you mean ‘std::is_signed’?
  557 |       constexpr bool is_signed = std::numeric_limits<T>::is_signed;
      |                                                          ^~~~~~~~~
      |                                                          std::is_signed
In file included from /usr/include/c++/12/bits/stl_pair.h:60,
                 from /usr/include/c++/12/bits/stl_algobase.h:64,
                 from /usr/include/c++/12/list:60,
                 from ../example/passthrough_hp.cc:76:
/usr/include/c++/12/type_traits:820:12: note: ‘std::is_signed’ declared here
  820 |     struct is_signed
      |            ^~~~~~~~~
../example/cxxopts.hpp: In instantiation of ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&) [with T = unsigned char; U = unsigned char; std::string = std::__cxx11::basic_string<char>]’:
../example/cxxopts.hpp:594:36:   required from ‘void cxxopts::values::integer_parser(const std::string&, T&) [with T = unsigned char; std::string = std::__cxx11::basic_string<char>]’
../example/cxxopts.hpp:622:21:   required from here
../example/cxxopts.hpp:513:31: warning: unused parameter ‘negative’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                          ~~~~~^~~~~~~~
../example/cxxopts.hpp:513:43: warning: unused parameter ‘value’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                         ~~^~~~~
../example/cxxopts.hpp:513:69: warning: unused parameter ‘text’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                                  ~~~~~~~~~~~~~~~~~~~^~~~
../example/cxxopts.hpp: In instantiation of ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&) [with T = signed char; U = unsigned char; std::string = std::__cxx11::basic_string<char>]’:
../example/cxxopts.hpp:594:36:   required from ‘void cxxopts::values::integer_parser(const std::string&, T&) [with T = signed char; std::string = std::__cxx11::basic_string<char>]’
../example/cxxopts.hpp:629:21:   required from here
../example/cxxopts.hpp:513:31: warning: unused parameter ‘negative’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                          ~~~~~^~~~~~~~
../example/cxxopts.hpp:513:43: warning: unused parameter ‘value’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                         ~~^~~~~
../example/cxxopts.hpp:513:69: warning: unused parameter ‘text’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                                  ~~~~~~~~~~~~~~~~~~~^~~~
../example/cxxopts.hpp: In instantiation of ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&) [with T = short unsigned int; U = short unsigned int; std::string = std::__cxx11::basic_string<char>]’:
../example/cxxopts.hpp:594:36:   required from ‘void cxxopts::values::integer_parser(const std::string&, T&) [with T = short unsigned int; std::string = std::__cxx11::basic_string<char>]’
../example/cxxopts.hpp:636:21:   required from here
../example/cxxopts.hpp:513:31: warning: unused parameter ‘negative’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                          ~~~~~^~~~~~~~
../example/cxxopts.hpp:513:43: warning: unused parameter ‘value’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                         ~~^~~~~
../example/cxxopts.hpp:513:69: warning: unused parameter ‘text’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                                  ~~~~~~~~~~~~~~~~~~~^~~~
../example/cxxopts.hpp: In instantiation of ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&) [with T = short int; U = short unsigned int; std::string = std::__cxx11::basic_string<char>]’:
../example/cxxopts.hpp:594:36:   required from ‘void cxxopts::values::integer_parser(const std::string&, T&) [with T = short int; std::string = std::__cxx11::basic_string<char>]’
../example/cxxopts.hpp:643:21:   required from here
../example/cxxopts.hpp:513:31: warning: unused parameter ‘negative’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                          ~~~~~^~~~~~~~
../example/cxxopts.hpp:513:43: warning: unused parameter ‘value’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                         ~~^~~~~
../example/cxxopts.hpp:513:69: warning: unused parameter ‘text’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                                  ~~~~~~~~~~~~~~~~~~~^~~~
../example/cxxopts.hpp: In instantiation of ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&) [with T = unsigned int; U = unsigned int; std::string = std::__cxx11::basic_string<char>]’:
../example/cxxopts.hpp:594:36:   required from ‘void cxxopts::values::integer_parser(const std::string&, T&) [with T = unsigned int; std::string = std::__cxx11::basic_string<char>]’
../example/cxxopts.hpp:650:21:   required from here
../example/cxxopts.hpp:513:31: warning: unused parameter ‘negative’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                          ~~~~~^~~~~~~~
../example/cxxopts.hpp:513:43: warning: unused parameter ‘value’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                         ~~^~~~~
../example/cxxopts.hpp:513:69: warning: unused parameter ‘text’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                                  ~~~~~~~~~~~~~~~~~~~^~~~
../example/cxxopts.hpp: In instantiation of ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&) [with T = int; U = unsigned int; std::string = std::__cxx11::basic_string<char>]’:
../example/cxxopts.hpp:594:36:   required from ‘void cxxopts::values::integer_parser(const std::string&, T&) [with T = int; std::string = std::__cxx11::basic_string<char>]’
../example/cxxopts.hpp:657:21:   required from here
../example/cxxopts.hpp:513:31: warning: unused parameter ‘negative’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                          ~~~~~^~~~~~~~
../example/cxxopts.hpp:513:43: warning: unused parameter ‘value’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                         ~~^~~~~
../example/cxxopts.hpp:513:69: warning: unused parameter ‘text’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                                  ~~~~~~~~~~~~~~~~~~~^~~~
../example/cxxopts.hpp: In instantiation of ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&) [with T = long unsigned int; U = long unsigned int; std::string = std::__cxx11::basic_string<char>]’:
../example/cxxopts.hpp:594:36:   required from ‘void cxxopts::values::integer_parser(const std::string&, T&) [with T = long unsigned int; std::string = std::__cxx11::basic_string<char>]’
../example/cxxopts.hpp:664:21:   required from here
../example/cxxopts.hpp:513:31: warning: unused parameter ‘negative’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                          ~~~~~^~~~~~~~
../example/cxxopts.hpp:513:43: warning: unused parameter ‘value’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                         ~~^~~~~
../example/cxxopts.hpp:513:69: warning: unused parameter ‘text’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                                  ~~~~~~~~~~~~~~~~~~~^~~~
../example/cxxopts.hpp: In instantiation of ‘void cxxopts::values::detail::check_signed_range(bool, U, const std::string&) [with T = long int; U = long unsigned int; std::string = std::__cxx11::basic_string<char>]’:
../example/cxxopts.hpp:594:36:   required from ‘void cxxopts::values::integer_parser(const std::string&, T&) [with T = long int; std::string = std::__cxx11::basic_string<char>]’
../example/cxxopts.hpp:671:21:   required from here
../example/cxxopts.hpp:513:31: warning: unused parameter ‘negative’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                          ~~~~~^~~~~~~~
../example/cxxopts.hpp:513:43: warning: unused parameter ‘value’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                         ~~^~~~~
../example/cxxopts.hpp:513:69: warning: unused parameter ‘text’ [-Wunused-parameter]
  513 |       check_signed_range(bool negative, U value, const std::string& text)
      |                                                  ~~~~~~~~~~~~~~~~~~~^~~~
ninja: build stopped: subcommand failed.


[复验步骤]:
git clone https://github.com/libfuse/libfuse.git
cd libfuse
mkdir build
cd build
export PATH=/usr/local/bin/:$PATH
meson ..
ninja-build
ninja-build install
modprobe fuse
modprobe cuse
python3 -m pytest test/

[期望结果]
case pass

[实际结果]
用例编译失败


[测试环境]

[root@iZbp143ti4ccpaufkzata3Z build]# uname -r ; python -V
6.6.25-2_rc1.an23.aarch64
Python 3.10.13


[root@iZbp143ti4ccpaufkzata3Z build]# rpm -qa | grep gcc
libgcc-12.2.1-7.an23.aarch64
gcc-12.2.1-7.an23.aarch64
gcc-c++-12.2.1-7.an23.aarch64
[root@iZbp143ti4ccpaufkzata3Z build]# rpm -qa | grep libstdc++
libstdc++-12.2.1-7.an23.aarch64
libstdc++-devel-12.2.1-7.an23.aarch64

[出现频率]
必现

[原因分析]:
Comment 1 wanqian alibaba_cloud_group 2024-04-22 11:32:11 UTC
多开的,无效关闭