Ross Burton wrote in <caanfstvxyhdew+8essnag-rhec6+mka2eemczdnsjfjkyvs...@mail.gmail.com>: |On Tue, 1 Feb 2022 at 14:53, Ross Burton <r...@burtonini.com> wrote: |> |> When I cross-compile s-nail I get a slew of errors: ... |OK, found it. | |My CC has options, as our compiler *needs* a --sysroot argument and we |pass that via CC to ensure that it is always used. | |However, su-make-errors.sh does "${CC}" which means the shell tries to |find a binary called 'gcc --sysroot=/foo', which doesn't exist. The |loop has done set -e, so the error is silently absorbed. | |The easy fix appears to be to simply remove the quotes around ${CC}, |as they serve no purpose apart from breaking builds where CC has |arguments.
Thanks for the report. This fits fine into the proceeding as via (mk/su-find-command.sh: clearly define space behaviour, 2021-12-16): #@ _However_, in order to support prefilled variables like "awk='busybox awk'" #@ spaces in command names found via path search are not supported. #@ That is to say that we take user-prefilled variable names with spaces as #@ granted, and actively fail to find commands with spaces ourselfs; like this #@ users of these functions can simply say: $VAR args, not "$VAR" args. as well as (mx-test.sh: remove bogus quotation marks, 2021-12-31) so i happily remove these last occurrances of bogus such. I am still undecided whether i should / it is possible to pass $CFLAGS to all invocations of $CC we have. 'Will not forget that i hope. Ross Burton wrote in <caanfstvu605wnfcfjixqoehxudliri6aw-k3qmogkfruulk...@mail.gmail.com>: |An observation. This command isn't parallelised: | |$ make -j build | |This is because it immediately re-calls $(MAKE) in OBJDIR, but doesn't |pass $(MAKEFLAGS) so the -j is lost. These should come in via the generated "$(OBJDIR)"/mk-config.mk if i recall correctly :) gmake produces warnings like make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. make[1]: Entering directory '/tmp/.nail/y' make[1]: warning: -j4 forced in makefile: resetting jobserver mode. however, this has been reported years ago, what can i do? This project uses the de-facto only possibility to use portable build parallelization with nothing but POSIX make(1), via indirection and some "tricks" in the top makefile, that is .NOTPARALLEL: .WAIT: # Luckily BSD make supports specifying this as target, too ... all: config .WAIT build So until now .NOTPARALLEL for GNU make in the top makefile, and fine control for BSD make via .WAIT. I hope in the future GNU make will support that, too. The parallelization in the recursive make via picked up flags from mk-config.mk. (Unfortunately some make maintainers seem to be pretty bold, yes even to standstill, if i realize some responses. But i will write portable makefiles nonetheless.) Ciao from Germany! --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)