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

Willy Tu wltu at google.com
Wed Jun 29 01:49:06 AEST 2022


Hi Chris,

Are you building these locally? I would recommend using the docker that
setup all the required environments for the build.

See
https://github.com/openbmc/openbmc-build-scripts/blob/master/scripts/build-unit-test-docker
for
reference.

If you insist to build locally,

For
```
configure.ac:38: error: invalid first argument `20' to AX_CXX_COMPILE_STDCXX
/usr/share/aclocal/ax_cxx_compile_stdcxx.m4:50: AX_CXX_COMPILE_STDCXX is
expanded from...
configure.ac:38: the top level
```, you will need to setup with the command in
https://github.com/openbmc/openbmc-build-scripts/commit/3ea4cd7e18d607de59fedc5eae4f3e536e0632a4

For the `pam ` issue, you will need to install `libpam0g-dev`.

Best,

Willy Tu

On Tue, Jun 28, 2022 at 8:04 AM Chris Chen (TPI) <Chris.Chen3 at flex.com>
wrote:

> Hi Patrick,
>
> Thanks for your prompt reply, and the issue is solved after installing
> Ubuntu "libfmt-dev" package.
>
> >> Do you know why you disabled C++20?  This shouldn't have been necessary
> >> and some of our code now requires C++20.
>
> I disabled C++20 of the "ipmi-blob-tool" package because I got errors
> below:
> =====
> archer at archer-ArcherCityM:ipmi-blob-tool$ ./bootstrap.sh
> + autoreconf -v -f -i
> autoreconf: export WARNINGS=
> autoreconf: Entering directory '.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal --force -I m4
> configure.ac:38: error: invalid first argument `20' to
> AX_CXX_COMPILE_STDCXX
> /usr/share/aclocal/ax_cxx_compile_stdcxx.m4:50: AX_CXX_COMPILE_STDCXX is
> expanded from...
> configure.ac:38: the top level
> autom4te: error: /usr/bin/m4 failed with exit status: 1
> aclocal: error: /usr/bin/autom4te failed with exit status: 1
> autoreconf: error: aclocal failed with exit status: 1
> =====
> Do you have ideas about how to solve it correctly?
>
> 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:
>
>    - 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?
>    -----
>    meson setup -Dbmc-blob-handler=disabled builddir
>    ninja -C builddir
>    ninja -C builddir install
>    - -----
>
>    - 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?
>
>    - 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?
>    - =====
>    - Dependency sdeventplus from subproject subprojects/sdeventplus
>    found: YES 0.1
>    Dependency systemd found: YES 249 (cached)
>    Run-time dependency libcrypto found: YES 3.0.2
>
>    meson.build:89:0: ERROR: C++ shared or static library 'pam' not found
>    =====
>
> Thanks.
>
> Regards,
> Chris Chen
>
> ------------------------------
> *寄件者:* Patrick Williams
> *已傳送:* 星期二, 2022 6 月 28 日 下午 07:20
> *收件者:* Chris Chen (TPI)
> *副本:* openbmc at lists.ozlabs.org
> *主旨:* Re: [phosphor-ipmi-flash]: stdplus build failed before building the
> host-tool on the Host
>
> On Tue, Jun 28, 2022 at 08:43:34AM +0000, Chris Chen (TPI) wrote:
> > 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.
>
> Do you know why you disabled C++20?  This shouldn't have been necessary
> and some of our code now requires C++20.
>
> >
> > =====
> > 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
>
> Where did this `fmt` come from?  Ubuntu has `libfmt-dev` that you can
> install which is version 8.1.1 on Jammy right now.
>
> > 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
>
> However you obtained your libfmt, it was compiled incorrectly.  It
> shouldn't have a static library but a dynamic one.
>
> The `libfmt-dev` package has `libfmt.so` which should be sufficient for
> linking as a shared library.
>
> --
> Patrick Williams
> 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/d354bfd1/attachment-0001.htm>


More information about the openbmc mailing list