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(a)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