openbmc / bmcweb

A do everything Redfish, KVM, GUI, and DBus webserver for OpenBMC
Apache License 2.0
156 stars 131 forks source link

ninja: build stopped: subcommand failed. #156

Closed hsj928 closed 3 years ago

hsj928 commented 3 years ago

root@b436cbc8de46:/shared/bmcweb# ninja -C builddir1 ninja: Entering directory `builddir1' [2/29] Compiling C++ object subprojects/tinyxml2-7.0.1/xmltest.p/xmltest.cpp.o ../subprojects/tinyxml2-7.0.1/xmltest.cpp: In function 'int main(int, const char*)': ../subprojects/tinyxml2-7.0.1/xmltest.cpp:707:10: warning: ignoring return value of 'char fgets(char, int, FILE)', declared with attribute warn_unused_result [-Wunused-result] 707 | fgets( savedBuf, 256, saved ); | ~^~~~~~~~ ../subprojects/tinyxml2-7.0.1/xmltest.cpp:1067:9: warning: ignoring return value of 'char fgets(char, int, FILE)', declared with attribute warn_unused_result [-Wunused-result] 1067 | fgets( buf, 1024, textfile ); | ~^~~~~~~ [28/29] Compiling C++ object bmcweb.p/src_webserver_main.cpp.o FAILED: bmcweb.p/src_webserver_main.cpp.o c++ -Ibmcweb.p -I. -I.. -I../include -I../redfish-core/include -I../redfish-core/lib -I../http -I../subprojects/nlohmann/single_include -I../subprojects/nlohmann/single_include/nlohmann -I/usr/local/include -flto -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Wpedantic -std=c++17 -O2 -g -DBMCWEB_ENABLE_SSL -DBMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET -DBMCWEB_ENABLE_KVM -DBMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION -DWEBSERVER_ENABLE_PAM -DBMCWEB_ENABLE_REDFISH -DBMCWEB_ENABLE_DBUS_REST -DBMCWEB_ENABLE_STATIC_HOSTING -DBMCWEB_ENABLE_VM_WEBSOCKET -DBMCWEB_ENABLE_IBM_MANAGEMENT_CONSOLE -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wsign-conversion -Wno-attributes -Wno-stringop-overflow -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wunused-parameter -Wnull-dereference -Wdouble-promotion -Wformat=2 -fno-fat-lto-objects -fvisibility=hidden -fvisibility-inlines-hidden -DBMCWEB_ENABLE_LOGGING -DBMCWEB_ENABLE_DEBUG -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT -DBOOST_ASIO_DISABLE_THREADS -DBOOST_BEAST_USE_STD_STRING_VIEW -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_ASIO_NO_DEPRECATED -DBOOST_NO_RTTI -DBOOST_NO_TYPEID -DBOOST_COROUTINES_NO_DEPRECATION_WARNING -DBOOST_URL_STANDALONE -DBOOST_URL_HEADER_ONLY -DBOOST_ALL_NO_LIB -isystem../subprojects/tinyxml2-7.0.1 -isystemsubprojects/tinyxml2-7.0.1 -isystem../subprojects/sdbusplus/include -isystem../subprojects/boost-url/include -MD -MQ bmcweb.p/src_webserver_main.cpp.o -MF bmcweb.p/src_webserver_main.cpp.o.d -o bmcweb.p/src_webserver_main.cpp.o -c ../src/webserver_main.cpp In file included from /usr/include/systemd/sd-bus.h:125, from ../include/sdbusplus/asio/detail/async_send_handler.hpp:18, from ../include/sdbusplus/asio/connection.hpp:30, from ../include/dbus_singleton.hpp:2, from ../include/sessions.hpp:14, from ../http/http_request.h:5, from ../http/app.h:3, from ../src/webserver_main.cpp:1: ../include/sdbusplus/vtable.hpp: In function 'constexpr sdbusplus::vtable::vtable_t sdbusplus::vtable::start(uint64_t)': ../include/sdbusplus/vtable.hpp:124:41: warning: conversion from 'uint64_t' {aka 'long unsigned int'} to 'long unsigned int:56' may change value [-Wconversion] 124 | return vtable_t SD_BUS_VTABLE_START(flags); | ^~~~~ ../include/sdbusplus/vtable.hpp: In function 'constexpr sdbusplus::vtable::vtable_t sdbusplus::vtable::method(const char, const char, const char, sd_bus_message_handler_t, uint64_t)': ../include/sdbusplus/vtable.hpp:136:71: warning: conversion from 'uint64_t' {aka 'long unsigned int'} to 'long unsigned int:56' may change value [-Wconversion] 136 | return vtable_t SD_BUS_METHOD(member, signature, result, handler, flags); | ^~~~~ ../include/sdbusplus/vtable.hpp: In function 'constexpr sdbusplus::vtable::vtable_t sdbusplus::vtable::method_o(const char, const char, const char, sd_bus_message_handler_t, size_t, uint64_t)': ../include/sdbusplus/vtable.hpp:145:64: warning: conversion from 'uint64_t' {aka 'long unsigned int'} to 'long unsigned int:56' may change value [-Wconversion] 145 | handler, offset, flags); | ^~~~~ ../include/sdbusplus/vtable.hpp: In function 'constexpr sdbusplus::vtable::vtable_t sdbusplus::vtable::signal(const char, const char, uint64_t)': ../include/sdbusplus/vtable.hpp:151:54: warning: conversion from 'uint64_t' {aka 'long unsigned int'} to 'long unsigned int:56' may change value [-Wconversion] 151 | return vtable_t SD_BUS_SIGNAL(member, signature, flags); | ^~~~~ ../include/sdbusplus/vtable.hpp: In function 'constexpr sdbusplus::vtable::vtable_t sdbusplus::vtable::property(const char, const char, sd_bus_property_get_t, uint64_t)': ../include/sdbusplus/vtable.hpp:158:64: warning: conversion from 'uint64_t' {aka 'long unsigned int'} to 'long unsigned int:56' may change value [-Wconversion] 158 | return vtable_t SD_BUS_PROPERTY(member, signature, get, 0, flags); | ^~~~~ ../include/sdbusplus/vtable.hpp: In function 'constexpr sdbusplus::vtable::vtable_t sdbusplus::vtable::property(const char, const char, sd_bus_property_get_t, sd_bus_property_set_t, uint64_t)': ../include/sdbusplus/vtable.hpp:167:46: warning: conversion from 'uint64_t' {aka 'long unsigned int'} to 'long unsigned int:56' may change value [-Wconversion] 167 | flags); | ^~~~~ ../include/sdbusplus/vtable.hpp: In function 'constexpr sdbusplus::vtable::vtable_t sdbusplus::vtable::property_o(const char, const char, size_t, uint64_t)': ../include/sdbusplus/vtable.hpp:173:73: warning: conversion from 'uint64_t' {aka 'long unsigned int'} to 'long unsigned int:56' may change value [-Wconversion] 173 | return vtable_t SD_BUS_PROPERTY(member, signature, nullptr, offset, flags); | ^~~~~ ../include/sdbusplus/vtable.hpp: In function 'constexpr sdbusplus::vtable::vtable_t sdbusplus::vtable::property_o(const char, const char*, sd_bus_property_set_t, size_t, uint64_t)': ../include/sdbusplus/vtable.hpp:181:54: warning: conversion from 'uint64_t' {aka 'long unsigned int'} to 'long unsigned int:56' may change value [-Wconversion] 181 | offset, flags); | ^~~~~ In file included from ../include/sdbusplus/server.hpp:18, from ../src/webserver_main.cpp:17: ../include/sdbusplus/server/transaction.hpp: In constructor 'sdbusplus::server::transaction::details::Transaction::Transaction()': ../include/sdbusplus/server/transaction.hpp:25:35: warning: conversion from 'time_t' {aka 'long int'} to 'int' may change value [-Wconversion] 25 | Transaction() : time(std::time(nullptr)), thread(std::this_thread::get_id()) | ~~~^~~ ../include/sdbusplus/server/transaction.hpp: In member function 'auto std::hash::operator()(sdbusplus::message::message&) const': ../include/sdbusplus/server/transaction.hpp:85:56: warning: conversion to 'long unsigned int' from 'std::chrono::duration<long int, std::ratio<1, 1000000000> >::rep' {aka 'long int'} may change the sign of the result [-Wsign-conversion] 83 | return std::hash{}(std::chrono::steady_clock::now() | ~~~~~~~~ 84 | .time_since_epoch() | ~~~~~~~ 85 | .count()); | ~~^~ {standard input}: Assembler messages: {standard input}:6893507: Warning: end of file in string; '"' inserted c++: fatal error: Killed signal terminated program cc1plus compilation terminated. ninja: build stopped: subcommand failed.

