openbmc / bmcweb

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

Build error when nlohmann-json is too old #113

Closed wilhelmy closed 4 years ago

wilhelmy commented 4 years ago

I tried with 3.3.0 and 3.4.0, with both I get the following error, while 3.7.3 works. (I didn't check the minimum working release)

/srv/build/mw/openbmc-private/build/tmp/work/armv6-openbmc-linux-gnueabi/bmcweb/1.0+git999-r0/recipe-sysroot-native/usr/bin/arm-openbmc-linux-gnueabi/arm-openbmc-linux-gnueabi-g++  -DBMCWEB_ENABLE_DBUS_REST -DBMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET -DBMCWEB_ENABLE_KVM -DBMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION -DBMCWEB_ENABLE_REDFISH -DBMCWEB_ENABLE_SSL -DBMCWEB_ENABLE_STATIC_HOSTING -DBMCWEB_ENABLE_VM_WEBSOCKET -DBMCWEB_INSECURE_DISABLE_CSRF_PREVENTION -DBMCWEB_INSECURE_DISABLE_XSS_PREVENTION -DBOOST_ALL_NO_LIB -DBOOST_ASIO_DISABLE_THREADS -DBOOST_BEAST_USE_STD_STRING_VIEW -DBOOST_COROUTINES_NO_DEPRECATION_WARNING -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_NO_RTTI -DBOOST_NO_TYPEID -DBOOST_SYSTEM_NO_DEPRECATED -I/srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/http -I/srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/include -I/srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/redfish-core/include -I/srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/redfish-core/lib -Iinclude -march=armv6 -marm -mtune=arm1176jz-s  --sysroot=/srv/build/mw/openbmc-private/build/tmp/work/armv6-openbmc-linux-gnueabi/bmcweb/1.0+git999-r0/recipe-sysroot  -Os -pipe  -fvisibility-inlines-hidden  -march=armv6 -marm -mtune=arm1176jz-s  --sysroot=/srv/build/mw/openbmc-private/build/tmp/work/armv6-openbmc-linux-gnueabi/bmcweb/1.0+git999-r0/recipe-sysroot     -fno-rtti      -Wall     -Wextra     -Wnon-virtual-dtor     -Wold-style-cast     -Wcast-align     -Wunused     -Woverloaded-virtual     -Wpedantic     -Wconversion     -Wsign-conversion     -Wnull-dereference     -Wdouble-promotion     -Wformat=2     -Wno-unused-parameter              -Werror             -Wduplicated-cond             -Wduplicated-branches             -Wlogical-op             -Wnull-dereference             -Wdouble-promotion             -Wformat=2             -Wno-unused-parameter          -flto -fno-fat-lto-objects         -fvisibility=hidden         -fvisibility-inlines-hidden         -Wl,--exclude-libs,ALL   -Wno-attributes -std=gnu++17 -MD -MT CMakeFiles/bmcweb.dir/src/webserver_main.cpp.o -MF CMakeFiles/bmcweb.dir/src/webserver_main.cpp.o.d -o CMakeFiles/bmcweb.dir/src/webserver_main.cpp.o -c /srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/src/webserver_main.cpp
In file included from /srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/redfish-core/include/redfish.hpp:34,
                 from /srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/src/webserver_main.cpp:13:
/srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/redfish-core/include/../lib/storage.hpp: In lambda function:
/srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/redfish-core/include/../lib/storage.hpp:168:42: error: invalid initialization of non-const reference of type 'nlohmann::json&' {aka 'nlohmann::basic_json<>&'} from an rvalue of type 'void'
                         root.emplace_back(nlohmann::json::object());
                         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
WARNING: exit code 1 from a shell command.
WARNING: /srv/build/mw/openbmc-private/poky/bitbake/lib/bb/build.py:570: ResourceWarning: unclosed file <_io.TextIOWrapper name='/srv/build/mw/openbmc-private/build/workspace/sources/bmcweb/singletask.lock' mode='a+' encoding='UTF-8'>
  exec_func(task, localdata)

ERROR: Function failed: do_compile (log file is located at /srv/build/mw/openbmc-private/build/tmp/work/armv6-openbmc-linux-gnueabi/bmcweb/1.0+git999-r0/temp/log.do_compile.740)
feistjj commented 4 years ago

Supported version is here: https://github.com/openbmc/bmcweb/blob/bd5db5221f1a295da61a3e4dba0c48724e090825/CMakeLists.txt.in#L49

feistjj commented 4 years ago

Not an issue, emplace_back was not supported in early versions of nlohmann. Please comment if there are other issues.