<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi Patrick,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Thanks for your prompt reply, and the issue is solved after installing Ubuntu "libfmt-dev" package.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
>> Do you know why you disabled C++20?  This shouldn't have been necessary </div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
>> and some of our code now requires C++20.<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
I disabled C++20 of the "ipmi-blob-tool" package because I got errors below:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
=====</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
archer@archer-ArcherCityM:ipmi-blob-tool$ ./bootstrap.sh
<div>+ autoreconf -v -f -i</div>
<div>autoreconf: export WARNINGS=</div>
<div>autoreconf: Entering directory '.'</div>
<div>autoreconf: configure.ac: not using Gettext</div>
<div>autoreconf: running: aclocal --force -I m4</div>
<div>configure.ac:38: error: invalid first argument `20' to AX_CXX_COMPILE_STDCXX</div>
<div>/usr/share/aclocal/ax_cxx_compile_stdcxx.m4:50: AX_CXX_COMPILE_STDCXX is expanded from...</div>
<div>configure.ac:38: the top level</div>
<div>autom4te: error: /usr/bin/m4 failed with exit status: 1</div>
<div>aclocal: error: /usr/bin/autom4te failed with exit status: 1</div>
autoreconf: error: aclocal failed with exit status: 1<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
=====</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Do you have ideas about how to solve it correctly?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
In addition, i have started to build the burn_my_bmc (the host-tool) on the Host by cloning the "phosphor-ipmi-flash" source. There are some questions came out:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<ul>
<li>The "phosphor-ipmi-flash" package seems became to use "meson" rather than "bootstrap.sh", so I run these commands in the source directory. Is it correct?<br>
-----<br>
meson setup -Dbmc-blob-handler=disabled builddir<br>
ninja -C builddir<br>
ninja -C builddir install</li><li style="display:block">-----<br>
<br>
</li><li>
<div>After running "meson setup -Dbmc-blob-handler=disabled builddir", it occurred dependency errors, like 'sdbusplus', 'phosphor-dbus-interfaces', 'libipmid', and so on is required respectively, is it correct?<span style="background-color:rgb(255, 255, 255);display:inline !important"><br>
</span></div>
<span style="background-color:rgb(255, 255, 255);display:inline !important"><br>
</span></li><li><span style="background-color:rgb(255, 255, 255);display:inline !important">I for now have tried to install these dependencies one-by-one, but be stuck at 'libipmid'. That is I clone the "phosphor-host-ipmid" and run "meson builddir" command to build it,
 however, I got an error in blow and I can't solve it. Could you please give me some suggestions?</span></li><li style="display:block"><span style="background-color:rgb(255, 255, 255);display:inline !important">=====</span></li><li style="display:block"><span style="background-color:rgb(255, 255, 255);display:inline !important">Dependency sdeventplus from subproject subprojects/sdeventplus found: YES 0.1
<div>Dependency systemd found: YES 249 (cached)</div>
<div>Run-time dependency libcrypto found: YES 3.0.2</div>
<div><br>
</div>
<div>meson.build:89:0: ERROR: C++ shared or static library 'pam' not found</div>
=====</span></li></ul>
<div><span style="background-color:rgb(255, 255, 255);display:inline !important">Thanks.</span></div>
<div><br>
</div>
<div>Regards,</div>
<div>Chris Chen</div>
</div>
<div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0);">
<br>
<hr tabindex="-1" style="display:inline-block; width:98%;">
<b>寄件者:</b> Patrick Williams<br>
<b>已傳送:</b> 星期二, 2022 6 月 28 日 下午 07:20<br>
<b>收件者:</b> Chris Chen (TPI)<br>
<b>副本:</b> openbmc@lists.ozlabs.org<br>
<b>主旨:</b> Re: [phosphor-ipmi-flash]: stdplus build failed before building the host-tool on the Host
<div><br>
</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText elementToProof">On Tue, Jun 28, 2022 at 08:43:34AM +0000, Chris Chen (TPI) wrote:<br>
> 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.<br>
<br>
Do you know why you disabled C++20?  This shouldn't have been necessary<br>
and some of our code now requires C++20.<br>
<br>
> <br>
> =====<br>
> archer@archer-ArcherCityM:stdplus$<br>
> archer@archer-ArcherCityM:stdplus$ meson setup -Dexamples=false -Dtests=disabled builddir<br>
> The Meson build system<br>
> Version: 0.61.2<br>
> Source dir: /home/archer/Downloads/host-tool/stdplus<br>
> Build dir: /home/archer/Downloads/host-tool/stdplus/builddir<br>
> Build type: native build<br>
> Project name: stdplus<br>
> Project version: 0.1<br>
> C++ compiler for the host machine: c++ (gcc 11.2.0 "c++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0")<br>
> C++ linker for the host machine: c++ ld.bfd 2.38<br>
> Host machine cpu family: x86_64<br>
> Host machine cpu: x86_64<br>
> Found pkg-config: /usr/bin/pkg-config (0.29.2)<br>
> Run-time dependency fmt found: YES 8.1.2<br>
<br>
Where did this `fmt` come from?  Ubuntu has `libfmt-dev` that you can<br>
install which is version 8.1.1 on Jammy right now.<br>
<br>
> Library dl found: YES<br>
> Run-time dependency liburing found: YES 2.0<br>
> Build targets in project: 1<br>
> <br>
> stdplus 0.1<br>
> <br>
>   User defined options<br>
>     examples: false<br>
>     tests   : disabled<br>
> <br>
> Found ninja-1.10.1 at /usr/bin/ninja<br>
> archer@archer-ArcherCityM:stdplus$<br>
> archer@archer-ArcherCityM:stdplus$<br>
> archer@archer-ArcherCityM:stdplus$ ninja -C builddir<br>
> ninja: Entering directory `builddir'<br>
> [9/9] Linking target src/libstdplus.so.0.1<br>
> FAILED: src/libstdplus.so.0.1<br>
> 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<br>
> /usr/bin/ld: /usr/local/lib/libfmt.a(format.cc.o): warning: relocation against `stdout@@GLIBC_2.2.5' in read-only section `.text'<br>
> /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<br>
<br>
However you obtained your libfmt, it was compiled incorrectly.  It<br>
shouldn't have a static library but a dynamic one.<br>
<br>
The `libfmt-dev` package has `libfmt.so` which should be sufficient for<br>
linking as a shared library.<br>
<br>
-- <br>
Patrick Williams<br>
</div>
</span></font></div>
</div>

<DIV>
Legal Disclaimer :<BR>
The information contained in this message may be privileged and confidential. <BR>
It is intended to be read only by the individual or entity to whom it is addressed <BR>
or by their designee. If the reader of this message is not the intended recipient, <BR>
you are on notice that any distribution of this message, in any form, <BR>
is strictly prohibited. If you have received this message in error, <BR>
please immediately notify the sender and delete or destroy any copy of this message!<BR>
</DIV></body>
</html>