Closed hsj928 closed 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.
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.
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?
@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
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 to
pam_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 to
pam_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 function
redfish::AccountsCollection::doPost(crow::Response&, crow::Request const&, std::vector<std::cxx11::basic_string<char, std::char_traitspam_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 to pam_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.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 to
pam_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 to
pam_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 to
pam_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
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.
Now It's already working. Thank you
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 ); |::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()
|
~^~~~~~~~ ../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~~~~~~~~ 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