Hi Paul,
I've built TZif files with following commands:
mkdir /tmp/zic
cd /tmp/zic
git clone https://github.com/eggert/tz.git .
make -C . zic
make -C . NDATA= rearguard.zi
mkdir data
# Truncate at 1 Jan 2100.
./zic -b fat -r "/@4102444800" -d ./data rearguard.zi
make TZDIR="./data" all

Then I've compiled attached file:
g++ mktime_test.cpp localtime.o

Test tries to find epoch timestamp for 2 Jul 1980 midnight at America/Los_Angeles.

With a truncated TZif file it prints 331344000. With non-truncated one it prints 331372800.
The latter is the right answer.

Also, date command is wrong on certain time zones:
make TZDIR="./data" date
TZ=Antarctica/Palmer ./date -r -631152000

prints "Sat Dec 31 20:00:00 -04 1949" even though 1 Jan 1950 offset should be zero.

Thanks,
Almaz