Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

Use <atomic> types for C++ and <stdatomic.h> for C.

Also, fix things that incorrectly reach into the protected_*_t to
incorrectly access values.
14 jobs for master in 9 minutes and 7 seconds (queued for 12 seconds)
Status Job ID Name Coverage
  Build
failed #11707
FreeBSD
jsdoor-freebsd

00:05:19

failed #11708
Linux
jsdoor-linux

00:06:46

failed #11710
FreeBSD
jsdoor-windows

00:03:33

passed #11702
FreeBSD
sbbs-freebsd

00:06:42

failed #11697
Linux
sbbs-linux

00:07:24

failed #11700
Windows
sbbs-windows

00:03:45

passed #11709
FreeBSD
sexpots-freebsd

00:00:11

passed #11698
Linux
sexpots-linux

00:00:10

passed #11701
Windows
sexpots-windows

00:00:26

passed #11705
FreeBSD
syncdraw-freebsd

00:00:25

passed #11706
Linux
syncdraw-linux

00:00:51

passed #11703
FreeBSD
syncterm-freebsd

00:01:18

passed #11699
Linux
syncterm-linux

00:02:08

passed #11704
FreeBSD
syncterm-windows

00:02:31

 
Name Stage Failure
failed
sbbs-linux Build
Compiling sbbscon.c
Compiling sbbs_status.c
Compiling websrvr.c
Linking gcc.linux.x64.lib.release/libwebsrvr.so
Linking gcc.linux.x64.exe.release/sbbs
/usr/bin/ld: gcc.linux.x64.lib.release/libsbbs.so: undefined reference to `protected_uint32_val'
collect2: error: ld returned 1 exit status
make: *** [GNUmakefile:150: gcc.linux.x64.exe.release/sbbs] Error 1
ERROR: Job failed: exit status 1
failed
jsdoor-linux Build
Compiling xpprintf.c
Creating gcc.linux.x64.lib.release/libxpdev.a
make[1]: Leaving directory '/home/gitlab-runner/builds/vLEE6HYB/1/main/sbbs/src/xpdev'
Linking gcc.linux.x64.exe.release/jsdoor
/usr/bin/ld: gcc.linux.x64.obj.release-mt/js_server.o: in function `js_server_get':
js_server.c:(.text+0x8fe): undefined reference to `protected_uint32_val'
collect2: error: ld returned 1 exit status
make: *** [GNUmakefile:210: gcc.linux.x64.exe.release/jsdoor] Error 1
ERROR: Job failed: exit status 1
failed
jsdoor-freebsd Build
    { (jschar *)(((char *)(length2StringTable + (c))) +                       \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsstr.cpp:3224:5: warning: cast from 'char *' to 'jschar *' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
= { R12(0) };
^~~~~~
jsstr.cpp:3136:24: note: expanded from macro 'R12'
#define R12(n) R10(n), R10((n) + (1 << 10)), R10((n) + (2 << 10)), R10((n) + (3 << 10))
^~~~~~~~~~~~~~~~~~~~
jsstr.cpp:3135:68:
Job's log exceeded limit of 4194304 bytes.
failed
jsdoor-windows Build
/usr/local/lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld: warning: resolving _getaddrinfo by linking to _getaddrinfo@16
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
/usr/local/lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld: warning: resolving _freeaddrinfo by linking to _freeaddrinfo@4
/usr/local/lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld: warning: resolving _getnameinfo by linking to _getnameinfo@28
/usr/local/lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld: gcc.win32.amd64.obj.release-mt/js_server.o:js_server.c:(.text+0x824): undefined reference to `protected_uint32_val'
collect2: error: ld returned 1 exit status
gmake: *** [GNUmakefile:125: gcc.win32.amd64.lib.release/libsbbs.so] Error 1
ERROR: Job failed: exit status 1
failed
sbbs-windows Build

61 Warning(s)
2 Error(s)

Time Elapsed 00:03:22.39

!ERROR(s) occurred
Cleaning up file based variables
ERROR: Job failed: exit status 1