On 2019-11-03 Andreas Metzler wrote:
> Package: exim4-daemon-light
> Version: 4.93~RC0-1
> Severity: serious
> Tags: ftbfs
> Justification: fails to build from source (but built successfully in the past)
> 4.93~RC0-1 and later (including 4.93~RC1-2) FTBFS on mipsel, the binary
> is built but broken.
> /path/to/exim -C /dev/null -be '${if bool{0}{yes}{no}}'
> fails with
> 2019-11-03 17:50:00 failed to malloc 2008002776 bytes of memory: called from
> line 3359 in readconf_main
git biscect finds ...
(sid_mipsel-dchroot)ametzler@eller:~/EXIM4/exim$ git bisect good
f3ebb786e451da973560f1c9d8cdb151d25108b5 is the first bad commit
commit f3ebb786e451da973560f1c9d8cdb151d25108b5
Author: Jeremy Harris
Date: Thu Jul 25 12:06:07 2019 +0100
Track tainted data and refuse to expand it
[...]
I used the attached script/compilerflags and Local/Makefile to reproduce.
cu Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
#!/bin/sh
set -e
rm -rf btree
mkdir -p btree
cp -a src/* btree/
mkdir -p btree/Local
cp -a ~/EXIM4/Makefile btree/Local/
echo 'SUPPORT_TLS=yes' >> btree/Local/Makefile
cd btree
env \
PATH='/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games'
\
LC_ALL='C' \
CFLAGS='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-fno-strict-aliasing -Wall -Wdate-time -D_FORTIFY_SOURCE=2' \
CPPFLAGS='-Wdate-time -D_FORTIFY_SOURCE=2' \
CXXFLAGS='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security' \
FCFLAGS='-g -O2 -fstack-protector-strong' \
FFLAGS='-g -O2 -fstack-protector-strong' \
GCJFLAGS='-g -O2 -fstack-protector-strong' \
LDFLAGS='-Wl,-z,relro -Wl,-z,now' \
LFLAGS='-Wl,-z,relro -Wl,-z,now' \
OBJCFLAGS='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security' \
OBJCXXFLAGS='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security' \
make FULLECHO='' -j5
for i in `find -name exim -type f` ; do echo $i ; $i -C /dev/null -be '${if
bool{0}{yes}{no}}' ; done
##
# The Exim mail transport agent #
##
# This is the template for Exim's main build-time configuration file. It
# contains settings that are independent of any operating system. These are
# things that are mostly sysadmin choices. The items below are divided into
# those you must specify, those you probably want to specify, those you might
# often want to specify, and those that you almost never need to mention.
# Edit this file and save the result to a file called Local/Makefile within the
# Exim distribution directory before running the "make" command.
# Things that depend on the operating system have default settings in
# OS/Makefile-Default, but these are overridden for some OS by files
# called called OS/Makefile-. You can further override these by
# creating files called Local/Makefile-, and
# Local/Makefile- (where "" stands for the name of
# your operating system - look at the names in the OS directory to see
# which names are recognized, and "" is derived from the
# environment variable "build")
# However, if you are building Exim for a single OS only, you don't need to
# worry about setting up Local/Makefile-. Any build-time configuration
# settings you require can in fact be placed in the one file called
# Local/Makefile. It is only if you are building for several OS from the same
# source files that you need to worry about splitting off your own OS-dependent
# settings into separate files. (There's more explanation about how this all
# works in the toplevel README file, under "Modifying the building process", as
# well as in the Exim specification.)
# One OS-specific thing that may need to be changed is the command for running
# the C compiler; the overall default is gcc, but some OS Makefiles specify cc.
# You can override anything that is set by putting CC=whatever in your
# Local/Makefile.
# NOTE: You should never need to edit any of the distributed Makefiles; all
# overriding can be done in your Local/Makefile(s). This will make it easier
# for you when the next release comes along.
# The location of the X11 libraries is something else that is quite variable
# even between different versions of the same operating system (and indeed
# there are different versions of X11 as well, of course). The four settings
# concerned here are X11, XINCLUDE, XLFLAGS (linking flags) and X11_LD_LIB
# (dynamic run-time library). You need not worry about X11 unless you want to
# compile the Exim monitor utility. Exim itself does not use X11.
# Another area of variability between systems is the type and location of the
# DBM library package. Exim has support for ndbm, gdbm, tdb, and Berkeley DB.
# By default the code assumes ndbm; this often works with gdbm or DB, provided
# they are correctly installed, via