Cross compilation on Windows Subsystem for Linux
-
@cas That's a fantastic point!
I just looked into it, and apparently NTFS IS now case sensitive specifically for this reason. For anyone interested, it is described here.
Appears to be working sufficiently; that's not to say there isn't an edge case that results in some idiosyncratic behavior during the make execution.
elliot477569@Helium2:~$ cd /mnt/d/Onion/ elliot477569@Helium2:/mnt/d/Onion$ touch test.md elliot477569@Helium2:/mnt/d/Onion$ touch Test.md elliot477569@Helium2:/mnt/d/Onion$ ls source test.md Test.md
With regard to confirming it is actually GNU m4 - I'm not sure, but it looks suspiciously similar to yours:
elliot477569@Helium2:/mnt/d/Onion$ apt-cache show m4 Package: m4 Priority: optional Section: interpreters Installed-Size: 338 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Santiago Vila <sanvila@debian.org> Architecture: amd64 Version: 1.4.17-5 Depends: libc6 (>= 2.17), libsigsegv2 (>= 2.9) Filename: pool/main/m/m4/m4_1.4.17-5_amd64.deb Size: 194590 MD5sum: a1667c5593216139a96746971cbf2bf3 SHA1: 9a88c590362c07f04a4b69bfa0937b8d1aace010 SHA256: bb188c16d3f007902fb5b1ceab2f0a44344414b5afba28df7be5071b76cc260e Description-en: macro processing language GNU `m4' is an implementation of the traditional UNIX macro processor. It is mostly SVR4 compatible, although it has some extensions (for example, handling more than 9 positional parameters to macros). `m4' also has builtin functions for including files, running shell commands, doing arithmetic, etc. Autoconf needs GNU `m4' for generating `configure' scripts, but not for running them. Description-md5: 4d2d2315ae3e9465f92825939c8db872 Multi-Arch: foreign Homepage: http://www.gnu.org/software/m4/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu Supported: 5y Task: ubuntu-sdk-libs-tools, ubuntu-sdk
Thanks for the advice!
-
@Elliot-477569 said
I just looked into it, and apparently NTFS IS now case sensitive specifically for this reason. For anyone interested, it is described here.
Aah, but is it really? Consider the following test case:
In linux:$ cat t cat: t: No such file or directory $ echo "t" > t $ cat t t $ cat T cat: T: No such file or directory $
In my git bash shell on an NTFS volume in windows:
$ cat t cat: t: No such file or directory $ echo "t" > t $ cat t t $ cat T t $
Admittedly, don't know if the environments are equivalent, but it's a good and simple enough test to check.After reading the linked page, no they are not, but you're right, there could be some slight behavioural differences that throw it off.
-
@cas Again, great point.
elliot477569@Helium2:/mnt/d/Onion$ cat t cat: t: No such file or directory elliot477569@Helium2:/mnt/d/Onion$ echo "t" > t elliot477569@Helium2:/mnt/d/Onion$ cat t t elliot477569@Helium2:/mnt/d/Onion$ cat T cat: T: No such file or directory
Seems correct.
I wonder why your output in Windows is different. Did you run it in a volume root - case sensitivity isn't present the root? Are you using WSL, or an alternative like cygwin?
-
@Elliot-477569 said
With regard to confirming it is actually GNU m4 - I'm not sure, but it looks suspiciously similar to yours:
Yup, looks identical. The description indicates
GNU 'm4'
, so good enough for me.Well, let's see if anyone else has any ideas.
Otherwise you might try runningmake configure
manually in the/mnt/d/Onion/source/build_dir/host/sed-4.2.2
dir and see if you can glean any more info?Hmm, here's something else to try, is it finding the correct m4?
~/OpenWrt-LEDE/openwrt$ which m4 /usr/bin/m4 ~/OpenWrt-LEDE/openwrt$ m4 --version m4 (GNU M4) 1.4.17 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Rene' Seindal.
-
As far as I can tell, m4 is identical to yours.
elliot477569@Helium2:/mnt/d/Onion/source$ which m4 /usr/bin/m4 elliot477569@Helium2:/mnt/d/Onion/source$ m4 --version m4 (GNU M4) 1.4.17 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Rene' Seindal.
Am I doing this correctly?
elliot477569@Helium2:/mnt/d/Onion/source/build_dir/host/sed-4.2.2$ make configure make: 'configure' is up to date.
Running
make
on the other hand (apparently I can't paste the full output here...):Line 870 of the output, onward:
gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I.. -I../lib -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -MT rename.o -MD -MP -MF .deps/rename.Tpo -c -o rename.o rename.c mv -f .deps/rename.Tpo .deps/rename.Po rm -f libsed.a x86_64-linux-gnu-ar cru libsed.a set-mode-acl.o copy-acl.o file-has-acl.o c-ctype.o c-strcasecmp.o c-strncasecmp.o dirname-lgpl.o basename-lgpl.o stripslash.o exitfail.o localcharset.o malloca.o quotearg.o se-context.o se-selinux.o stdio.o tempname.o unistd.o version-etc.o version-etc-fsf.o wctype-h.o xmalloc.o xalloc-die.o rename.o x86_64-linux-gnu-ar: `u' modifier ignored since `D' is the default (see `U') x86_64-linux-gnu-ranlib libsed.a rm -f t-charset.alias charset.alias && \ /usr/bin/env bash ./config.charset 'x86_64-pc-linux-gnu' > t-charset.alias && \ mv t-charset.alias charset.alias rm -f t-ref-add.sed ref-add.sed && \ sed -e '/^#/d' -e 's/@''PACKAGE''@/sed/g' ref-add.sin > t-ref-add.sed && \ mv t-ref-add.sed ref-add.sed rm -f t-ref-del.sed ref-del.sed && \ sed -e '/^#/d' -e 's/@''PACKAGE''@/sed/g' ref-del.sin > t-ref-del.sed && \ mv t-ref-del.sed ref-del.sed make[4]: Leaving directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/lib' make[3]: Leaving directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/lib' make[2]: Leaving directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/lib' Making all in po make[2]: Entering directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/po' make[2]: Leaving directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/po' Making all in sed make[2]: Entering directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/sed' gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I.. -I../lib -DLOCALEDIR=\"/mnt/d/Onion/source/staging_dir/host/share/locale\" -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -MT sed.o -MD -MP -MF .deps/sed.Tpo -c -o sed.o sed.c mv -f .deps/sed.Tpo .deps/sed.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I.. -I../lib -DLOCALEDIR=\"/mnt/d/Onion/source/staging_dir/host/share/locale\" -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -MT compile.o -MD -MP -MF .deps/compile.Tpo -c -o compile.o compile.c mv -f .deps/compile.Tpo .deps/compile.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I.. -I../lib -DLOCALEDIR=\"/mnt/d/Onion/source/staging_dir/host/share/locale\" -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -MT execute.o -MD -MP -MF .deps/execute.Tpo -c -o execute.o execute.c execute.c: In function ‘closedown’: execute.c:695:9: warning: ignoring return value of ‘fchown’, declared with attribute warn_unused_result [-Wunused-result] fchown (output_fd, -1, input->st.st_gid); ^ mv -f .deps/execute.Tpo .deps/execute.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I.. -I../lib -DLOCALEDIR=\"/mnt/d/Onion/source/staging_dir/host/share/locale\" -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -MT regexp.o -MD -MP -MF .deps/regexp.Tpo -c -o regexp.o regexp.c mv -f .deps/regexp.Tpo .deps/regexp.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I.. -I../lib -DLOCALEDIR=\"/mnt/d/Onion/source/staging_dir/host/share/locale\" -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -MT fmt.o -MD -MP -MF .deps/fmt.Tpo -c -o fmt.o fmt.c mv -f .deps/fmt.Tpo .deps/fmt.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I.. -I../lib -DLOCALEDIR=\"/mnt/d/Onion/source/staging_dir/host/share/locale\" -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -MT mbcs.o -MD -MP -MF .deps/mbcs.Tpo -c -o mbcs.o mbcs.c mv -f .deps/mbcs.Tpo .deps/mbcs.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I.. -I../lib -DLOCALEDIR=\"/mnt/d/Onion/source/staging_dir/host/share/locale\" -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -MT utils.o -MD -MP -MF .deps/utils.Tpo -c -o utils.o utils.c mv -f .deps/utils.Tpo .deps/utils.Po gcc -O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include -L/mnt/d/Onion/source/staging_dir/host/lib -L/mnt/d/Onion/source/staging_dir/host/usr/lib -o sed sed.o compile.o execute.o regexp.o fmt.o mbcs.o utils.o ../lib/libsed.a make[2]: Leaving directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/sed' Making all in doc make[2]: Entering directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/doc' Updating ./version.texi restore=: && backupdir=".am$$" && \ am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && \ rm -rf $backupdir && mkdir $backupdir && \ if (makeinfo --version) >/dev/null 2>&1; then \ for f in sed.info sed.info-[0-9] sed.info-[0-9][0-9] sed.i[0-9] sed.i[0-9][0-9]; do \ if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$am__cwd"; \ if makeinfo -I . \ -o sed.info sed.texi; \ then \ rc=0; \ CDPATH="${ZSH_VERSION+.}:" && cd .; \ else \ rc=$?; \ CDPATH="${ZSH_VERSION+.}:" && cd . && \ $restore $backupdir/* `echo "./sed.info" | sed 's|[^/]*$||'`; \ fi; \ rm -rf $backupdir; exit $rc bash: line 9: makeinfo: command not found Makefile:1079: recipe for target 'sed.info' failed make[2]: *** [sed.info] Error 127 make[2]: Leaving directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2/doc' Makefile:1125: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2' Makefile:1066: recipe for target 'all' failed make: *** [all] Error 2
@cas Thanks for your input and conversation; it has been greatly appreciated! ^^
-
@Elliot-477569 said in Cross compilation on Windows Subsystem for Linux:
bash: line 9: makeinfo: command not found
After installing
texinfo
:elliot477569@Helium2:/mnt/d/Onion/source$ make -j1 V=s make[1]: Entering directory '/mnt/d/Onion/source' make[2]: Entering directory '/mnt/d/Onion/source' + mkdir -p /mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16 + cd /mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16 + mkdir -p bin lib include stamp mkdir -p /mnt/d/Onion/source/build_dir/target-mipsel_24kc_musl-1.1.16/stamp touch /mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16/.prepared + mkdir -p /mnt/d/Onion/source/staging_dir/host + cd /mnt/d/Onion/source/staging_dir/host + mkdir -p bin lib include stamp mkdir -p /mnt/d/Onion/source/build_dir/host/stamp /mnt/d/Onion/source/staging_dir/host/include/sys install -m0644 /mnt/d/Onion/source/tools/include/*.h /mnt/d/Onion/source/staging_dir/host/include/ install -m0644 /mnt/d/Onion/source/tools/include/sys/*.h /mnt/d/Onion/source/staging_dir/host/include/sys/ ln -sf lib /mnt/d/Onion/source/staging_dir/host/lib64 touch /mnt/d/Onion/source/staging_dir/host/.prepared make[3]: Entering directory '/mnt/d/Onion/source/tools/flock' make[3]: Leaving directory '/mnt/d/Onion/source/tools/flock' make[3]: Entering directory '/mnt/d/Onion/source/tools/flock' make[3]: Leaving directory '/mnt/d/Onion/source/tools/flock' make[3]: Entering directory '/mnt/d/Onion/source/tools/sed' make[3]: Leaving directory '/mnt/d/Onion/source/tools/sed' make[3]: Entering directory '/mnt/d/Onion/source/tools/sed' make[3]: Leaving directory '/mnt/d/Onion/source/tools/sed' make[3]: Entering directory '/mnt/d/Onion/source/tools/patch' CFLAGS="-O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include " CPPFLAGS="-I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include " CXXFLAGS="" LDFLAGS="-L/mnt/d/Onion/source/staging_dir/host/lib -L/mnt/d/Onion/source/staging_dir/host/usr/lib " make -C /mnt/d/Onion/source/build_dir/host/patch-2.7.5 make[4]: Entering directory '/mnt/d/Onion/source/build_dir/host/patch-2.7.5' CDPATH="${ZSH_VERSION+.}:" && cd . && /usr/bin/env bash /mnt/d/Onion/source/build_dir/host/patch-2.7.5/build-aux/missing aclocal-1.14 -I m4 /mnt/d/Onion/source/build_dir/host/patch-2.7.5/build-aux/missing: line 81: aclocal-1.14: command not found WARNING: 'aclocal-1.14' is missing on your system. You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. The 'aclocal' program is part of the GNU Automake package: <http://www.gnu.org/software/automake> It also requires GNU Autoconf, GNU m4 and Perl in order to run: <http://www.gnu.org/software/autoconf> <http://www.gnu.org/software/m4/> <http://www.perl.org/> Makefile:1181: recipe for target 'aclocal.m4' failed make[4]: *** [aclocal.m4] Error 127 make[4]: Leaving directory '/mnt/d/Onion/source/build_dir/host/patch-2.7.5' Makefile:23: recipe for target '/mnt/d/Onion/source/build_dir/host/patch-2.7.5/.built' failed make[3]: *** [/mnt/d/Onion/source/build_dir/host/patch-2.7.5/.built] Error 2 make[3]: Leaving directory '/mnt/d/Onion/source/tools/patch' tools/Makefile:147: recipe for target 'tools/patch/compile' failed make[2]: *** [tools/patch/compile] Error 2 make[2]: Leaving directory '/mnt/d/Onion/source' tools/Makefile:145: recipe for target '/mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16/stamp/.tools_install_yynyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynnny' failed make[1]: *** [/mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16/stamp/.tools_install_yynyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynnny] Error 2 make[1]: Leaving directory '/mnt/d/Onion/source' /mnt/d/Onion/source/include/toplevel.mk:198: recipe for target 'world' failed make: *** [world] Error 2
Apparently I do however have
automake
1.15.elliot477569@Helium2:/mnt/d/Onion/source$ apt-cache show automake Package: automake Priority: optional Section: devel Installed-Size: 1493 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Eric Dorland <eric@debian.org> Architecture: all Source: automake-1.15 Version: 1:1.15-4ubuntu1 Provides: automake-1.15, automaken Depends: autoconf (>= 2.65), autotools-dev (>= 20020320.1) Suggests: autoconf-doc, gnu-standards Conflicts: automake (<< 1:1.4-p5-1), automake1.10-doc, automake1.5 (<< 1.5-2), automake1.6 (<< 1.6.1-4) Filename: pool/main/a/automake-1.15/automake_1.15-4ubuntu1_all.deb Size: 509892 MD5sum: 4f01fc4b752b28ee208b30221097049c SHA1: bee0098bcfcc031d3379b2975934eac3f6b333fb SHA256: d751ccfc07111b34fdd07795689771625d07f28c2769e6f06d4e473500039641 Description-en: Tool for generating GNU Standards-compliant Makefiles Automake is a tool for automatically generating `Makefile.in's from files called `Makefile.am'. . The goal of Automake is to remove the burden of Makefile maintenance from the back of the individual GNU maintainer (and put it on the back of the Automake maintainer). . The `Makefile.am' is basically a series of `make' macro definitions (with rules being thrown in occasionally). The generated `Makefile.in's are compliant with the GNU Makefile standards. . Automake 1.15 fails to work in a number of situations that Automake 1.4, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11 and 1.14 did, so previous versions are available as separate packages. Description-md5: 12127f5bccf4c38c80c33e34f12556eb Multi-Arch: foreign Homepage: https://www.gnu.org/software/automake/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu Supported: 5y Task: ubuntu-sdk-libs-tools, ubuntu-sdk
After running
aclocal
inbuild_dir/host/patch-2.7.5
:gpriaulx@Helium2:/mnt/d/Onion/source$ make -j1 V=s make[1]: Entering directory '/mnt/d/Onion/source' make[2]: Entering directory '/mnt/d/Onion/source' + mkdir -p /mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16 + cd /mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16 + mkdir -p bin lib include stamp mkdir -p /mnt/d/Onion/source/build_dir/target-mipsel_24kc_musl-1.1.16/stamp touch /mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16/.prepared + mkdir -p /mnt/d/Onion/source/staging_dir/host + cd /mnt/d/Onion/source/staging_dir/host + mkdir -p bin lib include stamp mkdir -p /mnt/d/Onion/source/build_dir/host/stamp /mnt/d/Onion/source/staging_dir/host/include/sys install -m0644 /mnt/d/Onion/source/tools/include/*.h /mnt/d/Onion/source/staging_dir/host/include/ install -m0644 /mnt/d/Onion/source/tools/include/sys/*.h /mnt/d/Onion/source/staging_dir/host/include/sys/ ln -sf lib /mnt/d/Onion/source/staging_dir/host/lib64 touch /mnt/d/Onion/source/staging_dir/host/.prepared make[3]: Entering directory '/mnt/d/Onion/source/tools/flock' make[3]: Leaving directory '/mnt/d/Onion/source/tools/flock' make[3]: Entering directory '/mnt/d/Onion/source/tools/flock' make[3]: Leaving directory '/mnt/d/Onion/source/tools/flock' make[3]: Entering directory '/mnt/d/Onion/source/tools/sed' make[3]: Leaving directory '/mnt/d/Onion/source/tools/sed' make[3]: Entering directory '/mnt/d/Onion/source/tools/sed' make[3]: Leaving directory '/mnt/d/Onion/source/tools/sed' make[3]: Entering directory '/mnt/d/Onion/source/tools/patch' CFLAGS="-O2 -I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include " CPPFLAGS="-I/mnt/d/Onion/source/staging_dir/host/include -I/mnt/d/Onion/source/staging_dir/host/usr/include " CXXFLAGS="" LDFLAGS="-L/mnt/d/Onion/source/staging_dir/host/lib -L/mnt/d/Onion/source/staging_dir/host/usr/lib " make -C /mnt/d/Onion/source/build_dir/host/patch-2.7.5 make[4]: Entering directory '/mnt/d/Onion/source/build_dir/host/patch-2.7.5' cd . && /usr/bin/env bash /mnt/d/Onion/source/build_dir/host/patch-2.7.5/build-aux/missing automake-1.14 --gnu /mnt/d/Onion/source/build_dir/host/patch-2.7.5/build-aux/missing: line 81: automake-1.14: command not found WARNING: 'automake-1.14' is missing on your system. You should only need it if you modified 'Makefile.am' or 'configure.ac' or m4 files included by 'configure.ac'. The 'automake' program is part of the GNU Automake package: <http://www.gnu.org/software/automake> It also requires GNU Autoconf, GNU m4 and Perl in order to run: <http://www.gnu.org/software/autoconf> <http://www.gnu.org/software/m4/> <http://www.perl.org/> Makefile:1152: recipe for target 'Makefile.in' failed make[4]: *** [Makefile.in] Error 1 make[4]: Leaving directory '/mnt/d/Onion/source/build_dir/host/patch-2.7.5' Makefile:23: recipe for target '/mnt/d/Onion/source/build_dir/host/patch-2.7.5/.built' failed make[3]: *** [/mnt/d/Onion/source/build_dir/host/patch-2.7.5/.built] Error 2 make[3]: Leaving directory '/mnt/d/Onion/source/tools/patch' tools/Makefile:147: recipe for target 'tools/patch/compile' failed make[2]: *** [tools/patch/compile] Error 2 make[2]: Leaving directory '/mnt/d/Onion/source' tools/Makefile:145: recipe for target '/mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16/stamp/.tools_install_yynyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynnny' failed make[1]: *** [/mnt/d/Onion/source/staging_dir/target-mipsel_24kc_musl-1.1.16/stamp/.tools_install_yynyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynnny] Error 2 make[1]: Leaving directory '/mnt/d/Onion/source' /mnt/d/Onion/source/include/toplevel.mk:198: recipe for target 'world' failed make: *** [world] Error 2
The plot thickens...
-
@Elliot-477569 said
I wonder why your output in Windows is different. Did you run it in a volume root - case sensitivity isn't present the root? Are you using WSL, or an alternative like cygwin?
It's a git bash shell, so I think it's built on top of cygwin or something like that - but anyway it's definitely not WSL and your test shows you're good to go.
[edit]
Also:elliot477569@Helium2:/mnt/d/Onion/source$ make menuconfig ... Checking 'case-sensitive-fs'... ok. ...
[/edit]
-
@Elliot-477569 said
Am I doing this correctly?
elliot477569@Helium2:/mnt/d/Onion/source/build_dir/host/sed-4.2.2$ make configure make: 'configure' is up to date.
Maybe we're missing something.
My interpretation of this is that configure didn't get built:make[4]: Entering directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2' CDPATH="${ZSH_VERSION+.}:" && cd . && bash /mnt/d/Onion/source/build_dir/host/sed-4.2.2/build-aux/missing --run autoconf autom4te: need GNU m4 1.4 or later: /mnt/d/Onion/source/staging_dir/host/bin/m4 Makefile:1023: recipe for target 'configure' failed make[4]: *** [configure] Error 1 make[4]: Leaving directory '/mnt/d/Onion/source/build_dir/host/sed-4.2.2'
But your make says it's up to date, which would indicate it was built successfully.
Perhaps it's time to backup your .config and
make distclean
and start from scratch?[edit]
Looking back through the thread, the following:
1.) make died, making sed.
2.) a later make skipped over sed (indicating it was successful - correlates with yourmake configure
) and then died making the next file: patch.Maybe this is a timing issue within
make
? Perhaps a later thread is exiting before an earlier thread has completed?
What if you just runmake
with no parameters? It'll be slow, but hopefully sequential...
[/edit]
-
Scanning the WSL issues on Github - Processes disappearing? Maybe you're seeing something related?
If you repeatedly run
make
, does it get a little bit further into the build process each time?
-
Last thought on this for now.
Working on the assumption that something external to the build process might be interfering with it, and since this is windows you are probably running some kind of anti-virus software. If so, have you tried excluding your build path and all sub-folders from your AV software? Or temporarily disabling it and then running a build?
-
@cas @Elliot-477569 I have the identical error on macOS 10.13.1.... (cf here https://forum.openwrt.org/viewtopic.php?pid=369392)
-
$ make -j1 V=s make[1]: Entering directory `/Volumes/OpenWrt/source' mkdir -p /Volumes/OpenWrt/source/build_dir/target-mipsel_24kc_musl-1.1.16/stamp touch /Volumes/OpenWrt/source/staging_dir/target-mipsel_24kc_musl-1.1.16/.prepared mkdir -p /Volumes/OpenWrt/source/build_dir/host/stamp /Volumes/OpenWrt/source/staging_dir/host/include/sys install -m0644 /Volumes/OpenWrt/source/tools/include/*.h /Volumes/OpenWrt/source/staging_dir/host/include/ install -m0644 /Volumes/OpenWrt/source/tools/include/sys/*.h /Volumes/OpenWrt/source/staging_dir/host/include/sys/ ln -sf lib /Volumes/OpenWrt/source/staging_dir/host/lib64 touch /Volumes/OpenWrt/source/staging_dir/host/.prepared export SHELL="bash"; /Library/Developer/CommandLineTools/usr/bin/make -C /Volumes/OpenWrt/source/build_dir/host/autoconf-2.69 /Library/Developer/CommandLineTools/usr/bin/make all-recursive Making all in bin autom4te_perllibdir='..'/lib AUTOM4TE_CFG='../lib/autom4te.cfg' ../bin/autom4te -B '..'/lib -B '..'/lib --language M4sh --cache '' --melt ./autoconf.as -o autoconf.in autom4te: need GNU m4 1.4 or later: /Volumes/OpenWrt/source/staging_dir/host/bin/m4 make[6]: *** [autoconf.in] Error 1 make[5]: *** [all-recursive] Error 1 make[4]: *** [all] Error 2 make[3]: *** [/Volumes/OpenWrt/source/build_dir/host/autoconf-2.69/.built] Error 2 make[2]: *** [tools/autoconf/compile] Error 2 make[1]: *** [/Volumes/OpenWrt/source/staging_dir/target-mipsel_24kc_musl-1.1.16/stamp/.tools_install_yynyyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynnny] Error 2 make[1]: Leaving directory `/Volumes/OpenWrt/source' make: *** [world] Error 2
-
I thought I would take a break from this for a couple of projects and come back to it later. There is a long weekend coming up so later is now ^^.
Thanks again for your assistance and perseverance @cas; I appreciate your insight!
@Jonathan-Zwart although I would like to state how glad I am that this isn't just a Windows symptom, I do empathise with your circumstance. Did you overcome this issue?
I recently came across these:
I did admittedly get a little excited after all the positive comments and sounds of success, however my success was limited:
make -j1 V=s toolchain/install make[1]: Entering directory '/mnt/d/Onion/lede/source' + mkdir -p /mnt/d/Onion/lede/source/staging_dir/target-mipsel_24kc_musl + cd /mnt/d/Onion/lede/source/staging_dir/target-mipsel_24kc_musl + mkdir -p bin lib include stamp mkdir -p /mnt/d/Onion/lede/source/build_dir/target-mipsel_24kc_musl/stamp touch /mnt/d/Onion/lede/source/staging_dir/target-mipsel_24kc_musl/.prepared make[2]: Entering directory '/mnt/d/Onion/lede/source' + mkdir -p /mnt/d/Onion/lede/source/staging_dir/host + cd /mnt/d/Onion/lede/source/staging_dir/host + mkdir -p bin lib include stamp mkdir -p /mnt/d/Onion/lede/source/build_dir/host/stamp /mnt/d/Onion/lede/source/staging_dir/host/include/sys install -m0644 /mnt/d/Onion/lede/source/tools/include/*.h /mnt/d/Onion/lede/source/staging_dir/host/include/ install -m0644 /mnt/d/Onion/lede/source/tools/include/sys/*.h /mnt/d/Onion/lede/source/staging_dir/host/include/sys/ ln -sf lib /mnt/d/Onion/lede/source/staging_dir/host/lib64 touch /mnt/d/Onion/lede/source/staging_dir/host/.prepared make[3]: Entering directory '/mnt/d/Onion/lede/source/tools/flock' make[3]: Leaving directory '/mnt/d/Onion/lede/source/tools/flock' make[3]: Entering directory '/mnt/d/Onion/lede/source/tools/sed' make -C /mnt/d/Onion/lede/source/build_dir/host/sed-4.4 SHELL="bash" make[4]: Entering directory '/mnt/d/Onion/lede/source/build_dir/host/sed-4.4' cd . && bash /mnt/d/Onion/lede/source/build_dir/host/sed-4.4/build-aux/missing automake-1.99a --gnu Makefile /mnt/d/Onion/lede/source/build_dir/host/sed-4.4/build-aux/missing: line 81: automake-1.99a: command not found WARNING: 'automake-1.99a' is missing on your system. You should only need it if you modified 'Makefile.am' or 'configure.ac' or m4 files included by 'configure.ac'. The 'automake' program is part of the GNU Automake package: <http://www.gnu.org/software/automake> It also requires GNU Autoconf, GNU m4 and Perl in order to run: <http://www.gnu.org/software/autoconf> <http://www.gnu.org/software/m4/> <http://www.perl.org/> Makefile:2167: recipe for target 'Makefile.in' failed make[4]: *** [Makefile.in] Error 127 make[4]: Leaving directory '/mnt/d/Onion/lede/source/build_dir/host/sed-4.4' Makefile:45: recipe for target '/mnt/d/Onion/lede/source/build_dir/host/sed-4.4/.built' failed make[3]: *** [/mnt/d/Onion/lede/source/build_dir/host/sed-4.4/.built] Error 2 make[3]: Leaving directory '/mnt/d/Onion/lede/source/tools/sed' tools/Makefile:148: recipe for target 'tools/sed/compile' failed make[2]: *** [tools/sed/compile] Error 2 make[2]: Leaving directory '/mnt/d/Onion/lede/source' tools/Makefile:146: recipe for target '/mnt/d/Onion/lede/source/staging_dir/target-mipsel_24kc_musl/stamp/.tools_compile_yyyyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynny' failed make[1]: *** [/mnt/d/Onion/lede/source/staging_dir/target-mipsel_24kc_musl/stamp/.tools_compile_yyyyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynny] Error 2 make[1]: Leaving directory '/mnt/d/Onion/lede/source' /mnt/d/Onion/lede/source/include/toplevel.mk:207: recipe for target 'toolchain/install' failed make: *** [toolchain/install] Error 2
I'm going to try this on my work PC tomorrow.
-
Success!
Everything appeared to work as expected once I set this up on the default WSL partition. I haven't looked into why, or what this issue represents, but simply following the Onion guide was sufficient. For the record, I still feel dirty about this.
¯_(ツ)_/¯
-
@Jonathan-Zwart I have a solution to the 10.13.1 problem with m4 you've encountered (see my answer to your post in the openwrt forum and/or the question/solution in the lede forum from late 2017)
But it does not seem to be related to the OP's problem on WSL to me. From @Elliot-477569 's last post I rather conclude his original problem was a file system issue.
I still have a unresolved strange issue with make leaving out parts of the build of the mt76 wifi driver when building LEDE master on macOS 10.13.1, resulting in an image with everything working, except that the entire mac80211 infrastructure is missing. The reason behind must be a similar subtlety like in @Elliot-477569 's case on WSL, that's why I subscribed to this thread in the first place... Any ideas are welcome