I have an OpenWrt source tree (obtained according to Gateworks' wiki which basically clones from OpenWrt for the OpenWrt part). I am trying to develop a custom build (.config really) that produces both an image I can flash onto the device AND a toolchain that will allow developers to build binaries that will run on it.
I have all that working except for the "run" part. The problem is that the rootfs on the target device is missing quite a few of the glibc-related .so files.
What I can't wrap my brain around is what use it is to build a cross-toolchain that links with glibc but then not install glibc.so* (and friends) into the target rootfs.
I've gone over my .config a dozen times and can't see why it would do this. I must be missing something really basic.
If anyone has any guidance I'd very much appreciate it. Thanks!
Although they may use parts of the OpenWrt OS, it seems as though they have extended and/or modified it in ways that are not directly compatible with OpenWrt. OpenWrt does not typically use glibc.
jeff@deb-devel:~/devel/openwrt$ git merge-base gateworks/master openwrt/master
tells me that there are no commits in common on their
master (which dates back to 2016).
jeff@deb-devel:~/devel/openwrt$ git log -1 --pretty='%h %cd %s' --date=short $(git merge-base gateworks/18.0x openwrt/openwrt-18.06)
9c2ac19b03 2018-01-18 ipq806x: remove merged ipq4019 patch
is a more encouraging, and doesn't look to be too far from
18.06 some predecessor of 18.06, a year and a half ago:
jeff@deb-devel:~/devel/openwrt$ git log --pretty=oneline gateworks/18.0x ^openwrt/openwrt-18.06
1c49957460 (gateworks/18.0x) gateworks: configs: octeontx: add cpt (crypto) drivers and firmware
388947c811 firmware: add cavium cpt (crypto) firmware package
458d3f8c01 kernel: add kmod-crypto-cavium-cpt and kmod-crypto-cavium-zip
280a6b36af feeds: pin feeds to revisions tested against to avoid build errors
cecaf5191e octeontx: remove BRIDGE disable from kernel config
25124e6f1c added Gateworks Makefile scripts and default configuration files
e5c7b63a6f imx6: add support for the intel gbit driver on GW5520
fc94e7fee1 imx6: remove support for 4.9
8388ce5c2d imx6: switch to kernel 4.14
22142a2567 imx6: add support for Linux 4.14
aadac1a4cc kernel: add missing config symbols
86004d29d1 octeontx: add FAT FS support to kernel
56949a4ca7 octeontx: remove static EXT2/3/4 FS support
1f48b3f2dc octeontx: add USB_PCI support
94f5a7c640 add support for OCTEON TX target
40b945fe87 kernel/modules/other: disable Nokia BT UART
Are you working with their
Yes I am on their 18.0x branch. Thanks for pointing this out. I was under the mistaken impression that they only added things to their gateworks/ directory. I should have looked more closely at their changes. I'll take this up with them.
It's reasonably common that an OEM branch only periodically "catches up" with "upstream". As long as you're aware of what the branch point is and what they may or may not have picked up along the way, you can make the decisions about if it is "recent enough" for your needs, balanced against benefits their branch may provide you.
git log [--pretty='%h %cd %s' --date=short] on-this-branch ^not-on-this-branch
is a way I find useful to compare two branches (assuming there is a merge base).