about summary refs log tree commit diff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-01-02 18:33:18 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-01-02 18:33:18 +0000
commitb9256ab6bb81e6cf983f31f5162dbc9fad4c293a (patch)
tree4bb426b2bca669f50ba053f0ef5ecc7f352f0b01 /sysdeps/generic
parent4cf82d2379809ea7c06e04adbc8de22c9d507d03 (diff)
downloadglibc-b9256ab6bb81e6cf983f31f5162dbc9fad4c293a.tar.gz
glibc-b9256ab6bb81e6cf983f31f5162dbc9fad4c293a.tar.xz
glibc-b9256ab6bb81e6cf983f31f5162dbc9fad4c293a.zip
Reduce command length in regen-ulps.
I found that "make regen-ulps" failed when building with unmodified
GNU make 4.1, and an objdir /some/where/math/ longer than about 37
characters, because the list of tests in the "for run in $^" loop
exceeded the Linux kernel's MAX_ARG_STRLEN limit (131072 bytes) on the
length of a single argument passed to a command.

Some GNU/Linux distributions have a patch to make to work around this
limit (see e.g. Debian bug 688601), but clearly this ought to work
without needing such a patch.  This patch arranges for the shell loop
to be over the test names without a $(objdir) prefix, which reduces
the space used to less than half MAX_ARG_STRLEN.

(I think we ought to aim to get rid of bits/mathinline.h completely -
filing GCC bugs for any optimizations GCC can't currently do with
-ffast-math - which would mean we could halve the number of libm tests
run because separate inline function tests would no longer be needed.
However, with a long directory name even half the number of tests
could make this command exceed MAX_ARG_STRLEN without my patch.)

Tested regen-ulps on a system where it failed before this patch.

	* math/Makefile (run-regen-ulps): Add $(objpfx) to test name here.
	(regen-ulps): Use $(libm-tests) not $^ in shell loop.
Diffstat (limited to 'sysdeps/generic')
0 files changed, 0 insertions, 0 deletions