[phosphor-ipmi-flash]: stdplus build failed before building the host-tool on the Host

Chris Chen (TPI) Chris.Chen3 at flex.com
Tue Jun 28 18:43:34 AEST 2022

Hi everyone,

I for now am trying to enable the In-Band Update of BMC Firmware using OEM IPMI Blob Transport feature. So I followed the README.md in the phosphor-ipmi-flash repo to build the host-tool on the Host, the Host is running the Ubuntu 22.04 with installing gcc, g++, cmake, and meson tools which versions are as below:
archer at archer-ArcherCityM:stdplus$ gcc --version
gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0
archer at archer-ArcherCityM:stdplus$ g++ --version
g++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0
archer at archer-ArcherCityM:stdplus$ cmake --version
cmake version 3.22.1
archer at archer-ArcherCityM:stdplus$ meson --version

And each library and tool is built successful(only one thing that is I had to disable C++20 for the ipmi-blob-tool, others were fine) untilI started to build the stdplus. I encountered a build failed issue as below. It looks like there is a problem for using libfmt.a, I tried to figure out a solution on google but nothing is related to this. Could anyone help on this? Thanks.

archer at archer-ArcherCityM:stdplus$
archer at archer-ArcherCityM:stdplus$ meson setup -Dexamples=false -Dtests=disabled builddir
The Meson build system
Version: 0.61.2
Source dir: /home/archer/Downloads/host-tool/stdplus
Build dir: /home/archer/Downloads/host-tool/stdplus/builddir
Build type: native build
Project name: stdplus
Project version: 0.1
C++ compiler for the host machine: c++ (gcc 11.2.0 "c++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0")
C++ linker for the host machine: c++ ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency fmt found: YES 8.1.2
Library dl found: YES
Run-time dependency liburing found: YES 2.0
Build targets in project: 1

stdplus 0.1

  User defined options
    examples: false
    tests   : disabled

Found ninja-1.10.1 at /usr/bin/ninja
archer at archer-ArcherCityM:stdplus$
archer at archer-ArcherCityM:stdplus$
archer at archer-ArcherCityM:stdplus$ ninja -C builddir
ninja: Entering directory `builddir'
[9/9] Linking target src/libstdplus.so.0.1
FAILED: src/libstdplus.so.0.1
c++  -o src/libstdplus.so.0.1 src/libstdplus.so.0.1.p/stdplus_exception.cpp.o src/libstdplus.so.0.1.p/stdplus_signal.cpp.o src/libstdplus.so.0.1.p/stdplus_dl.cpp.o src/libstdplus.so.0.1.p/stdplus_fd_create.cpp.o src/libstdplus.so.0.1.p/stdplus_fd_dupable.cpp.o src/libstdplus.so.0.1.p/stdplus_fd_impl.cpp.o src/libstdplus.so.0.1.p/stdplus_fd_managed.cpp.o src/libstdplus.so.0.1.p/stdplus_fd_mmap.cpp.o src/libstdplus.so.0.1.p/stdplus_fd_ops.cpp.o src/libstdplus.so.0.1.p/stdplus_io_uring.cpp.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libstdplus.so.0 /usr/local/lib/libfmt.a -ldl /usr/lib/x86_64-linux-gnu/liburing.so -Wl,--end-group
/usr/bin/ld: /usr/local/lib/libfmt.a(format.cc.o): warning: relocation against `stdout@@GLIBC_2.2.5' in read-only section `.text'
/usr/bin/ld: /usr/local/lib/libfmt.a(format.cc.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Of course, I have not the burn_my_bmc (the host-tool) yet.

Chris Chen

Legal Disclaimer :
The information contained in this message may be privileged and confidential. 
It is intended to be read only by the individual or entity to whom it is addressed 
or by their designee. If the reader of this message is not the intended recipient, 
you are on notice that any distribution of this message, in any form, 
is strictly prohibited. If you have received this message in error, 
please immediately notify the sender and delete or destroy any copy of this message!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20220628/8a643891/attachment-0001.htm>

More information about the openbmc mailing list