Use uasm to compile the optimized code instead of generic C code for
faster operations.
Before:
```
7zz x 10.83s user 0.40s system 98% cpu 11.439 total
```
After:
```
7zz x 6.87s user 0.40s system 98% cpu 7.395 total
```
catch is ancient and has no support for aarch64-darwin. The following
snippet is an example of what is supported on darwin platforms in catch
(i.e., prior to v2).
```
#ifdef CATCH_PLATFORM_MAC
#if defined(__ppc64__) || defined(__ppc__)
#define CATCH_TRAP() \
__asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
: : : "memory","r0","r3","r4" ) /* NOLINT */
#else
#define CATCH_TRAP() __asm__("int $3\n" : : /* NOLINT */ )
#endif
```
Fix wrong header for statfs function.
Use gccStdenv to build with GCC on all systems. GCC is hardcoded in
configure.in, but after setting CC_FOR_BUILD to cc to use Clang, the
build fails anyway when running a post-compilation command:
clang -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"<out>/lib/arj\"" -D_UNIX -g -O2 -o darwin20.6.0/en/rs/arj/arj <objects_files>
: darwin20.6.0/en/rs/arj/arj
./darwin20.6.0/en/rs/tools/join ./darwin20.6.0/en/rs/arj/arj ./darwin20.6.0/en/rs/arjsfxjr/arjsfxjr
JOIN v 1.30 [26/04/2003] Not a part of any binary package!
Copying .. done!
./darwin20.6.0/en/rs/tools/join ./darwin20.6.0/en/rs/arj/arj ./darwin20.6.0/en/rs/arjsfx/arjsfx
JOIN v 1.30 [26/04/2003] Not a part of any binary package!
Copying ... done!
./darwin20.6.0/en/rs/tools/join ./darwin20.6.0/en/rs/arj/arj ./darwin20.6.0/en/rs/arjsfxv/arjsfxv
JOIN v 1.30 [26/04/2003] Not a part of any binary package!
Copying ..... done!
./darwin20.6.0/en/rs/tools/join ./darwin20.6.0/en/rs/arj/arj ./darwin20.6.0/en/rs/sfxstub/sfxstub
JOIN v 1.30 [26/04/2003] Not a part of any binary package!
Copying . done!
rm -f ./darwin20.6.0/en/rs/help.arj
TZ=UTC0 ./darwin20.6.0/en/rs/arj/arj a ./darwin20.6.0/en/rs/help.arj -+ -t1f -2d -e -jm -jh65535 -jt -hdo200506231314 ./resource/en/arj?.txt
ARJ32 v 3.10, Copyright (c) 1998-2004, ARJ Software Russia.
Creating archive : ./darwin20.6.0/en/rs/help.arj
Adding ./resource/en/arjl.txt 37.2%
Adding ./resource/en/arjs.txt 47.3%
Testing arjl.txt OK
Testing arjs.txt OK
2 file(s)
./darwin20.6.0/en/rs/tools/join ./darwin20.6.0/en/rs/arj/arj ./darwin20.6.0/en/rs/help.arj
JOIN v 1.30 [26/04/2003] Not a part of any binary package!
Copying . done!
./darwin20.6.0/en/rs/tools/postproc darwin20.6.0/en/rs/arj/arj
POSTPROC v 1.30 [17/01/2003] Not a part of any binary package!
Patch not found
make[1]: *** [GNUmakefile:398: darwin20.6.0/en/rs/arj/arj] Error 3
* 7zz: 21.01 -> 21.04
Also build from source instead of using the binaries.
We cannot (yet) build the fully optimized version as it requires the
ASMC assembler which currently doesn't build with GCC.
diffoscope shown non-determinism in embedded gzip timestamp:
--- p7zip-17.04/share/man/man1/7z.1.gz
+++ p7zip-17.04.check/share/man/man1/7z.1.gz
─ filetype from file(1)
@@ -1 +1 @@
-gzip compressed data, was "7z.1", last modified: Fri Oct 1 14:14:55 2021, from Unix
+gzip compressed data, was "7z.1", last modified: Sat Oct 9 08:15:33 2021, from Unix
Fix it by using `gzip -n`.