Re: libquadmath


staticd
 

One final update for anyone who might run into this problem.

With all of my fiddling/twiddling I failed to get libquadmath to build under the `zeus` branch.  Unfortunately, my other layer dependencies only support `zeus` so it seems I will have to wait until they support a branch that can build `libquadmath`.

I am fairly certain there is just a simple mistake somewhere but, alas, I have been unable to find where that is.

On Mon, Jan 3, 2022 at 4:55 PM staticd <staticd@...> wrote:
I made some progress...

It turns out that libquadmath is failing to build.

When I goto the `build/tmp/work/...../gcc-runtime/9.2.0-r0/gcc-9.2.0/build.arm-oe-linux-gnueabi.arm-oe-linux-gnueabi/arm-oe-linux-gnueabi/libquadmath` directory, the only files that are there are:
```
libquadmath  ] ls -l
total 476
-rw-r--r--. 1 2017 oe-builder   4433 Jan  3 16:17 config.h
-rw-r--r--. 1 2017 oe-builder  69297 Jan  3 16:17 config.log
-rwxr-xr-x. 1 2017 oe-builder  77122 Jan  3 16:17 config.status
-rwxr-xr-x. 1 2017 oe-builder 267083 Jan  3 16:17 libtool
-rw-r--r--. 1 2017 oe-builder  57241 Jan  3 16:17 Makefile
-rw-r--r--. 1 2017 oe-builder     23 Jan  3 16:17 stamp-h1
```
In the config.log, there are errors, some of which are expected, but still:
```
libquadmath  ] grep -i error config.log
arm-oe-linux-gnueabi-gcc: error: unrecognized command line option '-V'
arm-oe-linux-gnueabi-gcc: fatal error: no input files
arm-oe-linux-gnueabi-gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
arm-oe-linux-gnueabi-gcc: fatal error: no input files
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
arm-oe-linux-gnueabi-gcc: error: unrecognized command line option '-V'
arm-oe-linux-gnueabi-gcc: fatal error: no input files
arm-oe-linux-gnueabi-gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
arm-oe-linux-gnueabi-gcc: fatal error: no input files
conftest.c:28:10: fatal error: ac_nonexistent.h: No such file or directory
configure:12551: arm-oe-linux-gnueabi-gcc  -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/oe-builder/build/tmp-glibc/work/cortexa9t2hf-neon-oe-linux-gnueabi/gcc-runtime/9.2.0-r0/recipe-sysroot -c  -O2 -pipe -g -feliminate-unused-debug-types     -fdebug-prefix-map=/home/oe-builder/build/tmp-glibc/work/cortexa9t2hf-neon-oe-linux-gnueabi/gcc-runtime/9.2.0-r0/recipe-sysroot=    -fdebug-prefix-map=/home/oe-builder/build/tmp-glibc/work/cortexa9t2hf-neon-oe-linux-gnueabi/gcc-runtime/9.2.0-r0/recipe-sysroot-native=    -fdebug-prefix-map=/home/oe-builder/build/tmp-glibc/work-shared/gcc-9.2.0-r0/gcc-9.2.0=/usr/src/debug/gcc-runtime/9.2.0-r0    -fdebug-prefix-map=/home/oe-builder/build/tmp-glibc/work-shared/gcc-9.2.0-r0/gcc-9.2.0/include=/usr/src/debug/gcc-runtime/9.2.0-r0/libstdc++-v3/../include    -fdebug-prefix-map=/home/oe-builder/build/tmp-glibc/work-shared/gcc-9.2.0-r0/gcc-9.2.0/libiberty=/usr/src/debug/gcc-runtime/9.2.0-r0/libstdc++-v3/../libiberty    -fdebug-prefix-map=/home/oe-builder/build/tmp-glibc/work/cortexa9t2hf-neon-oe-linux-gnueabi/gcc-runtime/9.2.0-r0/gcc-9.2.0/build.arm-oe-linux-gnueabi.arm-oe-linux-gnueabi=/usr/src/debug/gcc-runtime/9.2.0-r0     -Werror  conftest.c >&5
glibcxx_cv_system_error10=yes
glibcxx_cv_system_error11=yes
glibcxx_cv_system_error12=yes
glibcxx_cv_system_error13=yes
glibcxx_cv_system_error14=yes
glibcxx_cv_system_error15=yes
glibcxx_cv_system_error16=yes
glibcxx_cv_system_error17=yes
glibcxx_cv_system_error18=yes
glibcxx_cv_system_error19=yes
glibcxx_cv_system_error1=yes
glibcxx_cv_system_error2=yes
glibcxx_cv_system_error3=yes
glibcxx_cv_system_error4=yes
glibcxx_cv_system_error5=yes
glibcxx_cv_system_error6=yes
glibcxx_cv_system_error7=yes
glibcxx_cv_system_error8=yes
glibcxx_cv_system_error9=yes
```
If I check out another library that I expect to get, like, `libitm`, I see:
```
libquadmath  ] ls -trl ../libitm/
total 2872
-rwxr-xr-x. 1 2017 oe-builder  97435 Jan  3 16:17 config.status
-rw-r--r--. 1 2017 oe-builder  47665 Jan  3 16:17 Makefile
drwxr-xr-x. 2 2017 oe-builder     22 Jan  3 16:17 testsuite
-rw-r--r--. 1 2017 oe-builder    162 Jan  3 16:17 libitm.spec
-rw-r--r--. 1 2017 oe-builder   5251 Jan  3 16:17 config.h
-rw-r--r--. 1 2017 oe-builder     23 Jan  3 16:17 stamp-h1
-rwxr-xr-x. 1 2017 oe-builder 274850 Jan  3 16:17 libtool
-rw-r--r--. 1 2017 oe-builder    868 Jan  3 16:17 gstdint.h
-rw-r--r--. 1 2017 oe-builder 119521 Jan  3 16:17 config.log
-rw-r--r--. 1 2017 oe-builder  50080 Jan  3 16:18 alloc_c.o
...
-rw-r--r--. 1 2017 oe-builder    931 Jan  3 16:18 libitm.la
```