It is compiled by Docker, but every time it is compiled to this place, the above error will appea. I tried some methods, such as in ~ /. Bashrc add "export LC_ALL = C", in "/ etc/security/limits. conf add

manojkiraneda commented 3 years ago

@hsj928 are you using your own docker environment for building the bmcweb ?

please use ./build_x86_docker.sh script present in the bmcweb repo for the compiling, this script is being maintained.

edtanous commented 3 years ago

Haven't seen any feedback on this for a few weeks, so I'm going to assume the first comment solved the issue. Please reopen if this is still an issue.

muhamadluthfi61 commented 3 years ago

Hi, I tried to run the script. But there is an error and no container is running for it. It uses meson_option.txt for the config right?

manojkiraneda commented 3 years ago

@muhamadluthfi61 can you explain a little bit about what you are trying and what is the error ? without that its tuff to figure out whats the issue.

I did try to run the ./build_x86_docker.sh script present in the bmcweb repo , and it did build the bmcweb binary without any problem.

Here are the traces for reference :

Removing intermediate container d82e0c28bb9a
 ---> 6d05cdaec329
Step 5/5 : WORKDIR /build
 ---> Running in a027aa692575
Removing intermediate container a027aa692575
 ---> 6a68be6dd6a6
Successfully built 6a68be6dd6a6
Successfully tagged bmcweb-base:latest
Sending build context to Docker daemon  6.861MB
Step 1/5 : FROM bmcweb-base
 ---> 6a68be6dd6a6
