Cross-compilation support

Detail:
* Consolidate and complete .gitignore
* GNUmakefile: add translation of Makefile to GNU make / cross-compilation
  requirements (this component is too non-standard to make much use of the
  shared makefiles)
* Makefile: comment out rules for objects that aren't used for any targets,
  for clarity; auto-create empty directories and don't clean files that are
  never created
* Various: change to using OS-agnostic filename path syntax
* Various: ensure case matches for filename paths (don't assume host filing
  system is case-agnostic)
* Enable GitLab CI, and address the warnings generated
* Enable GitLab CD for stubs (used implicitly when linker is invoked by cc)
* Fix bug uncovered by cppcheck: assert() triggered by clients compiled to
  C90 standard was performing zero-page reads
21 jobs for CrossCompilationSupport in 5 minutes and 57 seconds (queued for 5 seconds)
Status Job ID Name Coverage
  Static Analysis
passed #23881
cross
cppcheck

00:00:31

passed #23874
cross
gitattributes

00:00:01

passed #23875
cross
gitignore

00:00:01

passed #23878
cross
head_log

00:00:01

passed #23880
cross
head_whitesp

00:00:01

passed #23876
cross
license

00:00:00

passed #23879
cross
makefile

00:00:01

passed #23877
cross
versionnum

00:00:01

 
  Softload
passed #23882
cross
softload

00:00:31

failed #23883
cross allowed to fail
softload_gnu

00:00:25

 
  Disc
failed #23884
cross allowed to fail
disc_BuildHost

00:00:16

failed #23885
cross allowed to fail
disc_Disc

00:00:28

 
  Rom
failed #23886
cross allowed to fail
rom_BCM2835

00:00:27

failed #23893
cross allowed to fail
rom_iMx6

00:00:26

failed #23887
cross allowed to fail
rom_IOMD32

00:00:25

failed #23888
cross allowed to fail
rom_OMAP3

00:00:26

failed #23889
cross allowed to fail
rom_OMAP4

00:00:27

failed #23890
cross allowed to fail
rom_OMAP5

00:00:26

failed #23891
cross allowed to fail
rom_Titanium

00:00:27

failed #23892
cross allowed to fail
rom_Tungsten

00:00:26

 
  Cleanup
passed #23894
cross
cleanup

00:00:01

 
Name Stage Failure
failed
rom_iMx6 Rom
Batched errors...
Error running make export (hdrs) on module 'FileCore'.
Error running make export (hdrs) on module 'ADFS'.
Error running make export (hdrs) on module 'RamFS'.
Error running make export (hdrs) on module 'SCSIFS'.
Error running make export (hdrs) on module 'SDFS'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
rom_Tungsten Rom
------------------------------------------------------------------------------
Batched errors...
Error running make export (hdrs) on module 'FileCore'.
Error running make export (hdrs) on module 'ADFS'.
Error running make export (hdrs) on module 'RamFS'.
Error running make export (hdrs) on module 'SCSIFS'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
rom_Titanium Rom
Batched errors...
Error running make export (hdrs) on module 'FileCore'.
Error running make export (hdrs) on module 'ADFS4'.
Error running make export (hdrs) on module 'RamFS'.
Error running make export (hdrs) on module 'SCSIFS'.
Error running make export (hdrs) on module 'SDFS'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
rom_OMAP5 Rom
Batched errors...
Error running make export (hdrs) on module 'FileCore'.
Error running make export (hdrs) on module 'ADFS4'.
Error running make export (hdrs) on module 'RamFS'.
Error running make export (hdrs) on module 'SCSIFS'.
Error running make export (hdrs) on module 'SDFS'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
rom_OMAP4 Rom
Batched errors...
Error running make export (hdrs) on module 'FileCore'.
Error running make export (hdrs) on module 'ADFS'.
Error running make export (hdrs) on module 'RamFS'.
Error running make export (hdrs) on module 'SCSIFS'.
Error running make export (hdrs) on module 'SDFS'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
rom_OMAP3 Rom
Batched errors...
Error running make export (hdrs) on module 'FileCore'.
Error running make export (hdrs) on module 'ADFS'.
Error running make export (hdrs) on module 'RamFS'.
Error running make export (hdrs) on module 'SCSIFS'.
Error running make export (hdrs) on module 'SDFS'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
rom_IOMD32 Rom
------------------------------------------------------------------------------
Batched errors...
Error running make export (hdrs) on module 'FileCore'.
Error running make export (hdrs) on module 'ADFS'.
Error running make export (hdrs) on module 'RamFS'.
Error running make export (hdrs) on module 'SCSIFS'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
rom_BCM2835 Rom
Batched errors...
Error running make export (hdrs) on module 'FileCore'.
Error running make export (hdrs) on module 'ADFS'.
Error running make export (hdrs) on module 'RamFS'.
Error running make export (hdrs) on module 'SCSIFS'.
Error running make export (hdrs) on module 'SDFS'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
disc_Disc Disc
Error running make export (hdrs) on module 'PDumperE2'.
Error running make export (hdrs) on module 'PDumperIW'.
Error running make export (hdrs) on module 'PDumperLJ'.
Error running make export (hdrs) on module 'DesktopBoot'.
Error running make export (hdrs) on module 'PatchesPatch'.
Error running make export (hdrs) on module 'ChangeFSI'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
disc_BuildHost Disc
Error running make export (hdrs) on module 'egrep'.
Error running make export (hdrs) on module 'grep'.
Error running make export (hdrs) on module 'mkdir'.
Error running make export (hdrs) on module 'sed'.
Error running make export (hdrs) on module 'wc'.
Error running make export (hdrs) on module 'ShrinkWrap'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
softload_gnu Softload
arm-unknown-riscos-gcc -c  -DDDE -nostdinc -isystem /home/gitlab-runner/builds/hYz1sbzj/0/bavison/RISC_OSLib/RiscOS/Export/APCS-32/Lib/CLib -isystem /home/gitlab-runner/builds/hYz1sbzj/0/bavison/RISC_OSLib/RiscOS/Export/APCS-32/Lib/RISC_OSLib -mno-poke-function-name -Wall -Wextra -march=armv2 -mfpu=fpe3 -O2 -std=c99 -mlibscl -fno-zero-initialized-in-bss -DSHARED_C_LIBRARY -DUROM  -M time.c > time.rm_d 2> /dev/null
sed -i -e 's,time.o *:,time.rm_o:,' time.rm_d
asasm -I/home/gitlab-runner/builds/hYz1sbzj/0/bavison/RISC_OSLib/RiscOS/Export/APCS-32/Hdr/Global -I/home/gitlab-runner/builds/hYz1sbzj/0/bavison/RISC_OSLib/RiscOS/Export/APCS-32/Hdr/Interface -PD "APCS SETS \"APCS-32\"" -PD "Machine SETS \"All\"" -PD "UserIF SETS \"Iyonix\"" -apcs 3/32bit/fpe3 -PD "SHARED_C_LIBRARY SETL {TRUE}" -depend cl_spare.rm_d -pd "zm1 SETL {TRUE}" -o cl_spare.rm_o clib/cl_spare.s
/home/gitlab-runner/builds/hYz1sbzj/0/bavison/RISC_OSLib/clib/s/cl_spare:24: Info: Area C$$data only contains zero bytes, use NOINIT area attribute ?
make[1]: Target 'install' not remade because of errors.
GNUmakefile:73: recipe for target 'install' failed
make: *** [install] Error 2
Cleaning up file based variables
ERROR: Job failed: exit status 1