Have you seen something like this before?  I am not sure how to fix this...

Any help is greatly appreciated.

On Sun, Jan 2, 2022 at 5:13 PM staticd via lists.yoctoproject.org <staticd=gmail.com@...> wrote:
So, I built the latest poky and created the example recipe with the `DEPENDS` from my recipe and indeed, I see `libquadmath.so` in `sysroots-components/`.

I am really scratching my head now.  I must be missing something silly somewhere...

My build environment is running `zeus`  and the latest `poky` I grabbed is `honister`  Perhaps something changed that I am just overlooking somehow.

On Sun, Jan 2, 2022 at 2:18 PM staticd via lists.yoctoproject.org <staticd=gmail.com@...> wrote:
Thank you, Konrad.

I have tried both of the approaches (local.conf and gcc-runtime_%.bbappend/gcc_%.bbappend), still `libquadmath.so` is not being built.

I will keep fiddling but I think we are onto something.

The interesting thing I found is that `libquadmath.so` IS being built for the nativesdk but NOT when I add `DEPENDS = "virtual/${TARGET_PREFIX}compillerlibs"` to my recipe.

Perhaps, because `FORTRAN = ""` is in the gcc_%.bb, maybe that should be something less strict?

I might be screwing up my bbappend too...

My append is in `meta-mylayer/recipes-devtools/gcc/gcc-runtime_%.bbappend`

Which is mapped correctly to $BBFILES n my layers `layer.conf`

On Sun, Jan 2, 2022 at 2:07 PM Konrad Weihmann <kweihmann@...> wrote:
The following I just found in local.conf.sample.extended

# Enabling FORTRAN
# Note this is not officially supported and is just illustrated here to
# show an example of how it can be done
# You'll also need your fortran recipe to depend on libgfortran
FORTRAN:forcevariable = ",fortran"

guess that will solve your issue without the need for a bbappend.
Just inject that line via distro or local.conf

On 02.01.22 18:31, staticd wrote:
> I think to clarify...what I need are these files:
>
> --- snipped from gcc-runtime.inc ---
> ```
> FILES_libquadmath = "${libdir}/libquadmath*.so.*"
> SUMMARY_libquadmath = "GNU quad-precision math library"
> FILES_libquadmath-dev = "\
>      ${libdir}/${TARGET_SYS}/${BINV}/include/quadmath* \
>      ${libdir}/libquadmath*.so \
>      ${libdir}/libquadmath.la <http://libquadmath.la> \
> "
> ```
> ---
> to be in my $STAGING_LIBDIR
>
> So far, I have been unable to figure out how to do that, unfortunately.
>
> On Sun, Jan 2, 2022 at 12:23 PM staticd <staticd@...
> <mailto:staticd@...>> wrote:
>
>     Thank you, Michael.
>
>     I have `DEPENDS = "virtual/arm-oe-linux-gnueabi-compilerlibs"`
>
>     and `do_compile[depends] +=
>     "virtual/arm-oe-linux-gnueabi-compilerlibs:do_check"`
>
>     However, libquadmath.so is still not present in `recipe-sysroot/lib`
>
>     I used the `do_check` task from gcc_runtime but that still isn't
>     providing `libquadmath.so` in my $STAGING_LIBDIR, which is where I
>     need it.
>
>     Many thanks.
>
>     On Sun, Jan 2, 2022 at 12:17 PM Michael Ho <michael.ho@...
>     <mailto:michael.ho@...>> wrote:
>
>         Not familiar with Fortran but maybe it helps to know that this
>         is normally handled with the DEPENDS mechanism. When you add
>         other recipes as dependencies to your recipe, the task
>         do_prepare_recipe_sysroot (run before do_compile) will make hard
>         links to the files from those dependency recipes into that
>         recipe-sysroot directory.
>
>         See:
>         https://docs.yoctoproject.org/singleindex.html#do-prepare-recipe-sysroot
>         <https://docs.yoctoproject.org/singleindex.html#do-prepare-recipe-sysroot>
>
>         Kind regards,
>         Michael
>
>         On Sun, 2 Jan 2022, 6:06 pm staticd, <staticd@...
>         <mailto:staticd@...>> wrote:
>
>             okay...I think I have a more interesting question now...
>
>             In the package I am building I have some Fortran code that
>             requires `libquadmath`
>
>             I see that `gcc-runtime` provides the library but I need the
>             library present in `recipe-sysroot/lib` when my `do_compile`
>             runs
>
>             Is there a way for me to do that?
>
>             My current approach is to build my image, copy the
>             libraries/includes to my recipe and `install` them in
>             `recipe-sysroot` before `do_compile`
>
>             This doesn't seem like the correct approach but I am not
>             sure how else to do it at this point
>
>             Any help would be greatly appreciated.
>
>
>
>
>
>
>






Join yocto@lists.yoctoproject.org to automatically receive all group messages.