Bug 5667 - Custom toolchain enabling Fortran and Java support incomplete
Summary: Custom toolchain enabling Fortran and Java support incomplete
Status: RESOLVED INVALID
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: devtools / tool chain (show other bugs)
Version: unspecified
Hardware: All Multiple
: Medium normal
Target Milestone: 1.6
Assignee: Richard Purdie
QA Contact:
URL: https://github.com/sarnold/meta-raspb...
Whiteboard:
Depends on:
Blocks:
 
Reported: 2013-12-15 01:08 UTC by Steve Arnold
Modified: 2014-01-28 12:01 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Arnold 2013-12-15 01:08:11 UTC
Enabling the above seems does not seem to work yet.  The only confguration change from "normal" was adding the following config options to local.conf and rebuilding a fresh tmp/ tree and rpi image:

JAVA = ",java"
JAVA_arm = ",java"
FORTRAN = ",fortran"

The poky listing below shows gfortran (and a broken g77 symlink) but no gcj, so at this point I'm not sure if I'm missing some additional config settings for poky master, or if the additional language support is incomplete, or something else?  So this is mostly informational(?) right now; today I'll try pulling on master again and rebuilding just to be sure.

My current build config:

Build Configuration:
BB_VERSION        = "1.21.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-12.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "raspberrypi"
DISTRO            = "poky"
DISTRO_VERSION    = "1.5+snapshot-20131213"
TUNE_FEATURES     = "armv6 vfp callconvention-hard arm1176jzfs no-thumb-interwork"
TARGET_FPU        = "vfp"
meta
meta-yocto
meta-yocto-bsp    = "master:257f83968caae834c03bc412eaf5afeadee6880e"
meta-raspberrypi  = "master:bcf257fd036890e5b26fa4f4874c4f072e9ec0a8"
meta-erlang       = "master:ca7c12f3427280a3800f78fa511637de3925d056"
meta-oe
meta-gnome
meta-networking
meta-filesystems
meta-multimedia
meta-efl
meta-xfce         = "master:20f352810d46daea9a20989b77f347fb8564ebf0"


Poky toolchain:

poky (master) $ find build-rpihf/tmp/sysroots/ -name libgfortran\*
build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime/libgfortran
build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime/libgfortran-dev
build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime/libgfortran-staticdev
build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime-reverse/libgfortran-staticdev
build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime-reverse/libgfortran-dev
build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime-reverse/libgfortran

The Gentoo crossdev tool also can't build gcj support, at least not as part of the basic toolchain (didn't try the extra target).  That said, it does build the full gfortran stuff, including libgfortran, which this one appears to be missing.

gentoox86vm ~ # find /usr/lib/gcc/armv7a-hardfloat-linux-gnueabi -name libgfortran\*
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.6.4/libgfortranbegin.la
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.6.4/libgfortran.spec
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.6.4/libgfortran.la
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.6.4/libgfortran.a
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.6.4/libgfortran.so
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.6.4/libgfortran.so.3.0.0
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.6.4/libgfortranbegin.a
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.6.4/libgfortran.so.3
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.5.4/libgfortranbegin.la
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.5.4/libgfortran.la
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.5.4/libgfortran.a
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.5.4/libgfortran.so
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.5.4/libgfortran.so.3.0.0
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.5.4/libgfortranbegin.a
/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.5.4/libgfortran.so.3
Comment 1 Steve Arnold 2013-12-19 04:48:46 UTC
The clean rebuild seems to have done it, although my local.conf now looks like this:

JAVA = ",java"
JAVA_arm = ",java"
FORTRAN = ",fortran"
FORTRAN_forcevariable = ",fortran"
RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath"

After that I was able to build the libgfortran package; prior to the above I got the error about gcc needing to be built with fortran support.  There were also some warnings about collisions with gcc-runtime:

Poky ["raspberrypi"] >>> bitbake libgfortran
Loading cache: 100% |###############################################################################################################################################################################################| ETA:  00:00:00
Loaded 2086 entries from dependency cache.
Parsing recipes: 100% |#############################################################################################################################################################################################| Time: 00:00:00
Parsing of 1653 .bb files complete (1652 cached, 1 parsed). 2086 targets, 45 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.21.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-12.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "raspberrypi"
DISTRO            = "poky"
DISTRO_VERSION    = "1.5+snapshot-20131217"
TUNE_FEATURES     = "armv6 vfp callconvention-hard arm1176jzfs no-thumb-interwork"
TARGET_FPU        = "vfp"
meta
meta-yocto
meta-yocto-bsp    = "master:dd1dbaaddc33a001d7f3b3c2151224a9f9cd7856"
meta-raspberrypi  = "master:6b0f84865634022fd5081162a5686bea16c2056f"
meta-erlang       = "master:ca7c12f3427280a3800f78fa511637de3925d056"
meta-oe
meta-gnome
meta-networking
meta-filesystems
meta-multimedia
meta-efl
meta-xfce         = "master:4d843338866dff4ed028b73278b22a5ad7dc35a2"

NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: The recipe libgfortran is trying to install files into a shared area when those files already exist. Those files and their manifest location are:
   /home/sarnold/poky/build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime/libgfortran-staticdev
   Matched in manifest-raspberrypi-gcc-runtime.packagedata
   /home/sarnold/poky/build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime/libgfortran-dev
   Matched in manifest-raspberrypi-gcc-runtime.packagedata
   /home/sarnold/poky/build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime/libgfortran
   Matched in manifest-raspberrypi-gcc-runtime.packagedata
   /home/sarnold/poky/build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime-reverse/libgfortran-staticdev
   Matched in manifest-raspberrypi-gcc-runtime.packagedata
   /home/sarnold/poky/build-rpihf/tmp/sysroots/raspberrypi/pkgdata/runtime-reverse/libgfortran-dev
   Matched in manifest-raspberrypi-gcc-runtime.packagedata
Please verify which package should provide the above files.
NOTE: Tasks Summary: Attempted 684 tasks of which 672 didn't need to be rerun and all succeeded.

Summary: There was 1 WARNING message shown.
Comment 2 Steve Arnold 2013-12-20 03:53:58 UTC
Added the rpi layer I'm building in to the URL field.
Comment 3 Richard Purdie 2013-12-20 17:30:21 UTC
Firstly, with master you should just need:
"""
FORTRAN_forcevariable = ",fortran"
RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath"
"""
as documented in local.conf.sample.extended.

As it mentioned there it is there as "best effort" and not an officially supported/tested code path. As such, bug reports like this aren't going to get much attention, we simply don't have the resources to cover fortran or java.

For java you probably need to do something like:

JAVA_forcevariable = ",java"

but again, its not a tested codepath so who knows what may happen from there.

Finally, the raspberrypi isn't an official Yocto Project BSP so as such a bug report for unsupported hardware and an unsupported toolchain components here in the bugzilla is really out of scope.
Comment 4 Richard Purdie 2014-01-28 12:01:56 UTC
No feedback on the bug. Fortran should work as indicated, java simply isn't supported.