Age | Commit message (Collapse) | Author |
|
Just use `ASAN=1 make test_grep` or whatever.
You'll probably want to set $ASAN_SYMBOLIZER_PATH to point to
llvm-symbolizer, but Debian makes that annoying by calling the
symbolizer /usr/bin/llvm-symbolizer-4.0 or whatever, and ASan refuses to
use it:
==43370==ERROR: External symbolizer path is set to
'/usr/bin/llvm-symbolizer-4.0' which isn't a known symbolizer. Please
set the path to the llvm-symbolizer binary or other known tool.
My usual workaround for this is to drop an llvm-symbolizer symlink in
the current directory, and I'm happy to automate that in the script to
make it require no knowledge of any of this nonsense, but haven't done
so in this initial patch.
I tested that this is actually working by reverting the grep fix and
running `ASAN=1 make test_grep`.
|
|
I know that you are working on toysh which I'm looking forward to. In the
meantime below is a patch to improve compatibility with older/odd versions
of bash. This fixed a minor build issue I was having on MacOS (which was
using zsh in emulated bash mode) as well as an oddball embedded SDK using
a non-gnu version of bash. I believe these changes are minimal and should
be safe to apply, if not I wanted to at least get them on the mailing list
in case others ran into these issues.
|
|
|
|
Macs are slow enough without crippling them further!
|
|
It hasn't been needed (for clock_gettime) since glibc 2.17 came out in
December 2012 (which is more or less our 7 year support horizon) and
Devuan 2.0 is not eliminating this with --as-needed (presumably due
to some weak symbol nonsense), so... fix that bug.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genbuild() is a bunch of echo statements, and with enough parallelism piping
its output to "head" can close the pipe before all the echo statements have
run, then they complain about writing to a closed pipe. (We're intentionally
discarding the output, it's not an error, so...)
|
|
|
|
changed), better error message when .config missing.
|
|
(Output file is read only because broken installs that write to the old filename
will truncate+overwrite toybox binary otherwise.)
|
|
|
|
glibc doesn't have _XOPEN_UUCP (though bionic does), which meant that the
generated array of values was out of sync with the hand-written array of
names.
This patch removes that by using a unified array and the preprocessor.
A side benefit of this for me is that it makes toybox easier to integrate
in the AOSP build system (the less shell script magic, the better).
|
|
build context (probes for portability.h) is too fiddly to keep stright,
just copy the parts we need into the host tool.
|
|
This is useful e.g. for cross toolchains that define $CC and $STRIP
instead of $CROSS_COMPILE.
|
|
|
|
|
|
The GITHASH problem was building a tarball version under an existing git repo,
where git describe found ../../../../.git so only call git if we have a .git
directory in the source.
|
|
|
|
|
|
|
|
|
|
and make uptime use it.
|
|
(instead of just producing no output on stdout like everybody else).
|
|
|
|
So use $SED to indicate the sed to use, and set it to 'gsed' if available.
|
|
The problem is that .config and .singleconfig produce the same header file,
so checking that the header is newer than the .config file won't help if
it was last generated from the other file.
|
|
a patch from Elliott Hughes, who said:
[PATCH] Add support for libcrypto for MD5/SHA.
Orders of magnitude faster (for architectures where OpenSSL/BoringSSL
has optimized assembler).
Also adds sha224sum, sha256sum, sha384sum, and sha512sum for folks
building with libcrypto.
The fallback portable C implementations could easily be refactored
to be API-compatible, but I don't know whether they'd stay here or
move to lib/ so I've left that part alone for now.
|
|
resulting macro.)
|
|
"make top; make ps" produces a ps that can't do -A because generated/obj/ps.o
didn't get rebuilt.
|
|
Toybox single binaries are now made directly with the new name instead of
stomping toybox and getting renamed.
Unstripped files now live in generated/unstripped.
Target to run all tests is now "make tests" to avoid conflict with "make test".
.singleconfig now has .PHONY: entries for all test_$NAME targets.
Default install location changed to /usr/toybox, code.html now says how
to change it (set $PREFIX).
scripts/install.sh --uninstall works now. (And you get to keep the pieces!)
|
|
Based on suggestions from Nicholas Boichat.
|
|
|
|
|
|
|
|
|
|
and add test_scankey.
|
|
This lets you have struct arrays with a string as the first member, ala:
struct {char *name; int x, y} blah thingy[] = TAGGED_ARRAY(BLAH,
{"one", 1, 2}, {"two", 3, 4}, {"three", 5, 6}
);
And it produces #defines for the array index of each, ala:
#define BLAH_one 0
#define BLAH_two 1
#define BLAH_three 2
So you can use thingy[BLAH_two].x and still reorder the elements at will.
Note: if you screw up the array initializers, temporarily replace
TAGGED_ARRAY(BLAH, with { and the ); with }; and the compiler will give you
better error messages. (With the macro the compiler reports errors on the
TAGGED_ARRAY line, not where the comma is missing in its contents.)
Currently the TAGGED_ARRAY( and ); must be on their own lines, and the
{ and start of each attached string must be on the same line.
|
|
seldom ends well). Instead add -DBUILD_FOR_HOST to $HOSTCC and wrap #ifdefs
around problematic (smack) includes from toys.h.
|
|
|
|
config2help might require extra parameters to be passed to the compiler.
For example it might need an additional header path.
|
|
tempfile.
|
|
add NOSTRIP variable to force skipping strip, and save intermediate flag
data in generated/flags.raw and have mkflags.c error message point to that.
|
|
LLVM has its own nuts warnings about things that aren't wrong, but disabling
them with the relevant -Wno-* warning disabling command line option drives
gcc nuts because it's a command line option it doesn't recognize. (gcc 4.2.1
dies with an error. gcc 4.6 warns about it _only_ if it's warning about
something else. (PICK ONE, either you warn about this or you don't, distract
people from actual problems with noise about something clearly unrelated to
what just changed is extra-stupid.)
So just probe for it, and add the flag only if it doesn't complain about it
while we're producing an unrelated warning.
|
|
|
|
|