Step 2/5 : ADD . /source
 ---> 116120bbbfc1
Step 3/5 : RUN ninja -C /source/build
 ---> Running in e6a4a09956ef
ninja: Entering directory `/source/build'
ninja: no work to do.
Removing intermediate container e6a4a09956ef
 ---> 00db756711de
Step 4/5 : RUN mkdir -p /usr/share/www
 ---> Running in 5bb488aa5582
Removing intermediate container 5bb488aa5582
 ---> 6711cc594d0f
Step 5/5 : CMD ["/build/bmcweb"]
 ---> Running in a714ee4c9090
Removing intermediate container a714ee4c9090
 ---> 890b7a7caa70
Successfully built 890b7a7caa70
Successfully tagged bmcweb:latest
muhamadluthfi61 commented 3 years ago

In Step 4/5 FAILED: bmcweb c++ -o bmcweb bmcweb.p/src_webserver_main.cpp.o bmcweb.p/redfish-core_src_error_messages.cpp.o bmcweb.p/redfish-core_src_utils_json_utils.cpp.o -flto -Wl,--as-needed -Wl,--no-undefined -Wl,--exclude-libs,ALL -Wno-stringop-overflow '-Wl,-rpath,$ORIGIN/subprojects/sdbusplus' -Wl,-rpath-link,/source/build/subprojects/sdbusplus -Wl,--start-group subprojects/sdbusplus/libsdbusplus.so.1.0.0 -Wl,--gc-sections -latomic /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/x86_64-linux-gnu/libcrypto.so /lib/x86_64-linux-gnu/libsystemd.so /usr/lib/x86_64-linux-gnu/libtinyxml2.so /usr/lib/x86_64-linux-gnu/libz.so -Wl,--end-group /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans105.ltrans.o: in function redfish::ManagerAccount::updateUserProperties(std::shared_ptr<redfish::AsyncResp>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::optional<bool>, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::optional<bool>)::{lambda(int)#1}::operator()(int) const': /source/build/../include/pam_authenticate.hpp:100: undefined reference topam_start' /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans105.ltrans.o:/source/build/../include/pam_authenticate.hpp:108: undefined reference to pam_chauthtok' /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans105.ltrans.o:/source/build/../include/pam_authenticate.hpp:115: undefined reference topam_end' /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans105.ltrans.o:/source/build/../include/pam_authenticate.hpp:111: undefined reference to pam_end' /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans105.ltrans.o: in functionredfish::AccountsCollection::doPost(crow::Response&, crow::Request const&, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)::{lambda(boost::system::error_code, std::variant<std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&)#1}::operator()(boost::system::error_code, std::variant<std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) const::{lambda(boost::system::error_code, sdbusplus::message::message&)#1}::operator()(boost::system::error_code, sdbusplus::message::message) const': /source/build/../include/pam_authenticate.hpp:100: undefined reference to pam_start' /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans105.ltrans.o:/source/build/../include/pam_authenticate.hpp:108: undefined reference topam_chauthtok' /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans105.ltrans.o:/source/build/../include/pam_authenticate.hpp:115: undefined reference to pam_end' /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans105.ltrans.o:/source/build/../include/pam_authenticate.hpp:111: undefined reference topam_end' /usr/bin/ld: /tmp/bmcweb.yhbEO4.ltrans114.ltrans.o: in function pamAuthenticateUser(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >)': /source/build/../include/pam_authenticate.hpp:67: undefined reference topam_start' /usr/bin/ld: /source/build/../include/pam_authenticate.hpp:74: undefined reference to pam_authenticate' /usr/bin/ld: /source/build/../include/pam_authenticate.hpp:83: undefined reference topam_acct_mgmt' /usr/bin/ld: /source/build/../include/pam_authenticate.hpp:90: undefined reference to pam_end' /usr/bin/ld: /source/build/../include/pam_authenticate.hpp:78: undefined reference topam_end' /usr/bin/ld: /source/build/../include/pam_authenticate.hpp:86: undefined reference to `pam_end' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Removing intermediate container b9d7ce862708 The command '/bin/sh -c cd source && meson setup build && meson compile -C build' returned a non-zero code: 1

hsj928 commented 3 years ago

Sorry, I haven't paid attention to this problem for a long time. The cause of this problem should be insufficient memory. I changed the compilation environment and compiled successfully.

muhamadluthfi61 commented 3 years ago

Now It's already working. Thank you