Hi Waldemar,
Except from meeting all dependencies (especially overwriting OS X tools with GNU versions) I did use these steps to setup my Entware-ng environment:
1. A case-sensitive filesystem is required for OpenWrt so I guess Entware-ng will need one too. Create the image in 2 steps to prevent EFI partition creation (for volumes over 2g). $ hdiutil create -size 512m -type SPARSEBUNDLE -fs "Case-sensitive HFS+" -volname Case-sensitive ~/src/Case-sensitive && hdiutil resize -size 38g ~/src/Case-sensitive.sparsebundle
2. Mount the image and hide it from Finder and Desktop $ hdiutil attach ~/src/Case-sensitive.sparseimage -nobrowse
3. Go to the case sensitive location $ cd /Volumes/Case-sensitive
4. Download Entware-ng sources $ git clone https://github.com/Entware-ng/Entware-ng.git
5. Go to the root folder $ cd Entware-ng
6. Pick up the configuration for the mipselsf (mips, little endian, soft floating point) platform $ cp configs/mipselsf.config .config
6. Prepared the necessary fixes. $ make
For now I think the issue is after:
make[3]: Entering directory `/Volumes/Case-sensitive/Entware-ng/toolchain/uClibc/headers'
in this incomplete Make call:
make -C build_dir/toolchain-mipsel_mips32r2_gcc-5.3.0_uClibc-1.0.16/uClibc-ng-1.0.16 ... -I../..//extra/locale
A result the incorrect (FreeBSD) version of ‘langinfo.h’ at /usr/include/langinfo.h is used. $ gcc -M build_dir/toolchain-mipsel_mips32r2_gcc-5.3.0_uClibc-1.0.16/uClibc-ng-1.0.16/extra/locale/gen_locale.c | grep langinfo /usr/include/locale.h /usr/include/_locale.h /usr/include/langinfo.h \
To let the compiler find the correct ‘langinfo.h’ something/somewhere needs f.e. an addition like:
-I../../include
Note: This is my guess without any knowledge of how the compiler handles preferences of include locations
-- Best regards, Ceriel
Op 21 nov. 2016, om 13:53 heeft Waldemar Brodkorb wbx@uclibc-ng.org het volgende geschreven:
Hi Ceriel, C. Jacobs wrote,
Hi list and Waldemar,
Yes, I am trying to cross-compile on Mac OS X for Linux embedded (mipselsf) devices, within the Entware-ng environment.
I did search for “BR2_ENABLE_LOCALE”, “BR2_USE_WCHAR”, “BR2_TOOLCHAIN_BUILDROOT_LOCALE”, “BR2_TOOLCHAIN_BUILDROOT_WCHAR”, “BR2_ENABLE_LOCALE" in the Entware-ng folder (like $ grep -lr "BR2_ENABLE_LOCALE” *) without any results.
How can I disable LOCALE support?
But the locale support in uClibc-ng is really crappy and it assumes a Linux host for some tools running on the host.
I do still think that the issue here are that the headers (langinfo.h) can’t be found.
Is that more an issue of “toolchain” or of “uClibc-ng"?
A combination of your host toolchain and uClibc-ng. The code in gen_locale.c is using headers which are not provided by your host toolchain. They might be non-posix, I don't know. I seldom use locale support in uClibc-ng, but if you want to work on better cross-compilation in this area, I would accept patches.
Where does someone could download the entware-ng you are using, I could take a look. Check the provided uClibc config, it might enable LOCALE, without a switch in the Buildroot-Clone.
best regards Waldemar