2024-05-21  Release Manager

	* GCC 13.3.0 released.

2023-10-18  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111756
	* Make-lang.in (CM2DEP): New define conditionally set if
	($(CXXDEPMODE),depmode=gcc3).
	(m2/gm2-gcc/%.o): Ensure $(@D)/$(DEPDIR) is created.
	Add $(CM2DEP) to the $(COMPILER) command and use $(POSTCOMPILE).
	(m2/gm2-gcc/m2configure.o): Ditto.
	(m2/gm2-lang.o): Ditto.
	(m2/m2pp.o): Ditto.
	(m2/gm2-gcc/rtegraph.o): Ditto.
	(m2/mc-boot/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot/main.o): Ditto.
	(mcflex.o): Ditto.
	(m2/gm2-libs-boot/M2RTS.o): Ditto.
	(m2/gm2-libs-boot/%.o): Ditto.
	(m2/gm2-libs-boot/%.o): Ditto.
	(m2/gm2-libs-boot/RTcodummy.o): Ditto.
	(m2/gm2-libs-boot/RTintdummy.o): Ditto.
	(m2/gm2-libs-boot/wrapc.o): Ditto.
	(m2/gm2-libs-boot/UnixArgs.o): Ditto.
	(m2/gm2-libs-boot/choosetemp.o): Ditto.
	(m2/gm2-libs-boot/errno.o): Ditto.
	(m2/gm2-libs-boot/dtoa.o): Ditto.
	(m2/gm2-libs-boot/ldtoa.o): Ditto.
	(m2/gm2-libs-boot/termios.o): Ditto.
	(m2/gm2-libs-boot/SysExceptions.o): Ditto.
	(m2/gm2-libs-boot/SysStorage.o): Ditto.
	(m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
	(m2/gm2-compiler-boot/M2Error.o): Ditto.
	(m2/gm2-compiler-boot/%.o): Ditto.
	(m2/gm2-compiler-boot/%.o): Ditto.
	(m2/gm2-compiler-boot/m2flex.o): Ditto.
	(m2/gm2-compiler/m2flex.o): Ditto.
	(m2/gm2-libs/choosetemp.o): Ditto.
	(m2/boot-bin/mklink$(exeext)): Ditto.
	(m2/pge-boot/%.o): Ditto.
	(m2/pge-boot/%.o): Ditto.
	* README: Remove out of date info.
	* gm2-compiler/M2Quads.mod (BuildStringAdrParam): Correct
	procedure end name.
	* gm2-compiler/SymbolTable.mod (GetVarPointerCheck): Add
	default FALSE return value.

2023-09-26  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-09-26  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111510
	* gm2-compiler/M2GenGCC.mod (IsExportedGcc): Minor spacing changes.
	(BuildTrashTreeFromInterface): Minor spacing changes.
	* gm2-compiler/M2Options.mod (GetRuntimeModuleOverride): Call
	string to generate a nul terminated C style string.
	* gm2-compiler/M2Quads.mod (BuildStringAdrParam): New procedure.
	(BuildM2InitFunction): Replace inline parameter generation with
	calls to BuildStringAdrParam.

2023-09-13  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-09-13  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (GM2_FLAGS): Add -Wcase-enum.
	(GM2_ISO_FLAGS): Add -Wcase-enum.
	* gm2-compiler/M2CaseList.mod (EnumerateErrors): Issue
	singular or plural start text prior to the enum list.
	Remove unused parameter tokenno.
	(EmitMissingRangeErrors): New procedure.
	(MissingCaseBounds): Call EmitMissingRangeErrors.
	(MissingCaseStatementBounds): Call EmitMissingRangeErrors.
	* gm2-libs-iso/TextIO.mod: Fix spacing.

2023-09-12  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-09-12  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2CaseList.def (PushCase): Rename parameters
	r to rec and v to va.  Add expr parameter.
	(MissingCaseStatementBounds): New procedure function.
	* gm2-compiler/M2CaseList.mod (RangePair): Add expression.
	(PushCase): Rename parameters r to rec and v to va.  Add
	expr parameter.
	(RemoveRange): New procedure function.
	(SubBitRange): Detect the case when the range in the set matches
	lo..hi.
	(CheckLowHigh): New procedure.
	(ExcludeCaseRanges): Rename parameter c to cd.  Rename local
	variables q to cl and r to rp.
	(High): Remove.
	(Low): Remove.
	(DoEnumValues): Remove.
	(IncludeElement): New procedure.
	(IncludeElements): New procedure.
	(ErrorRangeEnum): New procedure.
	(ErrorRange): Remove.
	(ErrorRanges): Remove.
	(appendEnum): New procedure.
	(appendStr): New procedure.
	(EnumerateErrors): New procedure.
	(MissingCaseBounds): Re-implement.
	(InRangeList): Remove.
	(MissingCaseStatementBounds): New procedure function.
	(checkTypes): Re-format.
	(inRange): Re-format.
	(TypeCaseBounds): Re-format.
	* gm2-compiler/M2Error.mod (GetAnnounceScope): Add noscope to
	case label list.
	* gm2-compiler/M2GCCDeclare.mod: Replace ForeachFieldEnumerationDo
	with ForeachLocalSymDo.
	* gm2-compiler/M2Options.def (SetCaseEnumChecking): New procedure.
	(CaseEnumChecking): New variable.
	* gm2-compiler/M2Options.mod (SetCaseEnumChecking): New procedure.
	(Module initialization): set CaseEnumChecking to FALSE.
	* gm2-compiler/M2Quads.def (QuadOperator): Alphabetically ordered.
	* gm2-compiler/M2Quads.mod (IsBackReferenceConditional): Add else
	clause.
	(BuildCaseStart): Pass selector expression to InitCaseBounds.
	(CheckUninitializedVariablesAreUsed): Remove.
	(IsInlineWithinBlock): Remove.
	(AsmStatementsInBlock): Remove.
	(CheckVariablesInBlock): Remove commented code.
	(BeginVarient): Pass NulSym to InitCaseBounds.
	* gm2-compiler/M2Range.mod (FoldCaseBounds): New local variable
	errorGenerated.  Add call to MissingCaseStatementBounds.
	* gm2-compiler/P3Build.bnf (CaseEndStatement): Call ElseCase.
	* gm2-compiler/PCSymBuild.mod (InitDesExpr): Add else clause.
	(InitFunction): Add else clause.
	(InitConvert): Add else clause.
	(InitLeaf): Add else clause.
	(InitBinary): Add else clause.
	(InitUnary): Add else clause.
	* gm2-compiler/SymbolTable.def (GetNth): Re-write comment.
	(ForeachFieldEnumerationDo): Re-write comment stating alphabetical
	traversal.
	* gm2-compiler/SymbolTable.mod (GetNth): Re-write comment.
	Add case label for EnumerationSym and call GetItemFromList.
	(ForeachFieldEnumerationDo): Re-write comment stating alphabetical
	traversal.
	(SymEnumeration): Add ListOfFields used for declaration order.
	(MakeEnumeration): Initialize ListOfFields.
	(PutFieldEnumeration): Include Field in ListOfFields.
	* gm2-gcc/m2options.h (M2Options_SetCaseEnumChecking): New
	function.
	* gm2-lang.cc (gm2_langhook_handle_option): Add
	OPT_Wcase_enum case and call M2Options_SetCaseEnumChecking.
	* lang.opt (Wcase-enum): Add.

2023-09-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111330
	* gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
	case labels LogicalDiffOp, DummyOp, OptParamOp and
	InitAddressOp.

2023-08-13  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2023-08-13  Iain Sandoe  <iain@sandoe.co.uk>

	* Make-lang.in: Update suffix spellings to use 'soext'.
	Add libc to the plugin link.

2023-08-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod (EpochTime): New procedure.
	(GetClock): Call EpochTime if the C time functions are
	unavailable.
	* gm2-libs-iso/wrapclock.def (istimezone): New function
	definition.

2023-08-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108119
	* Make-lang.in (M2RTE_PLUGIN_SO): Assigned to
	plugin/m2rte$(exeext).so if enable_plugin is yes.
	(m2.all.cross): Replace plugin/m2rte$(soext) with
	$(M2RTE_PLUGIN_SO).
	(m2.all.encap): Replace plugin/m2rte$(soext) with
	$(M2RTE_PLUGIN_SO).
	(m2.install-plugin): Add dummy rule when enable_plugin
	is not yes.
	(plugin/m2rte$(exeext).so): Add dummy rule when enable_plugin
	is not yes.
	(m2/stage2/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
	$(M2RTE_PLUGIN_SO).
	(m2/stage1/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
	$(M2RTE_PLUGIN_SO).
	* gm2spec.cc (lang_specific_driver): Set need_plugin to false
	by default.

2023-08-09  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod (GetClock): Test GetTimespec
	return value.
	(SetClock): Test SetTimespec return value.
	* gm2-libs-iso/wrapclock.def (GetTimespec): Add integer
	return type.
	(SetTimespec): Add integer return type.

2023-08-07  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod: Re-implement using wrapclock.
	* gm2-libs-iso/wrapclock.def: New file.

2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110161
	* gm2-compiler/M2Check.mod (checkProcTypeEquivalence): New
	procedure function.
	(checkTypeKindEquivalence): Call checkProcTypeEquivalence
	if either left or right is a proc type.
	* gm2-compiler/M2Quads.mod (BuildRelOp): Create
	combinedTok prior to creating the range check quadruple.
	Use combinedTok when creating the range check quadruple.

2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110865
	* gm2-compiler/M2Quads.mod (BuildDesignatorArray):
	Rename t as type and d as dim.  New variable result.
	Allow constants of an array type to be indexed.

2023-07-31  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110284
	* Make-lang.in: Build $(generated_files) before building
	all $(GM2_C_OBJS).
	(m2_OBJS): Assign $(GM2_C_OBJS).  Add m2/gm2-gcc/rtegraph.o and
	m2/gm2-compiler-boot/m2flex.o.
	(GM2_C_OBJS): Remove m2/stor-layout.o.
	(m2/stor-layout.o): Remove rule.
	* gm2-gcc/gcc-consolidation.h (rtl.h): Remove include.
	(df.h): Remove include.
	(except.h): Remove include.
	(c-family/m2pp.o): Remove.
	* Make-maintainer.in (c-family/m2pp.o): Add.

2023-07-31  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-07-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110174
	* gm2-compiler/M2GCCDeclare.def (PromoteToCString): New procedure
	function.
	* gm2-compiler/M2GCCDeclare.mod (PromoteToCString): New procedure
	function.
	* gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Call
	skip_const_decl before chaining the parameter value.
	Use PromoteToCString to ensure the string is nul terminated.
	(CodeInline): Remove all parameters and replace with quad.
	Use GetQuadOtok to get operand token numbers.
	Remove call to DeclareConstant and replace it with PromoteToCString.
	* gm2-compiler/M2Quads.def (BuildInline): Rename into ...
	(BuildAsm): ... this.
	* gm2-compiler/M2Quads.mod: (BuildInline): Rename into ...
	(BuildAsm): ... this.
	(BuildAsmElement): Add debugging.
	* gm2-compiler/P1Build.bnf: Remove import of BuildInline.
	* gm2-compiler/P2Build.bnf: Remove import of BuildInline.
	* gm2-compiler/P3Build.bnf: Remove import of BuildInline and
	import BuildAsm.
	* gm2-compiler/PHBuild.bnf: Remove import of BuildInline.
	* gm2-libs-iso/SysClock.mod (foo): Remove.
	* gm2-libs/FIO.mod (BufferedRead): Rename parameter a to dest.
	Rename variable t to src.
	* m2pp.cc (pf): Correct block comment.
	(pe): Correct block comment.
	(m2pp_asm_expr): New function.
	(m2pp_statement): Call m2pp_asm_expr.

2023-07-30  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-07-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110631
	* gm2-libs/FIO.def (ReadAny): Correct comment as
	HIGH (a) + 1 is number of bytes.
	(WriteAny): Correct comment as HIGH (a) + 1 is number of
	bytes.
	* gm2-libs/FIO.mod (ReadAny): Correct comment as
	HIGH (a) + 1 is number of bytes.  Also pass HIGH (a) + 1
	to BufferedRead.
	(WriteAny): Correct comment as HIGH (a) + 1 is number of
	bytes.	Also pass HIGH (a) + 1 to BufferedWrite.
	(BufferedWrite): Rename parameter a to src, rename variable
	t to dest.  Correct parameter order to memcpy.

2023-07-30  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-07-20  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2SymInit.mod (IsExempt): Remove parameter exemption.
	(CheckIndrX): Call SetupLAlias between lhs and content.
	(trashParam): Re-write.
	(SetVarLRInitialized): Indicate shadow and heap are initialized.
	Call SetupIndr between shadow and heap.
	* gm2-compiler/P2SymBuild.mod: Import
	PutProcedureParameterHeapVars.
	(EndBuildProcedure): Call PutProcedureParameterHeapVars.
	* gm2-compiler/SymbolTable.def (GetParameterHeapVar): New
	procedure function.
	(PutProcedureParameterHeapVars): New procedure function.
	* gm2-compiler/SymbolTable.mod (MakeParameterHeapVar): New
	procedure function.
	(GetParameterHeapVar): New procedure function.
	(PuttParameterHeapVar): New procedure function.
	(PutProcedureParameterHeapVars): New procedure.
	(VarParam): HeapVar new record field.
	(PutVarParam): HeapVar assigned to NulSym.

2023-07-30  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Quads.mod (BuildDifAdrFunction): Removed
	unnecessary in error message.  Use vartok for location.
	(BuildOddFunction): Use optok for location.
	(BuildAbsFunction): Use vartok for location.  Bugfix set vartok.
	(BuildCapFunction): Use optok for location.
	(BuildOrdFunction): Use optok for location and correct format
	specifier.
	(BuildShiftFunction): Use vartok for location.
	(BuildRotateFunction): Use vartok for location.
	(BuildTruncFunction): Use vartok for location.
	(BuildFloatFunction): Use vartok for location.
	(BuildReFunction): Use vartok for location.
	(BuildImFunction): Use vartok for location.
	* gm2-compiler/M2SymInit.mod (trashParam): Remove commented code.

2023-07-30  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Quads.mod (BuildRealFuncProcCall): Set the trash
	parameter value to NIL if DEALLOCATE is detected.
	* gm2-compiler/M2SymInit.mod (CheckDeferredRecordAccess): Pass
	tok to SetVarInitialized.  Pass tok to GetVarComponentInitialized.
	(ComponentFindVar): Add tok parameter.  Check aliased pointer
	against Nil and generate warning if necessary.
	(deRefComponent): Add tok and sym parameters and pass them to
	getContent.
	(SetVarComponentInitialized): Add tok parameter.  Pass tok to
	ComponentFindVar.  Pass tok and sym to deRefComponent.
	(GetVarComponentInitialized): Add tok parameter.  Pass tok to
	ComponentFindVar.  Pass tok to deRefComponent.
	(SetVarInitialized): Add tok parameter.  Pass tok to
	SetVarComponentInitialized.
	(doGetVarInitialized): Add tok parameter.  Pass tok to
	GetVarComponentInitialized.
	(CheckXIndr): Pass lhs and lhstok to getContent.
	(CheckIndrX): Pass rhs and rhstok to getContent.
	(CheckBecomes): Pass destok to ComponentFindVar.  Pass des and
	destok to deRefComponent.
	(CheckAddr): Pass contenttok to GetVarInitialized.  Pass ptrtok
	to SetVarInitialized.
	(CheckReadBeforeInitQuad): Pass op1tok to SetVarInitialized for
	op1 cases and op3tok for op3 cases.
	(trashParam): Get operand tokens.  Pass op3tok to
	SetVarInitialized.  Pass op3 and op3tok to getContent.
	Alias ptr to NIL if procedure is DEALLOCATE.  Pass op3tok to
	SetVarInitialized.
	(IsDeallocate): New procedure function.
	(DetectTrash): Use IsDeallocate.
	(SetupLAlias): Allow exp to be Nil.
	(getContent): Generate warning message if ptr is Nil.

2023-07-30  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-07-18  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in: Minor formatting change.
	* gm2-compiler/M2GCCDeclare.mod
	(DeclareUnboundedProcedureParameters): Rename local variables.
	(WalkUnboundedProcedureParameters): Rename local variables.
	(DoVariableDeclaration): Avoid declaration of a variable if
	it is on the heap (used by static analysis only).
	* gm2-compiler/M2GenGCC.mod: Formatting.
	* gm2-compiler/M2Quads.def (GetQuadTrash): New procedure function.
	* gm2-compiler/M2Quads.mod (GetQuadTrash): New procedure function.
	(QuadFrame): Add Trash field.
	(BuildRealFuncProcCall): Detect ALLOCATE and DEALLOCATE and create
	a heap variable for parameter 1 saving it as the trashed variable
	for static analysis.
	(GenQuadOTrash): New procedure.
	(DisplayQuadRange): Bugfix.  Write the scope number.
	* gm2-compiler/M2SymInit.mod: Rewritten to separate LValue
	equivalence from LValue to RValue pairings.  Comprehensive
	detection of variant record implemented.  Allow dereferencing
	of pointers through LValue/RValue chains.
	* gm2-compiler/SymbolTable.def (PutVarHeap): New procedure.
	(IsVarHeap): New procedure function.
	(ForeachParamSymDo): New procedure.
	* gm2-compiler/SymbolTable.mod (PutVarHeap): New procedure.
	(IsVarHeap): New procedure function.
	(ForeachParamSymDo): New procedure.
	(MakeVariableForParam): Reformatted.
	(CheckForUnknownInModule): Reformatted.
	(SymVar): Add field Heap.
	(MakeVar): Assign Heap to FALSE.

2023-07-30  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-07-11  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2BasicBlock.def (InitBasicBlocksFromRange): New
	parameter ScopeSym.
	* gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): New
	parameter ScopeSym.
	(InitBasicBlocksFromRange): New	parameter ScopeSym.  Call
	ConvertQuads2BasicBlock with ScopeSym.
	(DisplayBasicBlocks): Uncomment.
	* gm2-compiler/M2Code.mod: Replace VariableAnalysis with
	ScopeBlockVariableAnalysis.
	(InitialDeclareAndOptiomize): Add parameter scope.
	(SecondDeclareAndOptimize): Add parameter scope.
	* gm2-compiler/M2GCCDeclare.mod (DeclareConstructor): Add scope
	parameter to DeclareTypesConstantsProceduresInRange.
	(DeclareTypesConstantsProceduresInRange): New parameter scope.
	Pass scope to DisplayQuadRange.  Reformatted.
	* gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): New parameter
	scope.
	* gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): New parameter
	scope.
	* gm2-compiler/M2Optimize.mod (KnownReachable): New parameter
	scope.
	* gm2-compiler/M2Options.def (SetUninitVariableChecking): Add
	arg parameter.
	* gm2-compiler/M2Options.mod (SetUninitVariableChecking): Add
	arg parameter and set boolean UninitVariableChecking and
	UninitVariableConditionalChecking.
	(UninitVariableConditionalChecking): New boolean set to FALSE.
	* gm2-compiler/M2Quads.def (IsGoto): New procedure function.
	(DisplayQuadRange): Add scope parameter.
	(LoopAnalysis): Add scope parameter.
	* gm2-compiler/M2Quads.mod: Import PutVarArrayRef.
	(IsGoto): New procedure function.
	(LoopAnalysis): Add scope parameter and use MetaErrorT1 instead
	of WarnStringAt.
	(BuildStaticArray): Call PutVarArrayRef.
	(BuildDynamicArray): Call PutVarArrayRef.
	(DisplayQuadRange): Add scope parameter.
	(GetM2OperatorDesc): Add relational condition cases.
	* gm2-compiler/M2Scope.def (ScopeProcedure): Add parameter.
	* gm2-compiler/M2Scope.mod (DisplayScope): Pass scopeSym to
	DisplayQuadRange.
	(ForeachScopeBlockDo): Pass scopeSym to p.
	* gm2-compiler/M2SymInit.def (VariableAnalysis): Rename to ...
	(ScopeBlockVariableAnalysis): ... this.
	* gm2-compiler/M2SymInit.mod (ScopeBlockVariableAnalysis): Add
	scope parameter.
	(bbEntry): New pointer to record.
	(bbArray): New array.
	(bbFreeList): New variable.
	(errorList): New list.
	(IssueConditional): New procedure.
	(GenerateNoteFlow): New procedure.
	(IssueWarning): New procedure.
	(IsUniqueWarning): New procedure.
	(CheckDeferredRecordAccess): Re-implement.
	(CheckBinary): Add warning and lst parameters.
	(CheckUnary): Add warning and lst parameters.
	(CheckXIndr): Add warning and lst parameters.
	(CheckIndrX): Add warning and lst parameters.
	(CheckBecomes): Add warning and lst parameters.
	(CheckComparison): Add warning and lst parameters.
	(CheckReadBeforeInitQuad): Add warning and lst parameters to all
	Check procedures.  Add all case quadruple clauses.
	(FilterCheckReadBeforeInitQuad): Add warning and lst parameters.
	(CheckReadBeforeInitFirstBasicBlock): Add warning and lst parameters.
	(bbArrayKill): New procedure.
	(DumpBBEntry): New procedure.
	(DumpBBArray): New procedure.
	(DumpBBSequence): New procedure.
	(TestBBSequence): New procedure.
	(CreateBBPermultations): New procedure.
	(ScopeBlockVariableAnalysis): New procedure.
	(GetOp3): New procedure.
	(GenerateCFG): New procedure.
	(NewEntry): New procedure.
	(AppendEntry): New procedure.
	(init): Initialize bbFreeList and errorList.
	* gm2-compiler/SymbolTable.def (PutVarArrayRef): New procedure.
	(IsVarArrayRef): New procedure function.
	* gm2-compiler/SymbolTable.mod (SymVar): ArrayRef new field.
	(MakeVar): Set ArrayRef to FALSE.
	(PutVarArrayRef): New procedure.
	(IsVarArrayRef): New procedure function.
	* gm2-gcc/init.cc (_M2_M2SymInit_init): New prototype.
	(init_PerCompilationInit): Add call to _M2_M2SymInit_init.
	* gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
	New definition.
	* gm2-lang.cc (gm2_langhook_handle_option): Add new case
	OPT_Wuninit_variable_checking_.
	* lang.opt: Wuninit-variable-checking= new entry.

2023-07-30  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-07-03  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110125
	* Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2SymInit.def.
	(GM2-COMP-BOOT-MODS): Add M2SymInit.mod.
	* gm2-compiler/M2BasicBlock.mod: Formatting changes.
	* gm2-compiler/M2Code.mod: Remove import of VariableAnalysis from
	M2Quads.  Import VariableAnalysis from M2SymInit.mod.
	* gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList):
	Add debugging print for a component.
	(TypeConstFullyDeclared): Call RememberType for every type.
	* gm2-compiler/M2GenGCC.mod (CodeReturnValue): Add parameter to
	GetQuadOtok.
	(CodeBecomes): Add parameter to GetQuadOtok.
	(CodeXIndr): Add parameter to GetQuadOtok.
	* gm2-compiler/M2Optimize.mod (ReduceBranch): Reformat and
	preserve operand token positions when reducing the branch
	quadruples.
	(ReduceGoto): Reformat.
	(FoldMultipleGoto): Reformat.
	(KnownReachable): Reformat.
	* gm2-compiler/M2Options.def (UninitVariableChecking): New
	variable declared and exported.
	(SetUninitVariableChecking): New procedure.
	* gm2-compiler/M2Options.mod (SetWall): Set
	UninitVariableChecking.
	(SetUninitVariableChecking): New procedure.
	* gm2-compiler/M2Quads.def (PutQuadOtok): Exported and declared.
	(VariableAnalysis): Removed.
	* gm2-compiler/M2Quads.mod (PutQuadOtok): New procedure.
	(doVal): Reformatted.
	(MarkAsWrite): Reformatted.
	(MarkArrayAsWritten): Reformatted.
	(doIndrX): Use PutQuadOtok.
	(MakeRightValue): Use GenQuadOtok.
	(MakeLeftValue): Use GenQuadOtok.
	(CheckReadBeforeInitialized): Remove.
	(IsNeverAltered): Reformat.
	(DebugLocation): New procedure.
	(BuildDesignatorPointer): Use GenQuadO to preserve operand token
	position.
	(BuildRelOp): Use GenQuadOtok ditto.
	* gm2-compiler/SymbolTable.def (VarCheckReadInit): New procedure.
	(VarInitState): New procedure.
	(PutVarInitialized): New procedure.
	(PutVarFieldInitialized): New procedure function.
	(GetVarFieldInitialized): New procedure function.
	(PrintInitialized): New procedure.
	* gm2-compiler/SymbolTable.mod (VarCheckReadInit): New procedure.
	(VarInitState): New procedure.
	(PutVarInitialized): New procedure.
	(PutVarFieldInitialized): New procedure function.
	(GetVarFieldInitialized): New procedure function.
	(PrintInitialized): New procedure.
	(LRInitDesc): New type.
	(SymVar): InitState new field.
	(MakeVar): Initialize InitState.
	* gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
	New function declaration.
	* gm2-lang.cc (gm2_langhook_handle_option): Detect
	OPT_Wuninit_variable_checking and call SetUninitVariableChecking.
	* lang.opt: Add Wuninit-variable-checking.
	* gm2-compiler/M2SymInit.def: New file.
	* gm2-compiler/M2SymInit.mod: New file.

2023-07-29  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-06-13  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (check-format-error): New rule.
	* gm2-compiler/M2MetaError.mod (op): Add calls InternalError if
	digits are detected.
	* gm2-compiler/M2Quads.mod (BuildForToByDo): Bugfix to format
	specifier.
	(BuildLengthFunction): Bugfix to format	specifiers.
	(BuildOddFunction): Bugfix to format specifiers.
	(BuildAbsFunction): Bugfix to format specifiers.
	(BuildCapFunction): Bugfix to format specifiers.
	(BuildChrFunction): Bugfix to format specifiers.
	(BuildOrdFunction): Bugfix to format specifiers.
	(BuildMakeAdrFunction): Bugfix to format specifiers.
	(BuildSizeFunction): Bugfix to format specifiers.
	(BuildBitSizeFunction): Bugfix to format specifiers.
	* tools-src/checkmeta.py: New file.

2023-07-29  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-06-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110189
	* gm2-compiler/M2Quads.mod (BuildAbsFunction): Replace abort
	format specifier.
	(BuildValFunction): Replace abort format specifier.
	(BuildCastFunction): Replace abort format specifier.
	(BuildMinFunction): Replace abort format specifier.
	(BuildMaxFunction): Replace abort format specifier.
	(BuildTruncFunction): Replace abort format specifier.
	* gm2-compiler/P3Build.bnf (Pass1): Remove.
	(Pass2): Remove.
	(Pass3): Remove.
	(Expect): Add Pass1.
	(AsmStatement): Remove Pass3.
	(AsmOperands): Remove Pass3.
	(AsmOperandSpec): Remove Pass3.
	(AsmInputElement): Remove Pass3.
	(AsmOutputElement): Remove Pass3.
	(AsmTrashList): Remove Pass3.

2023-07-29  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-06-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110126
	* gm2-compiler/M2Quads.def (BuildAsmElement): Remove
	trash parameter.
	(BuildAsmTrash): New procedure.
	* gm2-compiler/M2Quads.mod (BuildAsmTrash): New procedure.
	(BuildAsmElement): Remove trash parameter.
	* gm2-compiler/P3Build.bnf (AsmTrashList): Rewrite.

2023-07-29  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-06-08  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110126
	* gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Remove
	tokenno parameter.  Use object tok instead of tokenno.
	(BuildTrashTreeFromInterface): Use object tok instead of
	GetDeclaredMod.
	(CodeInline): Remove tokenno from parameter list to BuildTreeFromInterface.
	* gm2-compiler/M2Quads.def (BuildAsmElement): Exported and
	defined.
	* gm2-compiler/M2Quads.mod (BuildOptimizeOff): Reformatted.
	(BuildInline): Reformatted.
	(BuildLineNo): Reformatted.
	(UseLineNote): Reformatted.
	(BuildAsmElement): New procedure.
	* gm2-compiler/P0SyntaxCheck.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/P1Build.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/P2Build.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/P3Build.bnf (AsmOperands): Rewrite.
	(AsmOperandSpec): Rewrite.
	(AsmOutputList): New rule.
	(AsmInputList): New rule.
	(TrashList): Rewrite.
	* gm2-compiler/PCBuild.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/PHBuild.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/SymbolTable.def (PutRegInterface):
	Rewrite interface.
	(GetRegInterface): Rewrite interface.
	* gm2-compiler/SymbolTable.mod (SetFirstUsed): New procedure.
	(PutFirstUsed): New procedure.
	(PutRegInterface): Rewrite.
	(GetRegInterface): Rewrite.

2023-07-29  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-06-07  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110019
	* gm2-compiler/SymbolKey.mod (SearchAndDo): Reformatted.
	(ForeachNodeDo): Reformatted.
	* gm2-compiler/SymbolTable.mod (AddListify): Join list
	with "," or "and" if more than one word is in the list.
	* m2.flex: Remove -1 from atoi(yytext) line number.

2023-07-29  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-06-03  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110003
	* gm2-compiler/P2SymBuild.mod (GetParameterShadowVar): Import.
	(CheckFormalParameterSection): Call PutDeclared for the shadow
	variable associated with the parameter.

2023-07-29  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-24  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109952
	* Make-maintainer.in: Change header to include emacs file mode.
	* gm2-compiler/M2GenGCC.mod (BuildHighFromChar): Check whether
	operand is a constant string and is nul terminated then return one.
	* gm2-compiler/PCSymBuild.mod (WalkFunction): Add default return
	TRUE.  Static analysis missing return path fix.
	* gm2-libs/IO.mod (Init): Rewrite to help static analysis.
	* target-independent/m2/gm2-libs.texi: Rebuild.

2023-07-29  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-19  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109908
	* gm2-libs-iso/Strings.mod (Delete): Re-implement.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109879
	* gm2-libs-iso/LongIO.mod (ReadReal): Call SkipSpaces.
	* gm2-libs-iso/LongWholeIO.mod (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/RealIO.mod (ReadReal): Call SkipSpaces.
	* gm2-libs-iso/ShortWholeIO.mod: (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/TextIO.mod: Import SkipSpaces.
	* gm2-libs-iso/WholeIO.mod (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/TextUtil.def: New file.
	* gm2-libs-iso/TextUtil.mod: New file.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108344
	* gm2-libs-coroutines/TimerHandler.mod (EnableLED): New
	constant.
	(Timer): Test EnableLED before switching on the scroll LED.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109830
	* gm2-libs-iso/SeqFile.mod (newCid): New parameter toAppend
	used to select FIO.OpenForRandom.
	(OpenRead): Pass extra parameter to newCid.
	(OpenWrite): Pass extra parameter to newCid.
	(OpenAppend): Pass extra parameter to newCid.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109810
	* gm2-compiler/M2ALU.mod (ConvertConstToType): Use
	PrepareCopyString in place of DoCopyString.
	* gm2-compiler/M2GenGCC.def (DoCopyString): Rename to ...
	(PrepareCopyString): ... this.
	* gm2-compiler/M2GenGCC.mod (CodeStatement): Call CodeReturnValue
	with a single parameter.  Call CodeXIndr with a single parameter.
	(CodeReturnValue): Remove parameters and replace with a single
	quadno.  Reimplement using PrepareCopyString.  Issue error
	if the string exceeds designator space.
	(DoCopyString): Reimplement and rename to ...
	(PrepareCopyString): ... this.
	(CodeXIndr): Remove parameters and replace with a single
	quadno.  Reimplement using PrepareCopyString.  Issue error
	if the string exceeds designator space.
	(CodeBecomes): Remove parameters and replace with a single
	quadno.  Reimplement using PrepareCopyString.  Issue error
	if the string exceeds designator space.
	* gm2-compiler/M2Quads.def (BuildReturn): Rename parameter to
	tokreturn.
	* gm2-compiler/M2Quads.mod (BuildReturn): Rename parameter to
	tokreturn.  Rename tokno to tokcombined.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-09  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109779
	* gm2-libs-iso/RTgen.mod (doLook): Remove old.
	Remove re-assignment of result.
	* gm2-libs-iso/TextIO.mod (CanRead): Rename into ...
	(CharAvailable): ... this.
	(DumpState): New procedure.
	(SetResult): Rename as SetNul.
	(WasGoodChar): Rename into ...
	(EofOrEoln): ... this.
	(SkipLine): Skip over the newline.
	(ReadString): Flip THEN ELSE statements after testing for
	EofOrEoln.
	(ReadRestLine): Flip THEN ELSE statements after testing for
	EofOrEoln.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-04  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109729
	PR modula2/110246
	* gm2-compiler/M2GenGCC.mod (CodeStatement): Detect
	ArithAddOp and call CodeAddChecked.
	(ResolveConstantExpressions): Detect ArithAddOp and call
	FoldArithAdd.
	(FoldArithAdd): New procedure.
	(FoldAdd): Refactor to use FoldArithAdd.
	* gm2-compiler/M2Quads.def (QuadOperator): Add ArithAddOp.
	* gm2-compiler/M2Quads.mod: Remove commented imports.
	(QuadFrame): Changed comments to use GNU coding standards.
	(ArithPlusTok): New global variable.
	(BuildForToByDo): Use ArithPlusTok instead of PlusTok.
	(MakeOp): Detect ArithPlusTok and return ArithAddOp.
	(WriteQuad): Add ArithAddOp clause.
	(WriteOperator): Add ArithAddOp clause.
	(Init): Initialize ArithPlusTok.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-maintainer.in (m2/m2obj3/cc1gm2$(exeext)):
	Remove M2LINK.o from dependency and build rule.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-05-04  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109675
	* Make-lang.in (MC-LIB-DEFS): Remove M2LINK.def.
	(BUILD-PGE-O): Remove GM2LINK.o.
	* Make-maintainer.in (PPG-DEFS): New define.
	(PPG-LIB-DEFS): Remove M2LINK.def.
	(BUILD-BOOT-PPG-H): Add PPGDEF .h files.
	(m2/ppg$(exeext)): Remove M2LINK.o
	(PGE-DEPS): New define.
	(m2/pg$(exeext)): Remove M2LINK.o.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add -Im2/gm2-pge-boot.
	(m2/pge$(exeext)): Remove M2LINK.o.
	(pge-maintainer): Re-implement.
	(pge-libs-push): Re-implement.
	(m2/m2obj3/cc1gm2$(exeext)): Remove M2LINK.o.
	* gm2-libs/DynamicStrings.mod (writeAddress): Re-implement
	using snprintf.
	* gm2-libs/M2Dependent.mod: Remove commented out imports.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GFormatStrings.cc: Rebuild.
	* mc-boot/GM2Dependent.cc: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2RTS.cc: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GRTExceptions.cc: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/GSFIO.cc: Rebuild.
	* mc-boot/GStringConvert.cc: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* pge-boot/GASCII.cc: Rebuild.
	* pge-boot/GASCII.h: Rebuild.
	* pge-boot/GArgs.cc: Rebuild.
	* pge-boot/GArgs.h: Rebuild.
	* pge-boot/GAssertion.cc: Rebuild.
	* pge-boot/GAssertion.h: Rebuild.
	* pge-boot/GBreak.h: Rebuild.
	* pge-boot/GCmdArgs.h: Rebuild.
	* pge-boot/GDebug.cc: Rebuild.
	* pge-boot/GDebug.h: Rebuild.
	* pge-boot/GDynamicStrings.cc: Rebuild.
	* pge-boot/GDynamicStrings.h: Rebuild.
	* pge-boot/GEnvironment.h: Rebuild.
	* pge-boot/GFIO.cc: Rebuild.
	* pge-boot/GFIO.h: Rebuild.
	* pge-boot/GFormatStrings.h:: Rebuild.
	* pge-boot/GFpuIO.h:: Rebuild.
	* pge-boot/GIO.cc: Rebuild.
	* pge-boot/GIO.h: Rebuild.
	* pge-boot/GIndexing.cc: Rebuild.
	* pge-boot/GIndexing.h: Rebuild.
	* pge-boot/GLists.cc: Rebuild.
	* pge-boot/GLists.h: Rebuild.
	* pge-boot/GM2Dependent.cc: Rebuild.
	* pge-boot/GM2Dependent.h: Rebuild.
	* pge-boot/GM2EXCEPTION.cc: Rebuild.
	* pge-boot/GM2EXCEPTION.h: Rebuild.
	* pge-boot/GM2RTS.cc: Rebuild.
	* pge-boot/GM2RTS.h: Rebuild.
	* pge-boot/GNameKey.cc: Rebuild.
	* pge-boot/GNameKey.h: Rebuild.
	* pge-boot/GNumberIO.cc: Rebuild.
	* pge-boot/GNumberIO.h: Rebuild.
	* pge-boot/GOutput.cc: Rebuild.
	* pge-boot/GOutput.h: Rebuild.
	* pge-boot/GPushBackInput.cc: Rebuild.
	* pge-boot/GPushBackInput.h: Rebuild.
	* pge-boot/GRTExceptions.cc: Rebuild.
	* pge-boot/GRTExceptions.h: Rebuild.
	* pge-boot/GSArgs.h: Rebuild.
	* pge-boot/GSEnvironment.h: Rebuild.
	* pge-boot/GSFIO.cc: Rebuild.
	* pge-boot/GSFIO.h: Rebuild.
	* pge-boot/GSYSTEM.h: Rebuild.
	* pge-boot/GScan.h: Rebuild.
	* pge-boot/GStdIO.cc: Rebuild.
	* pge-boot/GStdIO.h: Rebuild.
	* pge-boot/GStorage.cc: Rebuild.
	* pge-boot/GStorage.h: Rebuild.
	* pge-boot/GStrCase.cc: Rebuild.
	* pge-boot/GStrCase.h: Rebuild.
	* pge-boot/GStrIO.cc: Rebuild.
	* pge-boot/GStrIO.h: Rebuild.
	* pge-boot/GStrLib.cc: Rebuild.
	* pge-boot/GStrLib.h: Rebuild.
	* pge-boot/GStringConvert.h: Rebuild.
	* pge-boot/GSymbolKey.cc: Rebuild.
	* pge-boot/GSymbolKey.h: Rebuild.
	* pge-boot/GSysExceptions.h: Rebuild.
	* pge-boot/GSysStorage.cc: Rebuild.
	* pge-boot/GSysStorage.h: Rebuild.
	* pge-boot/GTimeString.h: Rebuild.
	* pge-boot/GUnixArgs.h: Rebuild.
	* pge-boot/Gbnflex.cc: Rebuild.
	* pge-boot/Gbnflex.h: Rebuild.
	* pge-boot/Gdtoa.h: Rebuild.
	* pge-boot/Gerrno.h: Rebuild.
	* pge-boot/Gldtoa.h: Rebuild.
	* pge-boot/Glibc.h: Rebuild.
	* pge-boot/Glibm.h: Rebuild.
	* pge-boot/Gpge.cc: Rebuild.
	* pge-boot/Gtermios.h: Rebuild.
	* pge-boot/Gwrapc.h: Rebuild.
	* mc-boot/GM2LINK.h: Removed.
	* pge-boot/GM2LINK.cc: Removed.
	* pge-boot/GM2LINK.h: Removed.

2023-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-04-26  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108121
	* gm2-compiler/M2ALU.mod (Less): Reformatted.
	* gm2-compiler/SymbolTable.mod (DetermineSizeOfConstant): Remove
	from import.
	(ConstantStringExceedsZType): Import.
	(GetConstLitType): Re-implement using ConstantStringExceedsZType.
	* gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Remove.
	(m2decl_ConstantStringExceedsZType): New function.
	(m2decl_BuildConstLiteralNumber): Re-implement.
	* gm2-gcc/m2decl.def (DetermineSizeOfConstant): Remove.
	(ConstantStringExceedsZType): New function.
	* gm2-gcc/m2decl.h (m2decl_DetermineSizeOfConstant): Remove.
	(m2decl_ConstantStringExceedsZType): New function.
	* gm2-gcc/m2expr.cc (append_digit): Remove.
	(m2expr_interpret_integer): Remove.
	(append_m2_digit): Remove.
	(m2expr_StrToWideInt): New function.
	(m2expr_interpret_m2_integer): Remove.
	* gm2-gcc/m2expr.def (CheckConstStrZtypeRange): New function.
	* gm2-gcc/m2expr.h (m2expr_StrToWideInt): New function.
	* gm2-gcc/m2type.cc (build_m2_word64_type_node): New function.
	(build_m2_ztype_node): New function.
	(m2type_InitBaseTypes): Call build_m2_ztype_node.
	* gm2-lang.cc (gm2_type_for_size): Re-write using early returns.

2023-07-27  Gaius Mulley  <gaiusmod2@gmail.com>

	Backported from master:
	2023-04-21  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109586
	* gm2-gcc/m2tree.cc (m2tree_IsAConstant): Add (TREE_CODE
	(t) == CONSTRUCTOR) to expression.

2023-07-27  Release Manager

	* GCC 13.2.0 released.

2023-07-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2023-06-30  Iain Sandoe  <iain@sandoe.co.uk>

	PR testsuite/108835
	* gm2-libs/RTint.mod: Do not use NIL timeout setting on select,
	test failures sequentially, finishing on the first success.

2023-04-26  Release Manager

	* GCC 13.1.0 released.

2023-04-13  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109488
	* lang.opt: Fix typo "maybe" to "may be".

2023-04-13  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2ALU.def (PopChar): New procedure function.
	* gm2-compiler/M2ALU.mod (PopChar): New procedure function.
	* gm2-compiler/M2GCCDeclare.mod (PromoteToString): Detect
	a single constant char and build a C string.
	* gm2-compiler/M2GenGCC.mod (IsConstStr): New procedure
	function.
	(GetStr): New procedure function.
	(FoldAdd): Use IsConstStr.
	* gm2-compiler/M2Quads.mod: Formatting changes.
	* gm2-gcc/m2expr.cc (m2expr_GetCstInteger): New function.
	* gm2-gcc/m2expr.def (GetCstInteger): New procedure function.
	* gm2-gcc/m2expr.h (m2expr_GetCstInteger): New prototype.

2023-04-05  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109423
	* gm2-compiler/M2Base.def (Unbounded): Remove.
	* gm2-compiler/M2Error.def (ErrorAbort0): Add noreturn
	attribute.
	* gm2-compiler/M2Quads.mod (BuildInclProcedure): Correct
	error format string.
	(BuildExceptProcedure): Correct error format string.
	(BuildAdrFunction): Call PutWriteQuad when taking the
	address of a variable.
	* gm2-libs-ch/SysExceptions.c (_M2_SysExceptions_init): Add
	parameters.
	* gm2-libs-ch/wrapc.c (_M2_wrapc_init): Add parameters.
	* gm2-libs/DynamicStrings.mod (DumpStringInfo): Remove t.
	(PopAllocationExemption): Remove f.
	* gm2-libs/FIO.mod (BufferedWrite): Remove result.
	* gm2-libs/FormatStrings.mod (Copy): Remove endpos and
	afterperc.
	(HandlePercent): Remove result.
	* gm2-libs/Indexing.mod (RemoveIndiceFromIndex): Remove k.
	* gm2-libs/M2Dependent.mod (CreateModule): Remove p0
	and p1.
	(DumpModuleData): Remove mptr.
	(ConstructModules): Remove nulp.
	* gm2-libs/RTExceptions.mod (PopHandler): Remove i.
	* gm2-libs/RTint.mod (Listen): Remove b4s, b4m, afs
	and afm.
	* gm2-libs/SFIO.mod (ReadS): Remove c.
	* gm2-libs/StringConvert.mod (doDecimalPlaces): Remove
	whole and fraction.

2023-04-03  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109388
	* gm2-compiler/M2GCCDeclare.mod (DoVariableDeclaration):
	Remove second parameter module.  Adjust all callers to
	remove the second parameter.
	* gm2-compiler/PHBuild.bnf (CheckAndInsert): Remove.
	(InStopSet): Remove.
	(PeepToken): Remove.
	(PushQualident): Remove.
	(SimpleDes): Remove.
	(ActualParameters): Remove.

2023-04-02  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109336
	* Make-lang.in (GM2_O): Set to -O0.
	(GM2_LIBS): Remove target libraries and replace with build libs.
	(BUILD-LIBS): New declaration.
	(m2/gm2-libs/libgm2.a): New rule.
	(m2/gm2-libs/%.o): New rule.
	(m2/gm2-libs/choosetemp.o): New rule.
	* gm2-compiler/M2ColorString.mod (append): Use ADR rather than
	implicit conversion.
	* gm2-compiler/M2Comp.mod (Compile): Add qprintf messages for when
	a source file is not found.  Improve comments and formatting.
	* gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Remove
	ansi-decl.h.  Add getopt.h.
	(cgetopt_cgetopt_long_only): Change cgetopt_ to getopt_.
	* gm2spec.cc (lang_specific_driver): Do not skip -fmod=.
	Remove comment.

2023-03-29  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109336
	PR modula2/109315
	* gm2-compiler/M2FileName.mod (CalculateFileName): Simplified by
	ensuring the extension contains the ".".
	(CalculateStemName): Re-formatted.
	(ExtractExtension): Re-formatted.
	(ExtractModule): Re-formatted.
	* gm2-compiler/M2Options.def (setdefextension): Add block comment.
	(setmodextension): Add block comment.  Re-formatted.
	* gm2-compiler/M2Options.mod (setdefextension): Add block comment.
	(setmodextension): Add block comment.  Re-formatted.
	* gm2-compiler/M2Search.mod (FindSourceDefFile): Use
	DefaultDefExt.
	(DefaultDefExt): New constant.
	(DefaultModExt): New constant.
	(FindSourceModFile): Use DefaultModExt.
	* gm2-gcc/m2decl.cc (m2decl_DeclareKnownVariable): Correct
	spelling.
	* gm2spec.cc (M2SOURCE): New constant.
	(LANGSPEC): New value.
	(MATHLIB): New value.
	(WITHLIBC): New value.
	(SKIPOPT): New value.
	(lang_specific_driver): Replace seen_module_extension bool with
	module_extension char *.  Detect -fmod= and remember extension.
	Use the extension to detect modula-2 source and mark it as such.

2023-03-23  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109264
	* gm2-compiler/M2Quads.mod (BuildConstFunctionCall): Comment
	out ErrorString in debugging block.
	(BuildConstructorStart): Replace Assert with a call to
	MetaErrorT3.  Import MetaErrorT3.
	* gm2-compiler/PCSymBuild.mod (buildConstFunction): Rename
	local variables.
	(WalkFunctionParam): Remove test for IsEnumeration when
	resolving MIN or MAX parameters.
	* gm2-compiler/PHBuild.bnf (BlockAssert): New procedure.
	(ErrorArrayat): New procedure.
	(Expect): Renamed parameter t to tok.
	(PushQualident): New rule.
	(ConstSetOrQualidentOrFunction): Force AutoOn.
	(TypeDeclaration): Add debugging assert.
	(SimpleType): Add debugging assert.
	(DefaultRecordAttributes): New rule (and bugfix).
	(FieldPragmaExpression): New rule (and bugfix).
	(PragmaConstExpression): New rule (and bugfix).
	(SetOrDesignatorOrFunction): Add debugging assert.
	(Block): Add debugging assert.
	* gm2-gcc/m2expr.cc (m2expr_ConstantExpressionWarning): int
	to bool.
	* gm2-gcc/m2expr.h (m2expr_TreeOverflow): int to bool.
	(m2expr_GetBooleanTrue): Remove.
	(m2expr_GetBooleanFalse): Remove.
	* gm2-gcc/m2options.h (M2Options_SetStatistics): Replace
	int with bool.

2023-03-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109248
	* Make-lang.in (m2/pge-boot/%.o): Add CFLAGS and CXXFLAGS for C
	and C++ compiles.
	* gm2spec.cc (add_m2_I_path): Indentation.
	(lang_specific_driver): New variable seen_pathname.
	Detect -fm2-pathname.  If not seen then push_back_Ipath (".").
	Change non iso library path to "m2cor,m2log,m2pim,m2iso".

2023-03-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/107630
	* Make-lang.in (m2/stage2/cc1gm2$(exeext)): Remove
	m2/gm2-libs-boot/M2LINK.o.
	(m2/stage1/cc1gm2$(exeext)): Ditto.
	(GM2-LIBS-BOOT-DEFS): Remove M2LINK.def.
	(GM2-LIBS-DEFS): Ditto.
	(m2/mc-boot/$(SRC_PREFIX)%.o): Replace CXX_FLAGS with CXXFLAGS.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot/main.o): Ditto.
	(mcflex.o): Add $(CFLAGS).
	(m2/gm2-libs-boot/M2LINK.o): Remove rule.
	* gm2-compiler/M2GCCDeclare.def (DeclareM2linkGlobals): Remove.
	* gm2-compiler/M2GCCDeclare.mod: (M2LinkEntry): Remove.
	(M2LinkIndex): Remove.
	(DoVariableDeclaration): Remove initial and call to
	AddEntryM2Link.
	(AddEntryM2Link): Remove.
	(GetEntryM2Link): Remove.
	(DeclareM2linkGlobals): Remove.
	(DetectM2LinkInitial): Remove.
	(InitM2LinkModule): Remove.
	* gm2-compiler/M2GenGCC.mod (CodeFinallyEnd): Remove call to
	DeclareM2linkGlobals.
	* gm2-compiler/M2Quads.mod (BuildM2InitFunction): Add extra
	parameter containing runtime module override to ConstructModules.
	* gm2-compiler/M2Scaffold.mod: Update comment describing
	ConstructModules.
	* gm2-gcc/m2decl.cc (m2decl_DeclareM2linkForcedModuleInitOrder):
	Remove.
	* gm2-libs-iso/M2RTS.def (ConstructModules): Add overrideliborder
	parameter.
	* gm2-libs-iso/M2RTS.mod: Add overrideliborder parameter.
	* gm2-libs/M2Dependent.def (ConstructModules): Add overrideliborder
	parameter.
	* gm2-libs/M2Dependent.mod (ConstructModules): Add overrideliborder
	parameter.
	* gm2-libs/M2RTS.def (ConstructModules): Add overrideliborder parameter.
	* gm2-libs/M2RTS.mod (ConstructModules): Add overrideliborder
	parameter.
	* gm2-libs/M2LINK.def: Removed.

2023-03-21  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
	(m2/mc-boot/main.o): Add $(CXXFLAGS).

2023-03-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-maintainer.in (gm2.maintainer-clean): Remove.
	(gm2.maintainer-help): Add gm2.maintainer-tools,
	gm2.maintainer-doc.  Remove gm2.maintainer-clean.
	Change target-independent directory to target-independent/m2.
	* gm2-compiler/ppg.mod: Correct __FILE_ typo to __FILE__.
	* gm2-compiler/M2Options.def (SetAutoInit): Update comment.
	* gm2-compiler/M2Options.mod (SetAutoInit): Update comment.
	* gm2-gcc/m2color.cc (m2color_colorize_start): Rename name_len
	to _name_high.
	* gm2-gcc/m2color.def (colorize_start): change ARRAY OF CHAR to
	ADDRESS and add _name_high.
	* gm2-gcc/m2decl.cc (m2decl_BuildStartFunctionDeclaration): Change
	int to bool.
	* gm2-gcc/m2decl.h (m2decl_BuildStartFunctionDeclaration): Change
	int to bool.
	* gm2-gcc/m2expr.cc (m2expr_BuildBinarySetDo): Change int to bool.
	(m2expr_BuildIfConstInVar): Change int to bool.
	(m2expr_BuildIfNotConstInVar): Change int to bool.
	(m2expr_BuildIfVarInVar): Change int to bool.
	(m2expr_BuildIfNotVarInVar): Change int to bool.
	(m2expr_BuildForeachWordInSetDoIfExpr): Change int to bool.
	* gm2-gcc/m2expr.h (m2expr_BuildIfNotVarInVar): Change int to bool.
	(m2expr_BuildIfVarInVar): Change int to bool.
	(m2expr_BuildIfNotConstInVar): Change int to bool.
	(m2expr_BuildIfConstInVar): Change int to bool.
	* gm2-gcc/m2options.h (M2Options_SetAutoInit): Change int to bool.
	(M2Options_SetNilCheck): Change int to bool.
	(M2Options_SetReturnCheck): Change int to bool.
	(M2Options_SetCaseCheck): Change int to bool.
	(M2Options_SetCheckAll): Change int to bool.
	(M2Options_SetVerboseUnbounded): Change int to bool.
	(M2Options_SetUnboundedByReference): Change int to bool.
	(M2Options_SetOptimizing): Change int to bool.
	(M2Options_SetQuiet): Change int to bool.
	(M2Options_SetCpp): Change int to bool.
	(M2Options_SetM2g): Change int to bool.
	(M2Options_SetLowerCaseKeywords): Change int to bool.
	(M2Options_SetVerbose): Change int to bool.
	* gm2-gcc/m2treelib.cc (m2treelib_get_rvalue): Change int to bool.
	(m2treelib_get_field_no): Change int to bool.
	(m2treelib_get_set_value): Change int to bool.
	(m2treelib_get_set_address): Change int to bool.
	(m2treelib_get_set_address_if_var): Change int to bool.
	* gm2-gcc/m2treelib.def (get_set_address_if_var): Change int to bool.
	(get_set_address): Change int to bool.
	(get_set_value): Change int to bool.
	(get_field_no): Change int to bool.
	(get_rvalue): Change int to bool.
	* gm2-gcc/m2treelib.h (m2treelib_get_field_no): Change int to bool.
	(m2treelib_get_set_value): Change int to bool.
	(m2treelib_get_set_address): Change int to bool.
	(m2treelib_get_set_address_if_var): Change int to bool.
	* gm2-gcc/m2type.cc (m2type_BuildEndFunctionType): Change int to bool.
	* gm2-gcc/m2type.h (m2type_BuildEndFunctionType): Change int to bool.
	* gm2-libs-ch/dtoa.cc (dtoa_calcsign): Change int to bool.
	* gm2-libs-ch/ldtoa.cc (dtoa_calcsign): Change int to bool.
	(ldtoa_ldtoa): Change int to bool.
	* m2.flex (functionInfo): Change int to bool.
	(pushFunction): Change parameter from int to bool.
	* mc-boot/GDebug.cc (Debug_Halt): Rebuild.
	* mc-boot/GDebug.h (Debug_Halt): Rebuild.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GDynamicStrings.h: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GM2RTS.cc: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GPushBackInput.cc: Rebuild.
	* mc-boot/GRTExceptions.cc: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/GSysStorage.cc: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* mc-boot/GsymbolKey.cc: Rebuild.
	* mc/symbolKey.mod: Rebuild.
	* target-independent/m2/Builtins.texi: Rebuild.
	* target-independent/m2/SYSTEM-iso.texi: Rebuild.
	* target-independent/m2/SYSTEM-pim.texi: Rebuild.
	* target-independent/m2/gm2-libs.texi: Rebuild.
	* tools-src/def2doc.py (PIM_Log): Change gm2-libs-pim to
	gm2-lib-log.

2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109032
	* gm2-gcc/m2expr.cc: Correct ? : order in comments.
	(m2expr_BuildDivM2): Improve comment.
	* lang.opt: Improve option descriptions.

2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109102
	* gm2-gcc/m2builtins.cc (ASSERT): Change format specifier to
	use %qs rather than quotes.

2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2AsmUtil.mod (SymNeedsModulePrefix):
	Re-implemented.
	* gm2-libs/SysStorage.mod (enableTrace): Disable tracing.

2023-03-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/SymbolKey.mod (PutSymKey): Halt parameters
	reordered.
	(DelSymKey): Ditto.
	* gm2-compiler/ppg.mod (GetEpsilon): Ditto.
	(GetReachEnd): Ditto.
	(GetFollow): Ditto.
	(CodeCondition): Ditto.
	(CodeThenDo): Ditto.
	(CodeEnd): Ditto.
	(RecoverCondition): Ditto.
	(ConditionIndent): Ditto.
	* gm2-libs-ch/m2rts.h (M2RTS_Halt): Ditto.
	* gm2-libs-coroutines/Executive.mod (Assert): Ditto.
	(Resume): Remove redundant comments.
	(Wait): Remove redundant comments.
	* gm2-libs-coroutines/SYSTEM.mod (TRANSFER): Halt parameters
	reordered.
	(IOTransferHandler): Ditto.
	(Finished): Ditto.
	(localInit): Ditto.
	* gm2-libs-coroutines/TimerHandler.mod (WaitOn): Halt parameters
	reordered.
	(Cancel): Ditto.
	(ReArmEvent): Ditto.
	(OnActiveQueue): Ditto.
	* gm2-libs-iso/COROUTINES.mod (NEWCOROUTINE): Ditto.
	(Transfer): Ditto.
	(IOTRANSFER): Ditto.
	* gm2-libs-iso/EXCEPTIONS.mod (RAISE): Correct Halt parameters.
	* gm2-libs-iso/M2RTS.def (Halt): Halt parameters reordered.
	(HaltC): Ditto.
	* gm2-libs-iso/M2RTS.mod: Ditto.
	* gm2-libs-iso/RTentity.mod (PutKey): Ditto.
	(DelKey): Ditto.
	(findChildAndParent): Ditto.
	(assert): Ditto.
	* gm2-libs-iso/Storage.mod (ALLOCATE): Add DebugTrace.
	Add UseMallocFree test.
	(DEALLOCATE): Add DebugTrace.  Add UseMallocFree test.
	(assert): Halt parameters reordered.
	* gm2-libs-log/Termbase.mod (Read): Ditto.
	(KeyPressed): Ditto.
	(Write): Ditto.
	(Init): Ditto.
	* gm2-libs/Debug.def (Halt): Halt parameters reordered.
	* gm2-libs/Debug.mod (Halt): Ditto.
	* gm2-libs/DynamicStrings.def (PopAllocation): Improve comment.
	* gm2-libs/DynamicStrings.mod (PopAllocation): Improve comment.
	Halt parameters reordered.
	* gm2-libs/M2RTS.def (Halt): Ditto.
	(HaltC): Ditto.
	* gm2-libs/M2RTS.mod (Halt): Ditto.
	(HaltC): Ditto.
	* gm2-libs/PushBackInput.mod (PutStr): Ditto.
	(PutString): Ditto.
	(PutCh): Ditto.
	* gm2-libs/RTExceptions.mod (GetBaseExceptionBlock): Ditto.
	* gm2-libs/RTint.mod (ReArmTimeVector): Ditto.
	(GetTimeVector): Ditto.
	(AttachVector): Ditto.
	(IncludeVector): Ditto.
	(Listen): Ditto.
	* gm2-libs/SysStorage.mod (ALLOCATE): Ditto.
	(DEALLOCATE): Ditto.
	(REALLOCATE): Ditto.
	* gm2-libs-coroutines/Debug.def: Removed.
	* gm2-libs-coroutines/Debug.mod: Removed.

2023-03-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in: Rename target-independent to
	target-independent/m2.
	* target-independent/readme.txt: Update.
	* target-independent/m2/gm2-ebnf.texi: New file.
	* target-independent/m2/gpl_v3_without_node.texi: New file.
	* target-independent/Builtins.texi: Rename ...
	* target-independent/m2/Builtins.texi: ... to this.
	* target-independent/SYSTEM-iso.texi: Rename ...
	* target-independent/m2/SYSTEM-iso.texi: ... to this.
	* target-independent/SYSTEM-pim.texi: Rename ...
	* target-independent/m2/SYSTEM-pim.texi: ... to this.
	* target-independent/gm2-libs.texi: Rename ...
	* target-independent/m2/gm2-libs.texi: ... to this.

2023-03-15  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109125
	* gm2-libs-ch/dtoa.cc (dtoa_strtod): Replace int with bool.
	* gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Replace int with bool.

2023-03-14  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109125
	* gm2-libs-ch/cgetopt.c (cgetopt_SetOption): Replace int
	for bool.
	* gm2-libs-ch/termios.c (doSetUnset): Replace int for bool.
	* gm2-libs/Builtins.mod (isfinitef): Correct typo in return
	statement.

2023-03-13  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109103
	* gm2-compiler/M2ALU.def (PushString): New parameter issueError.
	* gm2-compiler/M2ALU.mod (PushString): New parameter issueError.
	* gm2-compiler/SymbolTable.mod (PushString): New parameter issueError.
	* gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Pass
	location to interpret_m2_integer.
	(m2decl_BuildConstLiteralNumber): New parameter issueError.
	* gm2-gcc/m2expr.cc (m2expr_IsTrue): Replace int with bool.
	(m2expr_IsFalse): Replace int with bool.
	(m2expr_AreConstantsEqual): Replace int with bool.
	(m2expr_BuildBinaryForeachWordDo): Call m2linemap_internal_error_at.
	(append_digit): Ditto.
	(m2expr_interpret_integer): Add location parameter.
	(append_m2_digit): Call m2linemap_internal_error_at.
	(m2expr_interpret_m2_integer): Add location parameter.
	(m2expr_GetSizeOf): Replace sizeof with SIZE in error message.
	* gm2-gcc/m2expr.h (m2expr_AreRealOrComplexConstantsEqual):
	Replace int with bool.
	(m2expr_AreConstantsEqual): Ditto.
	(m2expr_IsFalse): Ditto.
	(m2expr_IsTrue): Ditto.
	(m2expr_interpret_integer): Add location parameter.
	(m2expr_interpret_m2_integer): Add location parameter.
	* gm2-gcc/m2linemap.cc (mformat_value): New function.
	(expand_format): New function.
	(expand_message): New function.
	(gm2_internal_error_at): New function.
	(m2linemap_internal_error_at): New function.
	* gm2-gcc/m2linemap.h (m2linemap_internal_error_at): New function.
	* gm2-gcc/m2options.h (M2Options_SetISO): Replace int with bool.
	(M2Options_SetPIM): Ditto.
	(M2Options_SetPIM2): Ditto.
	(M2Options_SetPIM3): Ditto.
	(M2Options_SetPIM4): Ditto.
	(M2Options_SetFloatValueCheck): Ditto.
	(M2Options_SetWholeValueCheck): Ditto.
	(M2Options_GetISO): Ditto.
	(M2Options_GetPIM): Ditto.
	(M2Options_GetPIM2): Ditto.
	(M2Options_GetPIM3): Ditto.
	(M2Options_GetPIM4): Ditto.
	(M2Options_GetPositiveModFloor): Ditto.
	(M2Options_GetFloatValueCheck): Ditto.
	(M2Options_GetWholeValueCheck): Ditto.
	(M2Options_Setc): Ditto.
	(M2Options_Getc): Ditto.
	(M2Options_SetPPOnly): Ditto.
	(M2Options_GetPPOnly): Ditto.
	(M2Options_SetUselist): Ditto.
	(M2Options_SetAutoInit): Ditto.
	(M2Options_SetPositiveModFloor): Ditto.
	(M2Options_SetNilCheck): Ditto.
	(M2Options_SetWholeDiv): Ditto.
	(M2Options_SetIndex): Ditto.
	(M2Options_SetRange): Ditto.
	(M2Options_SetReturnCheck): Ditto.
	(M2Options_SetCaseCheck): Ditto.
	(M2Options_SetCheckAll): Ditto.
	(M2Options_SetExceptions): Ditto.
	(M2Options_SetStyle): Ditto.
	(M2Options_SetPedantic): Ditto.
	(M2Options_SetPedanticParamNames): Ditto.
	(M2Options_SetPedanticCast): Ditto.
	(M2Options_SetExtendedOpaque): Ditto.
	(M2Options_SetVerboseUnbounded): Ditto.
	(M2Options_SetXCode): Ditto.
	(M2Options_SetCompilerDebugging): Ditto.
	(M2Options_SetQuadDebugging): Ditto.
	(M2Options_SetDebugTraceQuad): Ditto.
	(M2Options_SetDebugTraceAPI): Ditto.
	(M2Options_SetSources): Ditto.
	(M2Options_SetUnboundedByReference): Ditto.
	(M2Options_SetDumpSystemExports): Ditto.
	(M2Options_SetOptimizing): Ditto.
	(M2Options_SetQuiet): Ditto.
	(M2Options_SetCC1Quiet): Ditto.
	(M2Options_SetCpp): Ditto.
	(M2Options_SetSwig): Ditto.
	(M2Options_SetWholeProgram): Ditto.
	(M2Options_SetDebugFunctionLineNumbers): Ditto.
	(M2Options_SetGenerateStatementNote): Ditto.
	(M2Options_GetCpp): Ditto.
	(M2Options_GetM2g): Ditto.
	(M2Options_SetM2g): Ditto.
	(M2Options_SetLowerCaseKeywords): Ditto.
	(M2Options_SetVerbose): Ditto.
	(M2Options_SetUnusedVariableChecking): Ditto.
	(M2Options_SetUnusedParameterChecking): Ditto.
	(M2Options_SetStrictTypeChecking): Ditto.
	(M2Options_SetWall): Ditto.
	(M2Options_SetSaveTemps): Ditto.
	(M2Options_GetSaveTemps): Ditto.
	(M2Options_SetScaffoldStatic): Ditto.
	(M2Options_SetScaffoldDynamic): Ditto.
	(M2Options_SetScaffoldMain): Ditto.
	(M2Options_SetGenModuleList): Ditto.
	(M2Options_SetShared): Ditto.
	* gm2-libs-ch/M2LINK.c: Ditto.
	* gm2-libs-ch/m2rts.h (M2RTS_RequestDependant): Replace
	const char * with const void *.
	(M2RTS_RegisterModule): Ditto.
	(M2RTS_ConstructModules): Ditto.
	* gm2-gcc/m2decl.def (DetermineSizeOfConstant): New parameter
	issueError.
	* gm2-gcc/m2decl.h (DetermineSizeOfConstant): New parameter
	issueError.

2023-03-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109089
	* gm2-compiler/M2GCCDeclare.mod (DeclareKnownType): Import.
	* gm2-gcc/gcc-consolidation.h (stdbool.h): Include.
	* gm2-gcc/init.h (defined): Change block start.
	* gm2-gcc/m2block.cc: Change FALSE to false, change TRUE to true.
	* gm2-gcc/m2block.h: Change int to bool.
	* gm2-gcc/m2builtins.cc: Ditto.
	* gm2-gcc/m2builtins.h: Ditto.
	* gm2-gcc/m2convert.cc: Change FALSE to false, TRUE to true and
	int to bool.
	* gm2-gcc/m2convert.h: Change int to bool.
	* gm2-gcc/m2decl.cc: Change int to bool.
	* gm2-gcc/m2decl.h: Change int to bool.
	* gm2-gcc/m2expr.cc: Change FALSE to false, TRUE to true and
	int to bool.
	* gm2-gcc/m2expr.h: Change int to bool.
	* gm2-gcc/m2statement.cc: Change FALSE to false, TRUE to true and
	int to bool.
	* gm2-gcc/m2statement.h: Change int to bool.
	* gm2-gcc/m2top.cc: Change int to bool.
	* gm2-gcc/m2top.h: Change int to bool.
	* gm2-gcc/m2tree.cc: Change int to bool.
	* gm2-gcc/m2tree.h: Change int to bool.
	* gm2-gcc/m2type.cc: Change int to bool.
	* gm2-gcc/m2type.h: Change int to bool.
	* gm2-lang.cc (convert_loc): Call convert_to_integer for BOOLEAN_TYPE.
	* gm2-libs/Builtins.def (isfinitef): Change return value from
	BOOLEAN to INTEGER.
	(isfinite): Ditto.
	(isfinitel): Ditto.
	* gm2-libs/Builtins.mod (isfinitef): Change return value from
	BOOLEAN to INTEGER.
	(isfinite): Ditto.
	(isfinitel): Ditto.
	* mc-boot/GASCII.cc: Rebuild.
	* mc-boot/GASCII.h: Rebuild.
	* mc-boot/GArgs.cc: Rebuild.
	* mc-boot/GArgs.h: Rebuild.
	* mc-boot/GAssertion.cc: Rebuild.
	* mc-boot/GAssertion.h: Rebuild.
	* mc-boot/GBreak.cc: Rebuild.
	* mc-boot/GBreak.h: Rebuild.
	* mc-boot/GCOROUTINES.h: Rebuild.
	* mc-boot/GCmdArgs.cc: Rebuild.
	* mc-boot/GCmdArgs.h: Rebuild.
	* mc-boot/GDebug.cc: Rebuild.
	* mc-boot/GDebug.h: Rebuild.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GDynamicStrings.h: Rebuild.
	* mc-boot/GEnvironment.cc: Rebuild.
	* mc-boot/GEnvironment.h: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GFIO.h: Rebuild.
	* mc-boot/GFormatStrings.cc: Rebuild.
	* mc-boot/GFormatStrings.h: Rebuild.
	* mc-boot/GFpuIO.cc: Rebuild.
	* mc-boot/GFpuIO.h: Rebuild.
	* mc-boot/GIO.cc: Rebuild.
	* mc-boot/GIO.h: Rebuild.
	* mc-boot/GIndexing.cc: Rebuild.
	* mc-boot/GIndexing.h: Rebuild.
	* mc-boot/GM2Dependent.cc: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2EXCEPTION.cc: Rebuild.
	* mc-boot/GM2EXCEPTION.h: Rebuild.
	* mc-boot/GM2LINK.h: Rebuild.
	* mc-boot/GM2RTS.cc: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GMemUtils.cc: Rebuild.
	* mc-boot/GMemUtils.h: Rebuild.
	* mc-boot/GNumberIO.cc: Rebuild.
	* mc-boot/GNumberIO.h: Rebuild.
	* mc-boot/GPushBackInput.cc: Rebuild.
	* mc-boot/GPushBackInput.h: Rebuild.
	* mc-boot/GRTExceptions.cc: Rebuild.
	* mc-boot/GRTExceptions.h: Rebuild.
	* mc-boot/GRTco.h: Rebuild.
	* mc-boot/GRTentity.h: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/GRTint.h: Rebuild.
	* mc-boot/GSArgs.cc: Rebuild.
	* mc-boot/GSArgs.h: Rebuild.
	* mc-boot/GSFIO.cc: Rebuild.
	* mc-boot/GSFIO.h: Rebuild.
	* mc-boot/GSYSTEM.h: Rebuild.
	* mc-boot/GSelective.h: Rebuild.
	* mc-boot/GStdIO.cc: Rebuild.
	* mc-boot/GStdIO.h: Rebuild.
	* mc-boot/GStorage.cc: Rebuild.
	* mc-boot/GStorage.h: Rebuild.
	* mc-boot/GStrCase.cc: Rebuild.
	* mc-boot/GStrCase.h: Rebuild.
	* mc-boot/GStrIO.cc: Rebuild.
	* mc-boot/GStrIO.h: Rebuild.
	* mc-boot/GStrLib.cc: Rebuild.
	* mc-boot/GStrLib.h: Rebuild.
	* mc-boot/GStringConvert.cc: Rebuild.
	* mc-boot/GStringConvert.h: Rebuild.
	* mc-boot/GSysExceptions.h: Rebuild.
	* mc-boot/GSysStorage.cc: Rebuild.
	* mc-boot/GSysStorage.h: Rebuild.
	* mc-boot/GTimeString.cc: Rebuild.
	* mc-boot/GTimeString.h: Rebuild.
	* mc-boot/GUnixArgs.h: Rebuild.
	* mc-boot/Galists.cc: Rebuild.
	* mc-boot/Galists.h: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* mc-boot/Gdecl.h: Rebuild.
	* mc-boot/Gdtoa.h: Rebuild.
	* mc-boot/Gerrno.h: Rebuild.
	* mc-boot/Gkeyc.cc: Rebuild.
	* mc-boot/Gkeyc.h: Rebuild.
	* mc-boot/Gldtoa.h: Rebuild.
	* mc-boot/Glibc.h: Rebuild.
	* mc-boot/Glibm.h: Rebuild.
	* mc-boot/Glists.cc: Rebuild.
	* mc-boot/Glists.h: Rebuild.
	* mc-boot/GmcComment.cc: Rebuild.
	* mc-boot/GmcComment.h: Rebuild.
	* mc-boot/GmcComp.cc: Rebuild.
	* mc-boot/GmcComp.h: Rebuild.
	* mc-boot/GmcDebug.cc: Rebuild.
	* mc-boot/GmcDebug.h: Rebuild.
	* mc-boot/GmcError.cc: Rebuild.
	* mc-boot/GmcError.h: Rebuild.
	* mc-boot/GmcFileName.cc: Rebuild.
	* mc-boot/GmcFileName.h: Rebuild.
	* mc-boot/GmcLexBuf.cc: Rebuild.
	* mc-boot/GmcLexBuf.h: Rebuild.
	* mc-boot/GmcMetaError.cc: Rebuild.
	* mc-boot/GmcMetaError.h: Rebuild.
	* mc-boot/GmcOptions.cc: Rebuild.
	* mc-boot/GmcOptions.h: Rebuild.
	* mc-boot/GmcPreprocess.cc: Rebuild.
	* mc-boot/GmcPreprocess.h: Rebuild.
	* mc-boot/GmcPretty.cc: Rebuild.
	* mc-boot/GmcPretty.h: Rebuild.
	* mc-boot/GmcPrintf.cc: Rebuild.
	* mc-boot/GmcPrintf.h: Rebuild.
	* mc-boot/GmcQuiet.cc: Rebuild.
	* mc-boot/GmcQuiet.h: Rebuild.
	* mc-boot/GmcReserved.cc: Rebuild.
	* mc-boot/GmcReserved.h: Rebuild.
	* mc-boot/GmcSearch.cc: Rebuild.
	* mc-boot/GmcSearch.h: Rebuild.
	* mc-boot/GmcStack.cc: Rebuild.
	* mc-boot/GmcStack.h: Rebuild.
	* mc-boot/GmcStream.cc: Rebuild.
	* mc-boot/GmcStream.h: Rebuild.
	* mc-boot/Gmcflex.h: Rebuild.
	* mc-boot/Gmcp1.cc: Rebuild.
	* mc-boot/Gmcp1.h: Rebuild.
	* mc-boot/Gmcp2.cc: Rebuild.
	* mc-boot/Gmcp2.h: Rebuild.
	* mc-boot/Gmcp3.cc: Rebuild.
	* mc-boot/Gmcp3.h: Rebuild.
	* mc-boot/Gmcp4.cc: Rebuild.
	* mc-boot/Gmcp4.h: Rebuild.
	* mc-boot/Gmcp5.cc: Rebuild.
	* mc-boot/Gmcp5.h: Rebuild.
	* mc-boot/GnameKey.cc: Rebuild.
	* mc-boot/GnameKey.h: Rebuild.
	* mc-boot/GsymbolKey.cc: Rebuild.
	* mc-boot/GsymbolKey.h: Rebuild.
	* mc-boot/Gtermios.h: Rebuild.
	* mc-boot/Gtop.cc: Rebuild.
	* mc-boot/Gvarargs.cc: Rebuild.
	* mc-boot/Gvarargs.h: Rebuild.
	* mc-boot/Gwlists.cc: Rebuild.
	* mc-boot/Gwlists.h: Rebuild.
	* mc-boot/Gwrapc.h: Rebuild.
	* mc/decl.mod (doBoolC): New procedure.
	(doBaseC): Call doBoolC.
	* mc/keyc.mod: Import useBool.
	(genBool): New procedure.
	(genDefs): Call genBool.
	* mc/mcOptions.def (useBool): New procedure.
	* mc/mcOptions.mod (useBool): New procedure.
	(useBoolType): New variable.
	(optionIs): Assign useBoolType to TRUE.

2023-03-04  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc-boot-ch/GBuiltins.cc: New file.
	* mc-boot-ch/Gdtoa.cc: New file.
	* mc-boot-ch/Gerrno.cc: New file.
	* mc-boot-ch/Gldtoa.cc: New file.
	* mc-boot-ch/Gm2rtsdummy.cc: New file.
	* mc-boot/GASCII.cc: New file.
	* mc-boot/GArgs.cc: New file.
	* mc-boot/GAssertion.cc: New file.
	* mc-boot/GBreak.cc: New file.
	* mc-boot/GCmdArgs.cc: New file.
	* mc-boot/GDebug.cc: New file.
	* mc-boot/GDynamicStrings.cc: New file.
	* mc-boot/GEnvironment.cc: New file.
	* mc-boot/GFIO.cc: New file.
	* mc-boot/GFormatStrings.cc: New file.
	* mc-boot/GFpuIO.cc: New file.
	* mc-boot/GIO.cc: New file.
	* mc-boot/GIndexing.cc: New file.
	* mc-boot/GM2Dependent.cc: New file.
	* mc-boot/GM2EXCEPTION.cc: New file.
	* mc-boot/GM2RTS.cc: New file.
	* mc-boot/GMemUtils.cc: New file.
	* mc-boot/GNumberIO.cc: New file.
	* mc-boot/GPushBackInput.cc: New file.
	* mc-boot/GRTExceptions.cc: New file.
	* mc-boot/GRTint.cc: New file.
	* mc-boot/GSArgs.cc: New file.
	* mc-boot/GSFIO.cc: New file.
	* mc-boot/GStdIO.cc: New file.
	* mc-boot/GStorage.cc: New file.
	* mc-boot/GStrCase.cc: New file.
	* mc-boot/GStrIO.cc: New file.
	* mc-boot/GStrLib.cc: New file.
	* mc-boot/GStringConvert.cc: New file.
	* mc-boot/GSysStorage.cc: New file.
	* mc-boot/GTimeString.cc: New file.
	* mc-boot/Galists.cc: New file.
	* mc-boot/Gdecl.cc: New file.
	* mc-boot/Gkeyc.cc: New file.
	* mc-boot/Glists.cc: New file.
	* mc-boot/GmcComment.cc: New file.
	* mc-boot/GmcComp.cc: New file.
	* mc-boot/GmcDebug.cc: New file.
	* mc-boot/GmcError.cc: New file.
	* mc-boot/GmcFileName.cc: New file.
	* mc-boot/GmcLexBuf.cc: New file.
	* mc-boot/GmcMetaError.cc: New file.
	* mc-boot/GmcOptions.cc: New file.
	* mc-boot/GmcPreprocess.cc: New file.
	* mc-boot/GmcPretty.cc: New file.
	* mc-boot/GmcPrintf.cc: New file.
	* mc-boot/GmcQuiet.cc: New file.
	* mc-boot/GmcReserved.cc: New file.
	* mc-boot/GmcSearch.cc: New file.
	* mc-boot/GmcStack.cc: New file.
	* mc-boot/GmcStream.cc: New file.
	* mc-boot/Gmcp1.cc: New file.
	* mc-boot/Gmcp2.cc: New file.
	* mc-boot/Gmcp3.cc: New file.
	* mc-boot/Gmcp4.cc: New file.
	* mc-boot/Gmcp5.cc: New file.
	* mc-boot/GnameKey.cc: New file.
	* mc-boot/GsymbolKey.cc: New file.
	* mc-boot/Gtop.cc: New file.
	* mc-boot/Gvarargs.cc: New file.
	* mc-boot/Gwlists.cc: New file.
	* pge-boot/GASCII.cc: New file.
	* pge-boot/GArgs.cc: New file.
	* pge-boot/GAssertion.cc: New file.
	* pge-boot/GBuiltins.cc: New file.
	* pge-boot/GDebug.cc: New file.
	* pge-boot/GDynamicStrings.cc: New file.
	* pge-boot/GFIO.cc: New file.
	* pge-boot/GIO.cc: New file.
	* pge-boot/GIndexing.cc: New file.
	* pge-boot/GLists.cc: New file.
	* pge-boot/GM2Dependent.cc: New file.
	* pge-boot/GM2EXCEPTION.cc: New file.
	* pge-boot/GM2LINK.cc: New file.
	* pge-boot/GM2RTS.cc: New file.
	* pge-boot/GNameKey.cc: New file.
	* pge-boot/GNumberIO.cc: New file.
	* pge-boot/GOutput.cc: New file.
	* pge-boot/GPushBackInput.cc: New file.
	* pge-boot/GRTExceptions.cc: New file.
	* pge-boot/GRTco.cc: New file.
	* pge-boot/GSFIO.cc: New file.
	* pge-boot/GSYSTEM.cc: New file.
	* pge-boot/GSelective.cc: New file.
	* pge-boot/GStdIO.cc: New file.
	* pge-boot/GStorage.cc: New file.
	* pge-boot/GStrCase.cc: New file.
	* pge-boot/GStrIO.cc: New file.
	* pge-boot/GStrLib.cc: New file.
	* pge-boot/GSymbolKey.cc: New file.
	* pge-boot/GSysExceptions.cc: New file.
	* pge-boot/GSysStorage.cc: New file.
	* pge-boot/Gabort.cc: New file.
	* pge-boot/Gbnflex.cc: New file.
	* pge-boot/Gcbuiltin.cc: New file.
	* pge-boot/Gdtoa.cc: New file.
	* pge-boot/Gerrno.cc: New file.
	* pge-boot/Gldtoa.cc: New file.
	* pge-boot/Glibc.cc: New file.
	* pge-boot/Glibm.cc: New file.
	* pge-boot/Gmcrts.cc: New file.
	* pge-boot/Gpge.cc: New file.
	* pge-boot/Gwrapc.cc: New file.
	* pge-boot/main.cc: New file.
	* pge-boot/network.cc: New file.

2023-03-04  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (MC-LIB-BOOT-C): Rename to MC-LIB-BOOT-CC.
	(MC-BOOT-C): Rename to MC-BOOT-CC.
	(BUILD-MC-BOOT-C): Rename to BUILD-MC-BOOT-CC.
	(BUILD-MC-BOOT-AUTO-C): Rename to BUILD-MC-BOOT-AUTO-CC.
	(m2/mc-boot/$(SRC_PREFIX)%.o): Change source file extension to .cc.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	* Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Change
	source file extension to .cc.
	(m2/gm2-ppg-boot/main.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
	to .cc.
	(m2/gm2-pg-boot/main.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)dtoa.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)errno.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)pge.o): Ditto.
	(m2/gm2-pge-boot/main.o): Ditto.
	(mc-push): Ditto.
	(mc-clean): Ditto.
	(mc-stage2): Ditto.
	((objdir)/m2/mc-boot-gen): Ditto.
	(m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Ditto.
	(m2/mc-boot-gen/$(SRC_PREFIX)%.c): Ditto.
	* mc-boot-ch/GBuiltins.c: Correct comment and rename.
	* mc-boot-ch/Gdtoa.c: Correct comment and rename.
	* mc-boot-ch/Gldtoa.c: Correct comment and rename
	* mc-boot-ch/Gtermios.cc: Rename from Gtermios.c.
	* mc-boot-ch/Gerrno.c: Rename.
	* mc-boot-ch/GRTco.c: Removed.
	* mc-boot/GASCII.c: Rename to mc-boot/GASCII.cc.
	* mc-boot/GArgs.c: Rename to mc-boot/GArgs.cc.
	* mc-boot/GAssertion.c: Rename to mc-boot/GAssertion.cc.
	* mc-boot/GBreak.c: Rename to mc-boot/GBreak.cc.
	* mc-boot/GCmdArgs.c: Rename to mc-boot/GCmdArgs.cc.
	* mc-boot/GDebug.c: Rename to mc-boot/GDebug.cc.
	* mc-boot/GDynamicStrings.c: Rename to mc-boot/GDynamicStrings.cc.
	* mc-boot/GEnvironment.c: Rename to mc-boot/GEnvironment.cc.
	* mc-boot/GFIO.c: Rename to mc-boot/GFIO.cc.
	* mc-boot/GFormatStrings.c: Rename to mc-boot/GFormatStrings.cc.
	* mc-boot/GFpuIO.c: Rename to mc-boot/GFpuIO.cc.
	* mc-boot/GIO.c: Rename to mc-boot/GIO.cc.
	* mc-boot/GIndexing.c: Rename to mc-boot/GIndexing.cc.
	* mc-boot/GM2Dependent.c: Rename to mc-boot/GM2Dependent.cc.
	* mc-boot/GM2EXCEPTION.c: Rename to mc-boot/GM2EXCEPTION.cc.
	* mc-boot/GM2RTS.c: Rename to mc-boot/GM2RTS.cc.
	* mc-boot/GMemUtils.c: Rename to mc-boot/GMemUtils.cc.
	* mc-boot/GNumberIO.c: Rename to mc-boot/GNumberIO.cc.
	* mc-boot/GPushBackInput.c: Rename to mc-boot/GPushBackInput.cc.
	* mc-boot/GRTExceptions.c: Rename to mc-boot/GRTExceptions.cc.
	* mc-boot/GRTint.c: Rename to mc-boot/GRTint.cc.
	* mc-boot/GSArgs.c: Rename to mc-boot/GSArgs.cc.
	* mc-boot/GSFIO.c: Rename to mc-boot/GSFIO.cc.
	* mc-boot/GStdIO.c: Rename to mc-boot/GStdIO.cc.
	* mc-boot/GStorage.c: Rename to mc-boot/GStorage.cc.
	* mc-boot/GStrCase.c: Rename to mc-boot/GStrCase.cc.
	* mc-boot/GStrIO.c: Rename to mc-boot/GStrIO.cc.
	* mc-boot/GStrLib.c: Rename to mc-boot/GStrLib.cc.
	* mc-boot/GStringConvert.c: Rename to mc-boot/GStringConvert.cc.
	* mc-boot/GSysStorage.c: Rename to mc-boot/GSysStorage.cc.
	* mc-boot/GTimeString.c: Rename to mc-boot/GTimeString.cc.
	* mc-boot/Galists.c: Rename to mc-boot/Galists.cc.
	* mc-boot/Gdecl.c: Rename to mc-boot/Gdecl.cc.
	* mc-boot/Gkeyc.c: Rename to mc-boot/Gkeyc.cc.
	* mc-boot/Glists.c: Rename to mc-boot/Glists.cc.
	* mc-boot/GmcComment.c: Rename to mc-boot/GmcComment.cc.
	* mc-boot/GmcComp.c: Rename to mc-boot/GmcComp.cc.
	* mc-boot/GmcDebug.c: Rename to mc-boot/GmcDebug.cc.
	* mc-boot/GmcError.c: Rename to mc-boot/GmcError.cc.
	* mc-boot/GmcFileName.c: Rename to mc-boot/GmcFileName.cc.
	* mc-boot/GmcLexBuf.c: Rename to mc-boot/GmcLexBuf.cc.
	* mc-boot/GmcMetaError.c: Rename to mc-boot/GmcMetaError.cc.
	* mc-boot/GmcOptions.c: Rename to mc-boot/GmcOptions.cc.
	* mc-boot/GmcPreprocess.c: Rename to mc-boot/GmcPreprocess.cc.
	* mc-boot/GmcPretty.c: Rename to mc-boot/GmcPretty.cc.
	* mc-boot/GmcPrintf.c: Rename to mc-boot/GmcPrintf.cc.
	* mc-boot/GmcQuiet.c: Rename to mc-boot/GmcQuiet.cc.
	* mc-boot/GmcReserved.c: Rename to mc-boot/GmcReserved.cc.
	* mc-boot/GmcSearch.c: Rename to mc-boot/GmcSearch.cc.
	* mc-boot/GmcStack.c: Rename to mc-boot/GmcStack.cc.
	* mc-boot/GmcStream.c: Rename to mc-boot/GmcStream.cc.
	* mc-boot/Gmcp1.c: Rename to mc-boot/Gmcp1.cc.
	* mc-boot/Gmcp2.c: Rename to mc-boot/Gmcp2.cc.
	* mc-boot/Gmcp3.c: Rename to mc-boot/Gmcp3.cc.
	* mc-boot/Gmcp4.c: Rename to mc-boot/Gmcp4.cc.
	* mc-boot/Gmcp5.c: Rename to mc-boot/Gmcp5.cc.
	* mc-boot/GnameKey.c: Rename to mc-boot/GnameKey.cc.
	* mc-boot/GsymbolKey.c: Rename to mc-boot/GsymbolKey.cc.
	* mc-boot/Gtop.c: Rename to mc-boot/Gtop.cc.
	* mc-boot/Gvarargs.c: Rename to mc-boot/Gvarargs.cc.
	* mc-boot/Gwlists.c: Rename to mc-boot/Gwlists.cc.
	* pge-boot/GASCII.c: Rename to pge-boot/GASCII.cc.
	* pge-boot/GArgs.c: Rename to pge-boot/GArgs.cc.
	* pge-boot/GAssertion.c: Rename to pge-boot/GAssertion.cc.
	* pge-boot/GBuiltins.c: Rename to pge-boot/GBuiltins.cc.
	* pge-boot/GDebug.c: Rename to pge-boot/GDebug.cc.
	* pge-boot/GDynamicStrings.c: Rename to pge-boot/GDynamicStrings.cc.
	* pge-boot/GFIO.c: Rename to pge-boot/GFIO.cc.
	* pge-boot/GIO.c: Rename to pge-boot/GIO.cc.
	* pge-boot/GIndexing.c: Rename to pge-boot/GIndexing.cc.
	* pge-boot/GLists.c: Rename to pge-boot/GLists.cc.
	* pge-boot/GM2Dependent.c: Rename to pge-boot/GM2Dependent.cc.
	* pge-boot/GM2EXCEPTION.c: Rename to pge-boot/GM2EXCEPTION.cc.
	* pge-boot/GM2LINK.c: Rename to pge-boot/GM2LINK.cc.
	* pge-boot/GM2RTS.c: Rename to pge-boot/GM2RTS.cc.
	* pge-boot/GNameKey.c: Rename to pge-boot/GNameKey.cc.
	* pge-boot/GNumberIO.c: Rename to pge-boot/GNumberIO.cc.
	* pge-boot/GOutput.c: Rename to pge-boot/GOutput.cc.
	* pge-boot/GPushBackInput.c: Rename to pge-boot/GPushBackInput.cc.
	* pge-boot/GRTExceptions.c: Rename to pge-boot/GRTExceptions.cc.
	* pge-boot/GRTco.c: Rename to pge-boot/GRTco.cc.
	* pge-boot/GSFIO.c: Rename to pge-boot/GSFIO.cc.
	* pge-boot/GSYSTEM.c: Rename to pge-boot/GSYSTEM.cc.
	* pge-boot/GSelective.c: Rename to pge-boot/GSelective.cc.
	* pge-boot/GStdIO.c: Rename to pge-boot/GStdIO.cc.
	* pge-boot/GStorage.c: Rename to pge-boot/GStorage.cc.
	* pge-boot/GStrCase.c: Rename to pge-boot/GStrCase.cc.
	* pge-boot/GStrIO.c: Rename to pge-boot/GStrIO.cc.
	* pge-boot/GStrLib.c: Rename to pge-boot/GStrLib.cc.
	* pge-boot/GSymbolKey.c: Rename to pge-boot/GSymbolKey.cc.
	* pge-boot/GSysExceptions.c: Rename to pge-boot/GSysExceptions.cc.
	* pge-boot/GSysStorage.c: Rename to pge-boot/GSysStorage.cc.
	* pge-boot/Gabort.c: Rename to pge-boot/Gabort.cc.
	* pge-boot/Gbnflex.c: Rename to pge-boot/Gbnflex.cc.
	* pge-boot/Gcbuiltin.c: Rename to pge-boot/Gcbuiltin.cc.
	* pge-boot/Gdtoa.c: Rename to pge-boot/Gdtoa.cc.
	* pge-boot/Gerrno.c: Rename to pge-boot/Gerrno.cc.
	* pge-boot/Gldtoa.c: Rename to pge-boot/Gldtoa.cc.
	* pge-boot/Glibc.c: Rename to pge-boot/Glibc.cc.
	* pge-boot/Glibm.c: Rename to pge-boot/Glibm.cc.
	* pge-boot/Gmcrts.c: Rename to pge-boot/Gmcrts.cc.
	* pge-boot/Gpge.c: Rename to pge-boot/Gpge.cc.
	* pge-boot/Gwrapc.c: Rename to pge-boot/Gwrapc.cc.
	* pge-boot/README: Correct description.
	* pge-boot/main.c: Rename to pge-boot/main.cc.
	* pge-boot/network.c: Rename to pge-boot/network.cc.

2023-02-28  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108956
	* Make-lang.in (m2/gm2-libs-boot/M2RTS.o): New specific rule to
	add the --suppress-noreturn option.
	* Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): New
	specific rule to add the --suppress-noreturn option.
	(m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.o): New
	specific rule to add the --suppress-noreturn option.
	(m2/gm2-pg-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
	(m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): New
	specific rule to add the --suppress-noreturn option.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
	* gm2-libs-ch/UnixArgs.cc (LIBNAME): New define.
	(_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
	* gm2-libs-ch/dtoa.cc (LIBNAME): New define.
	(_M2_dtoa_ctor): Add LIBNAME parameter to RegisterModule.
	* gm2-libs-ch/ldtoa.cc (LIBNAME): New define.
	(_M2_ldtoa_ctor): Add LIBNAME parameter to RegisterModule.
	* pge-boot/m2rts.h (M2RTS_RegisterModule): Add libname
	parameter.
	* gm2-libs-ch/m2rts.h (M2RTS_RegisterModule): Add libname
	parameter.
	* mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_ctor): Remove.
	* pge-boot/GUnixArgs.cc (LIBNAME): New define.
	(_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
	* gm2-libs/RTint.def (AttachVector): Rename parameter.
	* mc-boot/GDynamicStrings.c: Rebuilt.
	* mc-boot/GFIO.c: Rebuilt.
	* mc-boot/GIndexing.c: Rebuilt.
	* mc-boot/GM2EXCEPTION.c: Rebuilt.
	* mc-boot/GPushBackInput.c: Rebuilt.
	* mc-boot/GRTExceptions.c: Rebuilt.
	* mc-boot/GRTint.c: Rebuilt.
	* mc-boot/GRTint.h: Rebuilt.
	* mc-boot/GStdIO.c: Rebuilt.
	* mc-boot/GStringConvert.c: Rebuilt.
	* mc-boot/GSysStorage.c: Rebuilt.
	* mc-boot/Gdecl.c: Rebuilt.
	* mc-boot/Gkeyc.c: Rebuilt.
	* mc-boot/GmcComment.c: Rebuilt.
	* mc-boot/GmcComp.c: Rebuilt.
	* mc-boot/GmcDebug.c: Rebuilt.
	* mc-boot/GmcMetaError.c: Rebuilt.
	* mc-boot/GmcOptions.c: Rebuilt.
	* mc-boot/GmcOptions.h: Rebuilt.
	* mc-boot/GmcStack.c: Rebuilt.
	* mc-boot/GnameKey.c: Rebuilt.
	* mc-boot/GsymbolKey.c: Rebuilt.
	* mc/decl.mod:: Rebuilt.
	* mc/mcOptions.def: Rebuilt.
	* mc/mcOptions.mod:: Rebuilt.
	* pge-boot/GDynamicStrings.c: Rebuilt.
	* pge-boot/GFIO.c: Rebuilt.
	* pge-boot/GIndexing.c: Rebuilt.
	* pge-boot/GM2EXCEPTION.c: Rebuilt.
	* pge-boot/GM2RTS.c: Rebuilt.
	* pge-boot/GNameKey.c: Rebuilt.
	* pge-boot/GPushBackInput.c: Rebuilt.
	* pge-boot/GRTExceptions.c: Rebuilt.
	* pge-boot/GStdIO.c: Rebuilt.
	* pge-boot/GSymbolKey.c: Rebuilt.
	* pge-boot/GSysStorage.c: Rebuilt.

2023-02-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108261
	* Make-lang.in (GM2-COMP-BOOT-DEFS): DynamicStringPath.def
	remove.  DynamicPath.def add.
	(GM2-COMP-BOOT-MODS): DynamicStringPath.mod remove.
	DynamicPath.mod add.
	* Make-maintainer.in (BUILD-BOOT-PPG-H): New dependency.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PPG-H) Add
	dependency.
	(PGE-DEF): New definition.
	(BUILD-BOOT-PG-H): New dependency.
	(m2/gm2-pg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PG-H) Add
	dependency.
	(BUILD-BOOT-PGE-H): New dependency.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PGE-H) Add
	dependency.
	(GM2PATH): Add pathname entries.
	(m2/boot-bin/mc-devel$(exeext)): Add m2/mc-boot-ch/Gm2rtsdummy.o
	dependency.
	(m2/boot-bin/mc-opt$(exeext)): Fix -I path.
	* gm2-compiler/DynamicStringPath.def: Renamed module to
	DynamicPath.
	(GetUserPath): Remove.
	(GetSystemPath): Remove.
	(SetUserPath): Remove.
	(SetSystemPath): Remove.
	(DumpPath): New procedure definition.
	* gm2-compiler/DynamicStringPath.mod: Renamed module to
	DynamicPath.
	(GetUserPath): Remove.
	(GetSystemPath): Remove.
	(SetUserPath): Remove.
	(SetSystemPath): Remove.
	(DumpPath): Remove Debugging conditional.
	* gm2-compiler/M2AsmUtil.mod: Import EqualArray, NulName and
	GetLibName.
	(Debugging): New declaration.
	(GetFullSymName): Re-implemented to prefix (mange) libname
	to any extern variable/procedure which is IsExportQualified.
	* gm2-compiler/M2Comp.mod (qprintLibName): New procedure.
	* gm2-compiler/M2Graph.mod (resolveImports): Add libname.
	* gm2-compiler/M2Options.def (SetM2Prefix): New procedure.
	(GetM2Prefix): New procedure function.
	(SetM2PathName): New procedure.
	(GetM2PathName): New procedure function.
	* gm2-compiler/M2Options.mod: (SetM2Prefix): New procedure implemented.
	(GetM2Prefix): New procedure function implemented.
	(SetM2PathName): New procedure implemented.
	(GetM2PathName): New procedure function implemented.
	(RuntimeModuleOverride): Set to DefaultRuntimeModuleOverride.
	* gm2-compiler/M2Quads.mod: Import GetLibName.
	(SafeRequestSym) Pass result of GetLibName to RequestDependant.
	(callRequestDependant): Add libname as a parameter.
	(BuildM2InitFunction): Add libname as a parameter.
	(BuildM2FiniFunction): Add libname as a parameter.
	(BuildM2CtorFunction): Add libname as a parameter.
	* gm2-compiler/M2Scaffold.mod (LookupModuleSym): Set LibName
	if a definition source was found.
	* gm2-compiler/M2Search.def (FindSourceFile): Add named library parameter.
	(FindSourceDefFile): Add named library parameter.
	(FindSourceModFile): Add named library parameter.
	* gm2-compiler/M2Search.mod (FindSourceFile): Reimplement.
	(FindSourceDefFile): Add named library parameter.
	(FindSourceModFile): Add named library parameter.
	* gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern): Add
	libname parameter.
	(PutLibName): New procedure.
	(GetLibName): New procedure function.
	* gm2-compiler/SymbolTable.mod (MakeProcedureCtorExtern): Add
	libname parameter.
	(GenName): Add libname parameter.
	(InitCtorFields): Add moduleSym as a parameter.
	(PutCtorExtern): Add libname parameter to GenName.
	* gm2-gcc/init.cc (_M2_DynamicStringPath_init): Rename function...
	(_M2_DynamicPath_init): ...to this.
	(_M2_PathName_init): Added.
	* gm2-gcc/m2decl.cc (m2decl_DeclareM2linkStaticInitialization):
	Add m2pim as the manged component of the exported symbol.
	(m2decl_DeclareM2linkForcedModuleInitOrder): Add m2pim mangle prefix.
	* gm2-gcc/m2options.h (M2Options_SetM2Prefix): New function.
	(M2Options_GetM2Prefix): New function.
	(M2Options_SetM2PathName): New function.
	(M2Options_GetM2PathName): New function.
	* gm2-lang.cc (push_back_Ipath): New function.
	(add_one_import_path): New function.
	(gm2_langhook_handle_option): Record -I component.  Call
	SetM2PathName when -fm2-pathname= is seen.  Record -fm2-pathnameI
	component.  Call SetM2Prefix when -fm2-prefix= is seen.
	(gm2_langhook_post_options): Iterative over pathname entries
	and call SetM2PathName, SetSearchPath as appropriate.
	* gm2-libs-iso/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-iso/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-min/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-min/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2Dependent.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2Dependent.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/RTint.mod (FindVector): Rename variables.
	(initInputVector): Rename variables.
	(initOutputVector): Rename variables.
	(InitTimeVector): Rename variables.
	(FindVectorNo): Rename variables.
	(FindPendingVector): Rename variables.
	(ReArmTimeVector): Rename variables.
	(GetTimeVector): Rename variables.
	(AttachVector): Rename variables.
	(AttachVector): Rename variables.
	(IncludeVector): Rename variables.
	(ExcludeVector): Rename variables.
	(AddFd): Rename variables.
	(AddFd): Rename variables.
	(DumpPendingQueue): Rename variables.
	(stop): Remove.
	(activatePending): Rename variables.
	(Listen): Rename variables.
	* gm2-libs/libc.def (snprintf): New function.
	* gm2-libs/sckt.def: Change all exported identifiers to be
	export qualified.
	* gm2spec.cc (push_back_Ipath): New function.
	(add_m2_I_path): New function.
	(lang_specific_driver): Skip -fm2-pathname= and remember pathname.
	Skip -I and record the path and current pathname.  Call add_m2_I_path.
	* lang-specs.h: Replace %{I*} with %{fm2-pathname*}.
	* lang.opt (-fm2-pathname=): New entry.
	(-fm2-pathname): New entry.
	(-fm2-prefix=): New entry.
	* mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_dep): New function.
	(_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): New method.
	* mc-boot-ch/Glibc.c (libc_snprintf): New function.
	* mc-boot-ch/m2rts.h (M2RTS_RequestDependant): Changed prototype.
	(M2RTS_RegisterModule): Changed prototype.
	* mc-boot/GDynamicStrings.c: Rebuild.
	* mc-boot/GFIO.c: Rebuild.
	* mc-boot/GIndexing.c: Rebuild.
	* mc-boot/GM2Dependent.c: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2EXCEPTION.c: Rebuild.
	* mc-boot/GM2RTS.c: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GPushBackInput.c: Rebuild.
	* mc-boot/GRTExceptions.c: Rebuild.
	* mc-boot/GRTint.c: Rebuild.
	* mc-boot/GStdIO.c: Rebuild.
	* mc-boot/GStringConvert.c: Rebuild.
	* mc-boot/GSysStorage.c: Rebuild.
	* mc-boot/Gdecl.c: Rebuild.
	* mc-boot/Gkeyc.c: Rebuild.
	* mc-boot/Glibc.h: Rebuild.
	* mc-boot/GmcComment.c: Rebuild.
	* mc-boot/GmcComp.c: Rebuild.
	* mc-boot/GmcDebug.c: Rebuild.
	* mc-boot/GmcMetaError.c: Rebuild.
	* mc-boot/GmcStack.c: Rebuild.
	* mc-boot/GnameKey.c: Rebuild.
	* mc-boot/GsymbolKey.c: Rebuild.
	* pge-boot/GASCII.c: Rebuild.
	* pge-boot/GArgs.c: Rebuild.
	* pge-boot/GAssertion.c: Rebuild.
	* pge-boot/GDebug.c: Rebuild.
	* pge-boot/GDynamicStrings.c: Rebuild.
	* pge-boot/GFIO.c: Rebuild.
	* pge-boot/GIO.c: Rebuild.
	* pge-boot/GIndexing.c: Rebuild.
	* pge-boot/GLists.c: Rebuild.
	* pge-boot/GM2Dependent.c: Rebuild.
	* pge-boot/GM2Dependent.h: Rebuild.
	* pge-boot/GM2EXCEPTION.c: Rebuild.
	* pge-boot/GM2RTS.c: Rebuild.
	* pge-boot/GM2RTS.h: Rebuild.
	* pge-boot/GNameKey.c: Rebuild.
	* pge-boot/GNumberIO.c: Rebuild.
	* pge-boot/GOutput.c: Rebuild.
	* pge-boot/GPushBackInput.c: Rebuild.
	* pge-boot/GRTExceptions.c: Rebuild.
	* pge-boot/GSFIO.c: Rebuild.
	* pge-boot/GStdIO.c: Rebuild.
	* pge-boot/GStorage.c: Rebuild.
	* pge-boot/GStrCase.c: Rebuild.
	* pge-boot/GStrIO.c: Rebuild.
	* pge-boot/GStrLib.c: Rebuild.
	* pge-boot/GSymbolKey.c: Rebuild.
	* pge-boot/GSysExceptions.c (_M2_SysExceptions_finish): Rename this...
	(_M2_SysExceptions_fini): ... to this.
	* pge-boot/GSysStorage.c: Rebuild.
	(_M2_SysStorage_finish): Rename this...
	(_M2_SysStorage_fini): ... to this.
	* pge-boot/GUnixArgs.cc: New file.
	* pge-boot/Gbnflex.c (_M2_bnflex_finish): Rename this...
	(_M2_bnflex_fini): ... to this.
	* pge-boot/Gerrno.c (_M2_errno_finish): Rename this...
	(_M2_errno_fini): ... to this.
	* pge-boot/Glibc.c (libc_snprintf): New function.
	* pge-boot/Glibc.h (libc_snprintf): New prototype.
	* pge-boot/Gpge.c (_M2_pge_finish): Rename this...
	(_M2_pge_fini): ... to this.
	* pge-boot/Gtermios.cc (_M2_termios_finish): Rename this...
	(_M2_termios_fini): ... to this.
	* pge-boot/main.c (_M2_RTExceptions_finish): Rename this...
	(_M2_RTExceptions_fini): ... to this.
	(_M2_M2EXCEPTION_finish): Rename this...
	(_M2_M2EXCEPTION_fini): ... to this.
	(_M2_M2RTS_finish): Rename this...
	(_M2_M2RTS_fini): ... to this.
	(_M2_SysExceptions_finish): Rename this...
	(_M2_SysExceptions_fini): ... to this.
	(_M2_StrLib_finish): Rename this...
	(_M2_StrLib_fini): ... to this.
	(_M2_errno_finish): Rename this...
	(_M2_errno_fini): ... to this.
	(_M2_termios_finish): Rename this...
	(_M2_termios_fini): ... to this.
	(_M2_IO_finish): Rename this...
	(_M2_IO_fini): ... to this.
	(_M2_StdIO_finish): Rename this...
	(_M2_StdIO_fini): ... to this.
	(_M2_Debug_finish): Rename this...
	(_M2_Debug_fini): ... to this.
	(_M2_SysStorage_finish): Rename this...
	(_M2_SysStorage_fini): ... to this.
	(_M2_Storage_finish): Rename this...
	(_M2_Storage_fini): ... to this.
	(_M2_StrIO_finish): Rename this...
	(_M2_StrIO_fini): ... to this.
	(_M2_DynamicStrings_finish): Rename this...
	(_M2_DynamicStrings_fini): ... to this.
	(_M2_Assertion_finish): Rename this...
	(_M2_Assertion_fini): ... to this.
	(_M2_Indexing_finish): Rename this...
	(_M2_Indexing_fini): ... to this.
	(_M2_NameKey_finish): Rename this...
	(_M2_NameKey_fini): ... to this.
	(_M2_NumberIO_finish): Rename this...
	(_M2_NumberIO_fini): ... to this.
	(_M2_PushBackInput_finish): Rename this...
	(_M2_PushBackInput_fini): ... to this.
	(_M2_SymbolKey_finish): Rename this...
	(_M2_SymbolKey_fini): ... to this.
	(_M2_UnixArgs_finish): Rename this...
	(_M2_UnixArgs_fini): ... to this.
	(_M2_FIO_finish): Rename this...
	(_M2_FIO_fini): ... to this.
	(_M2_SFIO_finish): Rename this...
	(_M2_SFIO_fini): ... to this.
	(_M2_StrCase_finish): Rename this...
	(_M2_StrCase_fini): ... to this.
	(_M2_bnflex_finish): Rename this...
	(_M2_bnflex_fini): ... to this.
	(_M2_Lists_finish): Rename this...
	(_M2_Lists_fini): ... to this.
	(_M2_Args_finish): Rename this...
	(_M2_Args_fini): ... to this.
	(_M2_Output_finish): Rename this...
	(_M2_Output_fini): ... to this.
	(_M2_pge_finish): Rename this...
	(_M2_pge_fini): ... to this.
	* plugin/m2rte.cc (m2_runtime_error_calls): Change all runtime
	procedure names to their name mangled counterparts.
	* gm2-libs-iso/wrapsock.c: Removed.
	* gm2-libs-iso/wraptime.c: Removed.
	* mc-boot/Gpth.h: Removed.
	* gm2-compiler/PathName.def: New file.
	* gm2-compiler/PathName.mod: New file.
	* gm2-compiler/DynamicPath.def: New file.
	* gm2-compiler/DynamicPath.mod: New file.

2023-02-06  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108135
	* gm2-compiler/M2Search.mod (DSdbEnter): Comment out.
	(DSdbExit): Comment out.

2023-02-06  Co-Authored by: Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR modula2/107234
	* m2pp.cc (m2pp_integer_cst): Use
	HOST_WIDE_INT_PRINT_UNSIGNED as the format specifier.

2023-02-06  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Preprocess.mod (BaseName): Comment out.
	* gm2-lang.cc (opt): Remove.
	* gm2spec.cc (add_include): Remove.
	(full_libraries): Remove.
	(concat_option): Remove.

2023-02-03  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (TEXISRC): Remove m2/images/gnu.eps.
	(RSTSRC): Remove m2/images/gnu.eps.
	(doc/m2.dvi): Add $(objdir)/m2/images/gnu.eps.
	(doc/m2.pdf): Add $(objdir)/m2/images/gnu.eps.
	(M2_PDFFILES): New definition.
	(m2.install-pdf): New rule.
	(m2.pod): Add $(objdir)/m2/images/gnu.eps.
	(m2.info): Add $(objdir)/m2/images/gnu.eps.
	(m2.html): New rule.
	(m2/gpl_v3_without_node.texi): New rule.
	(plugin/m2rte$(soext)): Simplify mkinstalldirs.
	(cc1gm2$(exeext)): Ditto.
	(m2/stage1/cc1gm2$(exeext)): Ditto.
	(m2/gm2-gcc/%.o): Ditto.
	(m2/gm2-gcc/rtegraph.o): Ditto.
	(m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
	(m2/mc-boot/$(SRC_PREFIX)%.o):Ditto.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot/main.o): Ditto.
	(m2/gm2-libs-boot/%.o):	Ditto.
	(m2/gm2-libs-boot/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-libs-boot/RTcodummy.o): Ditto.
	(m2/gm2-libs-boot/wrapc.o): Ditto.
	(m2/gm2-libs-boot/M2LINK.o): Ditto.
	(m2/gm2-libs-boot/UnixArgs.o): Ditto.
	(m2/gm2-libs-boot/choosetemp.o): Ditto.
	(m2/gm2-libs-boot/errno.o): Ditto.
	(m2/gm2-libs-boot/dtoa.o): Ditto.
	(m2/gm2-libs-boot/ldtoa.o): Ditto.
	(m2/gm2-libs-boot/termios.o): Ditto.
	(m2/gm2-libs-boot/SysExceptions.o): Ditto.
	(m2/gm2-libs-boot/SysStorage.o): Ditto.
	(m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
	(m2/gm2-compiler-boot/M2Error.o): Ditto.
	(m2/gm2-compiler-boot/%.o): Ditto.
	(m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-compiler-boot/m2flex.o): Ditto.
	(m2/gm2-compiler/m2flex.c): Ditto.
	(m2/gm2-libiberty/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-compiler/%.o): Ditto.
	(m2/gm2-compiler/m2flex.o): Ditto.
	(m2/gm2-compiler/%.o): Ditto.
	(m2/gm2-libs-iso/%.o): Ditto.
	(m2/gm2-libs/gm2-libs-host.h): Ditto.
	($(objdir)/m2/gm2-libs-min/SYSTEM.def): Ditto.
	($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
	($(objdir)/m2/gm2-libs-iso/SYSTEM.def):	Ditto.
	($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
	(m2/gm2-compiler/gm2.a): Ditto.
	(m2/gm2-libs-boot/libgm2.a): Ditto.
	(m2/gm2-compiler-boot/gm2.a): Ditto.
	(m2/boot-bin/mklink$(exeext)): Ditto.
	(m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-compiler/%.mod): Ditto.
	(m2/gm2-compiler-boot/%.mod): Ditto.
	(m2/pge-boot/%.o): Ditto.

2023-02-01  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (GM2_FLAGS): Add -fno-return -Wreturn-type.
	(GM2_ISO_FLAGS): Add -fno-return -Wreturn-type.
	* Make-maintainer.in (GM2PATH): Split into separate -I components.
	(MC-LIB-DEFS): Add RTentity.def.
	(m2/boot-bin/mc-devel$(exeext)): Changed -I$(GM2PATH) to
	$(GM2PATH).
	(m2/boot-bin/mc-opt$(exeext)): Separate -I paths.
	(m2/mc/decl.o): Separate -I paths.
	(gm2-bootstrap): Separate -I paths.
	(m2/mc-boot-gen/$(SRC_PREFIX)%.h): Separate -I paths.
	(m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Separate -I paths.
	(m2/mc-boot-gen/$(SRC_PREFIX)%.c): Separate -I paths.
	(gm2.verifyparanoid): Separate -I paths.
	(gm2.verifystage12): Separate -I paths.
	* gm2-compiler/M2ALU.mod (GetConstructorElement): Add default
	Return NulSym.  Remove return from the error case.
	* gm2-compiler/M2Base.mod (ComplexToScalar): Return RType
	from the error case.
	(MixMetaTypes):  Return MakeError as a default.
	* gm2-compiler/M2GCCDeclare.mod (GetTypeMin): Return NulSym
	from the error case.
	(GetTypeMax): Return NulSym from the error case.
	* gm2-compiler/M2GenGCC.mod (IsExportedGcc): Replace Assert
	by InternalError.
	* gm2-compiler/M2Quads.mod (GetItemPointedTo): Add InternalError.
	(GetTypeMin): Add InternalError.
	(GetTypeMax): Add InternalError.
	* gm2-compiler/M2System.mod (InitSystem): Call
	PutProcedureNoReturn on Throw.
	* gm2-gcc/m2except.cc (m2except_InitExceptions): fn_throw_tree
	declare as noreturn.  fn_rethrow_tree declare as noreturn.
	* gm2-libs-coroutines/Debug.def (Halt): Add noreturn attribute.
	* gm2-libs-coroutines/SYSTEM.def (THROW): Add noreturn attribute.
	* gm2-libs-iso/ClientSocket.mod (dorbytes): Add return FALSE.
	* gm2-libs-iso/EXCEPTIONS.def (RAISE): Add noreturn attribute.
	* gm2-libs-iso/IOLink.def (RAISEdevException): Add noreturn attribute.
	* gm2-libs-iso/M2RTS.def (HALT): Add noreturn attribute.
	(Halt): Ditto.
	(HaltC): Ditto.
	(ErrorMessage): Ditto.
	(AssignmentException): Ditto.
	(ReturnException): Ditto.
	(IncException): Ditto.
	(DecException): Ditto.
	(InclException): Ditto.
	(ExclException): Ditto.
	(ShiftException): Ditto.
	(RotateException): Ditto.
	(StaticArraySubscriptException): Ditto.
	(DynamicArraySubscriptException): Ditto.
	(ForLoopBeginException): Ditto.
	(ForLoopToException): Ditto.
	(ForLoopEndException): Ditto.
	(PointerNilException): Ditto.
	(NoReturnException): Ditto.
	(CaseException): Ditto.
	(WholeNonPosDivException): Ditto.
	(WholeNonPosModException): Ditto.
	(WholeZeroDivException): Ditto.
	(WholeZeroRemException): Ditto.
	(WholeValueException): Ditto.
	(RealValueException): Ditto.
	(ParameterException): Ditto.
	(NoException): Ditto.
	* gm2-libs-iso/SYSTEM.def (THROW): Ditto.
	* gm2-libs-iso/TermFile.mod (dorbytes): Add default return FALSE.
	* gm2-libs-min/M2RTS.def: Add noreturn attribute.
	* gm2-libs/FIO.mod (BufferedRead): Return -1.
	(getFileName): Return NIL.
	(getFileNameLength): Return 0.
	* gm2-libs/M2RTS.def (HaltC): Add noreturn attribute.
	(AssignmentException): Ditto.
	(ReturnException): Ditto.
	(IncException): Ditto.
	(DecException): Ditto.
	(InclException): Ditto.
	(ExclException): Ditto.
	(ShiftException): Ditto.
	(RotateException): Ditto.
	(StaticArraySubscriptException): Ditto.
	(DynamicArraySubscriptException): Ditto.
	(ForLoopBeginException): Ditto.
	(ForLoopToException): Ditto.
	(ForLoopEndException): Ditto.
	(PointerNilException): Ditto.
	(NoReturnException): Ditto.
	(CaseException): Ditto.
	(WholeNonPosDivException): Ditto.
	(WholeNonPosModException): Ditto.
	(WholeZeroDivException): Ditto.
	(WholeZeroRemException): Ditto.
	(WholeValueException): Ditto.
	(RealValueException): Ditto.
	(ParameterException): Ditto.
	(NoException): Ditto.
	* gm2-libs/RTExceptions.def (Raise): Ditto.
	* gm2-libs/RTExceptions.mod (InvokeHandler): Ditto.
	* gm2-libs/SYSTEM.def (THROW): Ditto.
	* m2.flex (_M2_m2flex_fini): Remamed to...
	(_M2_m2flex_finish): ...here.
	* mc-boot-ch/GBuiltins.c (_M2_Builtins_finish): Remamed to...
	(_M2_Builtins_fini): ...this.
	* mc-boot-ch/GRTco.c (_M2_RTco_finish): Remamed to...
	(_M2_RTco_fini): ...this.
	* mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_finish): Remamed to...
	(_M2_SYSTEM_fini): ...this.
	* mc-boot-ch/GSelective.c (_M2_Selective_finish): Remamed to...
	(_M2_Selective_fini): ...this.
	* mc-boot-ch/GSysExceptions.c (_M2_SysExceptions_init): Add
	parameters.
	(_M2_SysExceptions_finish): Remamed to...
	(_M2_SysExceptions_fini): ...this.
	* mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_finish): Remamed to...
	(_M2_UnixArgs_fini): ...this.
	(_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): Change parameter
	to _M2_UnixArgs_fini.
	* mc-boot-ch/Gdtoa.c (_M2_dtoa_finish): Remamed to...
	(_M2_dtoa_fini): ...this.
	* mc-boot-ch/Gerrno.c (_M2_errno_finish): Remamed to...
	(_M2_errno_fini): ...this.
	* mc-boot-ch/Gldtoa.c (_M2_ldtoa_finish): Remamed to...
	(_M2_ldtoa_fini): ...this.
	* mc-boot-ch/Gtermios.cc (_M2_termios_init): Add parameters.
	(_M2_termios_finish): Remamed to...
	(_M2_termios_fini): ...this.
	* mc-boot-ch/Gwrapc.c (_M2_wrapc_init): Add parameters.
	(_M2_wrapc_finish): Remamed to...
	(_M2_wrapc_fini): ...this.
	* mc-boot/GASCII.c: Rebuild.
	* mc-boot/GArgs.c: Rebuild.
	* mc-boot/GAssertion.c: Rebuild.
	* mc-boot/GBreak.c: Rebuild.
	* mc-boot/GCmdArgs.c: Rebuild.
	* mc-boot/GDebug.c: Rebuild.
	* mc-boot/GDynamicStrings.c: Rebuild.
	* mc-boot/GEnvironment.c: Rebuild.
	* mc-boot/GFIO.c: Rebuild.
	* mc-boot/GFormatStrings.c: Rebuild.
	* mc-boot/GFpuIO.c: Rebuild.
	* mc-boot/GIO.c: Rebuild.
	* mc-boot/GIndexing.c: Rebuild.
	* mc-boot/GM2Dependent.c: Rebuild.
	* mc-boot/GM2EXCEPTION.c: Rebuild.
	* mc-boot/GM2RTS.c: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GMemUtils.c: Rebuild.
	* mc-boot/GNumberIO.c: Rebuild.
	* mc-boot/GPushBackInput.c: Rebuild.
	* mc-boot/GRTExceptions.c: Rebuild.
	* mc-boot/GRTExceptions.h: Rebuild.
	* mc-boot/GRTco.h: Rebuild.
	* mc-boot/GRTint.c: Rebuild.
	* mc-boot/GSArgs.c: Rebuild.
	* mc-boot/GSFIO.c: Rebuild.
	* mc-boot/GStdIO.c: Rebuild.
	* mc-boot/GStorage.c: Rebuild.
	* mc-boot/GStrCase.c: Rebuild.
	* mc-boot/GStrIO.c: Rebuild.
	* mc-boot/GStrLib.c: Rebuild.
	* mc-boot/GStringConvert.c: Rebuild.
	* mc-boot/GSysStorage.c: Rebuild.
	* mc-boot/GTimeString.c: Rebuild.
	* mc-boot/Galists.c: Rebuild.
	* mc-boot/Gdecl.c: Rebuild.
	* mc-boot/Gkeyc.c: Rebuild.
	* mc-boot/Glists.c: Rebuild.
	* mc-boot/GmcComment.c: Rebuild.
	* mc-boot/GmcComp.c: Rebuild.
	* mc-boot/GmcDebug.c: Rebuild.
	* mc-boot/GmcError.c: Rebuild.
	* mc-boot/GmcFileName.c: Rebuild.
	* mc-boot/GmcLexBuf.c: Rebuild.
	* mc-boot/GmcMetaError.c: Rebuild.
	* mc-boot/GmcOptions.c: Rebuild.
	* mc-boot/GmcPreprocess.c: Rebuild.
	* mc-boot/GmcPretty.c: Rebuild.
	* mc-boot/GmcPrintf.c: Rebuild.
	* mc-boot/GmcQuiet.c: Rebuild.
	* mc-boot/GmcReserved.c: Rebuild.
	* mc-boot/GmcSearch.c: Rebuild.
	* mc-boot/GmcStack.c: Rebuild.
	* mc-boot/GmcStream.c: Rebuild.
	* mc-boot/Gmcp1.c: Rebuild.
	* mc-boot/Gmcp2.c: Rebuild.
	* mc-boot/Gmcp3.c: Rebuild.
	* mc-boot/Gmcp4.c: Rebuild.
	* mc-boot/Gmcp5.c: Rebuild.
	* mc-boot/GnameKey.c: Rebuild.
	* mc-boot/GsymbolKey.c: Rebuild.
	* mc-boot/Gtop.c: Rebuild.
	* mc-boot/Gvarargs.c: Rebuild.
	* mc-boot/Gwlists.c: Rebuild.
	* mc-boot/GRTentity.h: New file.
	* mc/decl.mod (scaffoldStatic): Change _finish to _fini.
	* mc/mc.flex (_M2_mcflex_fini): New function.
	(_M2_mcflex_finish): Remove function.
	* tools-src/mklink.c (GenerateFinishCalls): Change
	_finish to _fini.
	(GeneratePrototypes): Change _finish to _fini.

2023-01-31  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (gm2-libs.texi-check): Rename
	m2/gm2-libs-pim	to m2/gm2-libs-log.
	* gm2-libs-pim/BitBlockOps.def: Moved to...
	* gm2-libs-log/BitBlockOps.def: ...here.
	* gm2-libs-pim/BitBlockOps.mod: Moved to...
	* gm2-libs-log/BitBlockOps.mod: ...here.
	* gm2-libs-pim/BitByteOps.def: Moved to...
	* gm2-libs-log/BitByteOps.def: ...here.
	* gm2-libs-pim/BitByteOps.mod: Moved to...
	* gm2-libs-log/BitByteOps.mod: ...here.
	* gm2-libs-pim/BitWordOps.def: Moved to...
	* gm2-libs-log/BitWordOps.def: ...here.
	* gm2-libs-pim/BitWordOps.mod: Moved to...
	* gm2-libs-log/BitWordOps.mod: ...here.
	* gm2-libs-pim/BlockOps.def: Moved to...
	* gm2-libs-log/BlockOps.def: ...here.
	* gm2-libs-pim/BlockOps.mod: Moved to...
	* gm2-libs-log/BlockOps.mod: ...here.
	* gm2-libs-pim/Break.c: Moved to...
	* gm2-libs-log/Break.c: ...here.
	* gm2-libs-pim/Break.def: Moved to...
	* gm2-libs-log/Break.def: ...here.
	* gm2-libs-pim/CardinalIO.def: Moved to...
	* gm2-libs-log/CardinalIO.def: ...here.
	* gm2-libs-pim/CardinalIO.mod: Moved to...
	* gm2-libs-log/CardinalIO.mod: ...here.
	* gm2-libs-pim/Conversions.def: Moved to...
	* gm2-libs-log/Conversions.def: ...here.
	* gm2-libs-pim/Conversions.mod: Moved to...
	* gm2-libs-log/Conversions.mod: ...here.
	* gm2-libs-pim/DebugPMD.def: Moved to...
	* gm2-libs-log/DebugPMD.def: ...here.
	* gm2-libs-pim/DebugPMD.mod: Moved to...
	* gm2-libs-log/DebugPMD.mod: ...here.
	* gm2-libs-pim/DebugTrace.def: Moved to...
	* gm2-libs-log/DebugTrace.def: ...here.
	* gm2-libs-pim/DebugTrace.mod: Moved to...
	* gm2-libs-log/DebugTrace.mod: ...here.
	* gm2-libs-pim/Delay.def: Moved to...
	* gm2-libs-log/Delay.def: ...here.
	* gm2-libs-pim/Delay.mod: Moved to...
	* gm2-libs-log/Delay.mod: ...here.
	* gm2-libs-pim/Display.def: Moved to...
	* gm2-libs-log/Display.def: ...here.
	* gm2-libs-pim/Display.mod: Moved to...
	* gm2-libs-log/Display.mod: ...here.
	* gm2-libs-pim/ErrorCode.def: Moved to...
	* gm2-libs-log/ErrorCode.def: ...here.
	* gm2-libs-pim/ErrorCode.mod: Moved to...
	* gm2-libs-log/ErrorCode.mod: ...here.
	* gm2-libs-pim/FileSystem.def: Moved to...
	* gm2-libs-log/FileSystem.def: ...here.
	* gm2-libs-pim/FileSystem.mod: Moved to...
	* gm2-libs-log/FileSystem.mod: ...here.
	* gm2-libs-pim/FloatingUtilities.def: Moved to...
	* gm2-libs-log/FloatingUtilities.def: ...here.
	* gm2-libs-pim/FloatingUtilities.mod: Moved to...
	* gm2-libs-log/FloatingUtilities.mod: ...here.
	* gm2-libs-pim/InOut.def: Moved to...
	* gm2-libs-log/InOut.def: ...here.
	* gm2-libs-pim/InOut.mod: Moved to...
	* gm2-libs-log/InOut.mod: ...here.
	* gm2-libs-pim/Keyboard.def: Moved to...
	* gm2-libs-log/Keyboard.def: ...here.
	* gm2-libs-pim/Keyboard.mod: Moved to...
	* gm2-libs-log/Keyboard.mod: ...here.
	* gm2-libs-pim/LongIO.def: Moved to...
	* gm2-libs-log/LongIO.def: ...here.
	* gm2-libs-pim/LongIO.mod: Moved to...
	* gm2-libs-log/LongIO.mod: ...here.
	* gm2-libs-pim/NumberConversion.def: Moved to...
	* gm2-libs-log/NumberConversion.def: ...here.
	* gm2-libs-pim/NumberConversion.mod: Moved to...
	* gm2-libs-log/NumberConversion.mod: ...here.
	* gm2-libs-pim/README.texi: Moved to...
	* gm2-libs-log/README.texi: ...here.
	* gm2-libs-pim/Random.def: Moved to...
	* gm2-libs-log/Random.def: ...here.
	* gm2-libs-pim/Random.mod: Moved to...
	* gm2-libs-log/Random.mod: ...here.
	* gm2-libs-pim/RealConversions.def: Moved to...
	* gm2-libs-log/RealConversions.def: ...here.
	* gm2-libs-pim/RealConversions.mod: Moved to...
	* gm2-libs-log/RealConversions.mod: ...here.
	* gm2-libs-pim/RealInOut.def: Moved to...
	* gm2-libs-log/RealInOut.def: ...here.
	* gm2-libs-pim/RealInOut.mod: Moved to...
	* gm2-libs-log/RealInOut.mod: ...here.
	* gm2-libs-pim/Strings.def: Moved to...
	* gm2-libs-log/Strings.def: ...here.
	* gm2-libs-pim/Strings.mod: Moved to...
	* gm2-libs-log/Strings.mod: ...here.
	* gm2-libs-pim/Termbase.def: Moved to...
	* gm2-libs-log/Termbase.def: ...here.
	* gm2-libs-pim/Termbase.mod: Moved to...
	* gm2-libs-log/Termbase.mod: ...here.
	* gm2-libs-pim/Terminal.def: Moved to...
	* gm2-libs-log/Terminal.def: ...here.
	* gm2-libs-pim/Terminal.mod: Moved to...
	* gm2-libs-log/Terminal.mod: ...here.
	* gm2-libs-pim/TimeDate.def: Moved to...
	* gm2-libs-log/TimeDate.def: ...here.
	* gm2-libs-pim/TimeDate.mod: Moved to...
	* gm2-libs-log/TimeDate.mod: ...here.

2023-01-28  Iain Sandoe  <iain@sandoe.co.uk>

	* lang.opt: Claim Wreturn-type.

2023-01-27  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Comp.mod:  Import MetaString0.
	(ExamineCompilationUnit): New variable Message.
	Create and format error string.
	* gm2-compiler/M2LexBuf.mod: New variable SeenEof.
	(GetNonEofToken): New procedure.
	(Init): Set SeenEof to FALSE.
	(GetToken): Use GetNonEofToken instead of calls to
	m2flex.GetToken and GetToken.
	(AddTok): Detect eoftok and set SeenEof.

2023-01-27  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Options.def: Export GetMQ, SetMQ.
	* gm2-compiler/M2Preprocess.mod: (MakeSaveTempsFileName):
	Test NewDir against NIL.  Test Dumpdir against NIL.
	Test GetMD () against NIL.  Test GetMMD () against NIL.
	Test GetMQ () against NIL.  Test GetObj () against NIL.
	Test tempfile against NIL.
	* gm2-compiler/P2SymBuild.def: Export
	BuildNoReturnAttribute.

2023-01-27  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108555
	PR modula2/108182
	PR modula2/102343
	* gm2-lang.cc (gm2_langhook_option_lang_mask): Do not claim CL_C
	or CL_DRIVER.
	(gm2_langhook_init_options): Handle options that we want to pass
	to the preprocessor.
	* lang-specs.h: Pass -B and -save-temps to regular compile lines.
	* lang.opt: Add C and Driver options that Modula-2 intercepts for
	internal use. Reorder options into two sections and to collate.

2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2GCCDeclare.mod: Import IsProcedureNoReturn.
	(DeclareProcedureToGccWholeProgram): New variable declared and set
	returnType.  Pass returnType to BuildEndFunctionDeclaration.
	Extra parameter IsProcedureNoReturn passed to
	BuildEndFunctionDeclaration.
	* gm2-compiler/M2Quads.mod (BuildM2MainFunction): Correct
	scaffold comment and add extra return 0.
	* gm2-compiler/P2Build.bnf: Import BuildNoReturnAttribute.
	(ProcedureHeading): Process EndBuildFormalParameters before
	parsing AttributeNoReturn.
	(DefProcedureHeading): Process EndBuildFormalParameters before
	parsing AttributeNoReturn.
	(AttributeNoReturn): Call BuildNoReturnAttribute.
	* gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): New
	procedure.
	* gm2-compiler/P2SymBuild.mod (BuildNoReturnAttribute): New
	procedure.
	* gm2-compiler/SymbolTable.def (PutProcedureInline): Corrected
	comment.
	(PutProcedureNoReturn): New procedure.
	(IsProcedureNoReturn): New procedure function.
	* gm2-compiler/SymbolTable.mod (SymProcedure): IsNoReturn
	new field.
	(MakeProcedure): Initialize IsNoReturn to FALSE.
	(PutProcedureNoReturn): New procedure.
	(IsProcedureNoReturn): New procedure function.
	* gm2-gcc/m2decl.cc (m2decl_BuildEndFunctionDeclaration):
	Add extra parameter isnoreturn.  Set TREE_THIS_VOLATILE
	to isnoreturn.
	* gm2-gcc/m2decl.def (BuildEndFunctionDeclaration): Add
	extra parameter isnoreturn.
	* gm2-gcc/m2decl.h (m2decl_BuildEndFunctionDeclaration): Add
	extra parameter isnoreturn.
	* gm2-gcc/m2except.cc (m2except_InitExceptions): Change all
	function decl to pass an extra parameter isnoreturn.

2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* m2.flex (splitSlashStar): Fix comment so that /* does not
	appear inside the comment.

2023-01-26  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108553
	* gm2-lang.cc (gm2_langhook_init_options): Remove debug code.

2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/gm2config.h): Rewrite rule to be
	dependent upon m2/gm2config.aci.
	(m2/gm2config.aci): Newrule.
	* configure.ac (AC_CONFIG_HEADERS): Change destination
	to gm2config.aci.
	* configure: Regenerate.
	* gm2-libs/config-host: Regenerate.
	* gm2-compiler/M2GCCDeclare.mod (AddSymToWatch): Comment
	out.
	* gm2-compiler/M2Quads.mod (BuildConstHighFromSym): Remove
	Dim.
	(StartBuildWith): Call BuildStmtNoteTok.
	(BuildStmtNoteTok): New procedure.
	(BuildStmtNote): Re-implement re-factor into two
	procedures and call BuildStmtNoteTok.
	* gm2config.h.in: Remove.
	* gm2config.aci.in: New file.

2023-01-25  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/102343
	PR modula2/108182
	* gm2-compiler/M2Comp.mod: Early exit for pre-processor-only jobs.
	* gm2-compiler/M2Options.def (SetPPOnly, GetPPOnly, SetMD, GetMD,
	SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
	GetDumpDir):New.
	* gm2-compiler/M2Options.mod:(SetPPOnly, GetPPOnly, SetMD, GetMD,
	SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
	GetDumpDir):New.
	* gm2-compiler/M2Preprocess.def (PreprocessModule): Add flag to
	indicate the main file.
	* gm2-compiler/M2Preprocess.mod: Handle Preprocess-only jobs,
	handle MD, MMD and MQ options.
	* gm2-gcc/m2options.h (M2Options_SetPPOnly, M2Options_GetPPOnly,
	M2Options_SetDumpDir, M2Options_SetMD, M2Options_GetMD,
	M2Options_SetMMD, M2Options_GetMMD, M2Options_SetMQ, M2Options_GetMQ,
	M2Options_SetObj, M2Options_GetObj): New.
	* gm2-gcc/m2type.cc (m2type_InitBaseTypes): Early exit for pre-
	processor-only jobs.
	* gm2-lang.cc (gm2_langhook_init): Handle preprocess-only commands.
	(gm2_langhook_option_lang_mask): Claim C and Driver options so that
	we can intercept them for building pre-processor commands.
	(gm2_langhook_init_options): Collect the preprocessor line here.
	Save options that have different actions for preprocessor and compile
	commands.
	(gm2_langhook_handle_option): Only handle the modula-2 options here.
	(gm2_langhook_post_options): Do not create a back-end for pre-
	processor-only jobs.
	* gm2spec.cc (lang_specific_driver): Ignore PCH options, append a
	scaffold-main for cases where we are building a main module with
	-c.
	* lang-specs.h: Revise to handle preprocessor-only jobs and to
	consume pre-processed files.
	* lang.opt: Remove Driver and C options copies (we claim these
	separately).

2023-01-24  Co-Authored by: Iain Sandoe  <iain@sandoe.co.uk>

	* Make-lang.in (GM2-COMP-BOOT-DEFS): Add
	DynamicStringPath.def.
	(GM2-COMP-BOOT-MODS): Add DynamicStringPath.mod.
	(GM2-COMP-DEFS): Add DynamicStringPath.def.
	(GM2-COMP-MODS): Add DynamicStringPath.mod.
	($(objdir)/m2/gm2-libs-min/SYSTEM.def): Split path into
	multiple -I components.
	($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
	($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
	* gm2-compiler/M2Options.mod: Import DynamicStringPath.
	(SetSearchPath): Reimplement using DynamicStringPath
	procedures.
	* gm2-compiler/M2Search.def (InitSearchPath): Remove.
	(PrependSearchPath): Remove.
	* gm2-compiler/M2Search.mod (SFIO): Remove import.
	(DynamicStringPath): Add import.
	(Directory): Remove.
	(UserPath): Remove.
	(InitialPath): Remove.
	(InitSearchPath): Remove.
	(PrependSearchPath): Remove.
	(FindSourceFile): Re-implement.
	(FindSourceDefFile): Re-implement.
	(FindSourceModFile): Re-implement.
	* gm2-gcc/init.cc (_M2_DynamicStringPath_init):
	New prototype.
	(init_FrontEndInit): Call _M2_DynamicStringPath_init.
	* tools-src/makeSystem: Allow multiple -I paths.
	* gm2-compiler/DynamicStringPath.def: New file.
	* gm2-compiler/DynamicStringPath.mod: New file.
	* gm2-gcc/m2options.h (M2Options_SetMakeIncludePath): Add
	prototype.

2023-01-24  Gaius Mulley  <gaiusmod2@gmail.com>

	* m2.flex (cpreprocessor): Add temporary variable
	which is initialized to 0.
	(commentCLevel): New variable.
	(endOfCComment): New function.
	(splitSlashStar): New function to split /* into / and *
	tokens.
	(COMMENTC): New flex state.
	("/*"): New rule to test whether we should treat /*
	as a single token or as two tokens.
	(<COMMENTC>.): New rule to skip a character.
	(<COMMENTC>\n.*): New rule to consume the line.
	(<COMMENTC>"*/"): New rule to call endOfCComment.

2023-01-24  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs-iso/RTco.def: Import RTentity.
	Declare RTco as a definition for C module.

2023-01-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108182
	PR modula2/108480
	* Make-lang.in: Pass libsubdir to the language init
	build.
	* gm2-lang.cc (INCLUDE_VECTOR): Define.
	(add_one_import_path): New.
	(add_m2_import_paths): New.
	(gm2_langhook_post_options): Arrange to add the include
	paths (and add the system ones) in the same order as C
	uses.
	* gm2spec.cc (build_archive_path): Remove.
	(add_default_combination): Remove.
	(add_default_archives): Remove.
	(add_default_libs): We no longer need a '-L' option, just
	emit the -l and each library in use.
	(build_include_path): Remove.
	(add_include): Remove.
	(add_default_includes): Remove.
	(library_installed): Remove.
	(check_valid_library): Remove.
	(check_valid_list): Remove.
	(convert_abbreviation): Diagnose unhandled cases.
	(lang_specific_driver): Skip options where we will add back
	a validated version.
	* lang-specs.h (M2CPP): Reformat, append %I when -fcpp is not
	in use.  Revise the cc1gm2 spec to omit mentioning options that
	are handled in the c pre-processor line.
	* lang.opt: Allow preprocessing and path options as input to the
	cc1gm2 invocation, so that they can be passed to the preprocessor
	invocation.

2023-01-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108405
	* gm2-libs-iso/Preemptive.mod (initPreemptive): Use a value for
	extra space that is divisible by common OS pagesizes.

2023-01-20  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs/Args.mod (GetArg): Check index before
	accessing array.
	* gm2-libs/M2Dependent.mod (toCString): Check index
	before accessing array.
	* mc-boot/GArgs.c: Rebuilt.
	* mc-boot/GM2Dependent.c: Rebuilt.
	* mc-boot/Gkeyc.c: Rebuilt.
	* mc/keyc.mod (seenUIntMin): Initialize once.
	(seenUIntMax): Initialize once.
	(checkLimits): Only test seenUIntMin and seenUIntMax
	once.
	* pge-boot/GArgs.c:  Rebuilt.
	* pge-boot/GM2Dependent.c: Rebuilt.

2023-01-20  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-gcc/m2statement.cc (gm2_gimplify_function_node):
	Remove.
	* gm2-libs/DynamicStrings.mod (Equal): Remove dead code.
	* m2.flex (<COMMENT>"<*"): Add {} for else statement.
	* m2pp.cc (hextree): Add conditional #ifdef DEBUGGING.
	* mc-boot/GDynamicStrings.c: Rebuild.
	* pge-boot/GDynamicStrings.c: Rebuild.
	* pge-boot/GFIO.c: Rebuild.
	* pge-boot/GIndexing.c: Rebuild.
	* pge-boot/GM2EXCEPTION.c: Rebuild.
	* pge-boot/GM2RTS.c: Rebuild.
	* pge-boot/GNameKey.c: Rebuild.
	* pge-boot/GPushBackInput.c: Rebuild.
	* pge-boot/GRTExceptions.c: Rebuild.
	* pge-boot/GStdIO.c: Rebuild.
	* pge-boot/GSymbolKey.c: Rebuild.
	* pge-boot/GSysStorage.c: Rebuild.

2023-01-17  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc-boot/GM2RTS.c: Rebuilt.
	* mc-boot/GM2RTS.h: Rebuilt.
	* mc-boot/Gdecl.c: Rebuilt.
	* mc-boot/GmcOptions.c: Rebuilt.
	* mc/mcOptions.mod (displayVersion):
	Split first printf into three components

2023-01-17  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs-iso/M2RTS.def (Halt): Parameter file renamed to filename.
	(HaltC): New procedure declaration.
	(ErrorMessage): Parameter file renamed to filename.
	* gm2-libs-iso/M2RTS.mod (Halt): Parameter file renamed to
	filename.
	(HaltC): New procedure implementation.
	(ErrorStringC): New procedure implementation.
	(ErrorMessageC): New procedure implementation.
	* gm2-libs/M2RTS.def (Halt): Parameter file renamed to filename.
	(HaltC): New procedure declaration.
	(ErrorMessage): Parameter file renamed to filename.
	* gm2-libs/M2RTS.mod (Halt): Parameter file renamed to filename.
	(HaltC): New procedure implementation.
	(ErrorStringC): New procedure implementation.
	(ErrorMessageC): New procedure implementation.

2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc-boot-ch/Glibc.c (libc_time): New function.
	(libc_localtime): New function.
	* mc-boot/GDynamicStrings.c: Regenerate.
	* mc-boot/GFIO.c: Regenerate.
	* mc-boot/GFormatStrings.c: Regenerate.
	* mc-boot/GIndexing.c: Regenerate.
	* mc-boot/GM2Dependent.c: Regenerate.
	* mc-boot/GM2EXCEPTION.c: Regenerate.
	* mc-boot/GPushBackInput.c: Regenerate.
	* mc-boot/GRTExceptions.c: Regenerate.
	* mc-boot/GRTint.c: Regenerate.
	* mc-boot/GStdIO.c: Regenerate.
	* mc-boot/GStringConvert.c: Regenerate.
	* mc-boot/GSysStorage.c: Regenerate.
	* mc-boot/Gdecl.c: Regenerate.
	* mc-boot/GmcComment.c: Regenerate.
	* mc-boot/GmcComp.c: Regenerate.
	* mc-boot/GmcDebug.c: Regenerate.
	* mc-boot/GmcMetaError.c: Regenerate.
	* mc-boot/GmcOptions.c: Regenerate.
	* mc-boot/GmcStack.c: Regenerate.
	* mc-boot/GnameKey.c: Regenerate.
	* mc-boot/GsymbolKey.c: Regenerate.
	* mc-boot/Gkeyc.c: Regenerate.
	* mc/decl.mod (putFieldRecord): Change NulName to NulKey
	and fix type comparision.
	* mc/mcOptions.mod (YEAR): Remove.
	(getYear): New procedure function.
	(displayVersion): Use result from getYear instead of YEAR.
	Emit boilerplate for GPL v3.
	(gplBody): Use result from getYear instead of YEAR.
	(glplBody): Use result from getYear instead of YEAR.

2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Quads.mod (AssignUnboundedVar): Check Type
	against NulSym and call MetaErrorT1 if necessary.
	(AssignUnboundedNonVar): Check Type against NulSym and
	call MetaErrorT1 if necessary.
	(BuildDesignatorPointer): Check Type1 against NulSym and
	call MetaErrorT1 if necessary.

2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc/mcOptions.mod (displayVersion): Change GPLv2 to GPLv3.
	(YEAR) set to 2023.

2023-01-15  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2LexBuf.mod (isSrcToken): Add block comment.
	Remove dead code.
	* gm2-compiler/M2Quads.def (BuildNot): Add notTokPos parameter.
	* gm2-compiler/M2Quads.mod (BuildNot): Add notTokPos parameter.
	Create and push virtual token.
	(PopBooltok): New procedure.
	(PushBooltok): New procedure.
	(PushBool): Re-implement using PushBooltok.
	(PopBool): Re-implement using PopBooltok.
	* gm2-compiler/P3Build.bnf (ConstFactor): Record token
	position of NOT.
	(Factor): Record token position	of NOT.
	* gm2-compiler/PHBuild.bnf (ConstFactor): Record token
	position of NOT.
	(Relation): Push token position.
	(UnaryOrConstTerm): Push token position.
	(AddOperator): Push token position.
	(MulOperator): Push token position.

2023-01-13  Iain Sandoe  <iain@sandoe.co.uk>

	* gm2-gcc/m2options.h (M2Options_SetVerbose): Export the
	function.
	* gm2-lang.cc: Handle OPT_v, passing it to the compiler.
	* lang-specs.h: Pass -v to cc1gm2.

2023-01-13  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc-boot-ch/GRTco.c (RTco_select): Add return 0.
	* pge-boot/GRTco.c (RTco_select): Add return 0.

2023-01-10  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add
	m2/gm2-libs/gm2-libs-host.h dependency.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add
	m2/gm2-libs/gm2-libs-host.h dependency.

2023-01-10  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (GM2_1): Change -B path to m2/stage1.
	($(objdir)/m2/images/gnu.eps): Check and create dest dir
	if necessary.
	(gm2-libs.texi-check): Check and create dir m2/gm2-libs-pim,
	m2/gm2-libs-iso and m2/gm2-libs if necessary.
	($(objdir)/m2/gm2-compiler-boot): Remove.
	($(objdir)/m2/gm2-libs-boot): Remove.
	($(objdir)/m2/gm2-libs-libiberty): Remove.
	($(objdir)/m2/gm2-libiberty): Remove.
	($(objdir)/m2/gm2-gcc): Remove.
	($(objdir)/m2/gm2-compiler): Remove.
	($(objdir)/m2/gm2-libs): Remove.
	($(objdir)/m2/gm2-libs-iso): Remove.
	($(objdir)/m2/gm2-libs-min): Remove.
	($(objdir)/m2/gm2-compiler-paranoid): Remove.
	($(objdir)/m2/gm2-libs-paranoid): Remove.
	($(objdir)/m2/gm2-compiler-verify): Remove.
	($(objdir)/m2/boot-bin): Remove.
	($(objdir)/m2/gm2-libs-pim): Remove.
	($(objdir)/m2/gm2-libs-coroutines): Remove.
	(stage1/m2): Remove.
	(stage2/m2): Remove.
	(stage3/m2): Remove.
	(m2.stageprofile): New rule.
	(m2.stagefeedback): New rule.
	(cc1gm2$(exeext)): Change dependent name.
	(m2/stage2/cc1gm2$(exeext)): Change dependent name.
	Check and create dest dir.
	(m2/stage1/cc1gm2$(exeext)): Check and create dest dir
	if necessary.
	(m2/gm2-gcc/%.o): Ditto.
	(m2/gm2-gcc/rtegraph.o): Ditto.
	(m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
	(m2/mc-boot): Ditto.
	(m2/mc-boot-ch): Ditto.
	(m2/gm2-libs-boot): Ditto.
	(m2/gm2-compiler-boot): Ditto.
	(m2/gm2-compiler): Ditto.
	(m2/gm2-libiberty): Ditto.
	(m2/gm2-compiler): Ditto.
	(m2/gm2-libs-iso): Ditto.
	(m2/gm2-libs): Ditto.
	(m2/gm2-libs-min): Ditto.
	(m2/gm2-libs-coroutines): Ditto.
	(m2/boot-bin): Ditto.
	(m2/pge-boot): Ditto.
	(m2/pge-boot): Ditto.
	* Make-maintainer.in (m2/gm2-ppg-boot): Check and create
	dest dir if necessary.
	(m2): Ditto.
	(m2/gm2-ppg-boot): Ditto.
	(m2/gm2-pg-boot): Ditto.
	(m2/gm2-auto): Ditto.
	(m2/gm2-pg-boot): Ditto.
	(m2/gm2-pge-boot): Ditto.
	($(objdir)/plugin): Ditto.
	($(objdir)/m2/mc-boot-ch): Ditto.
	($(objdir)/m2/mc-boot-gen): Ditto.
	(m2/boot-bin): Ditto.
	(m2/mc): Ditto.
	(m2/mc-obj): Ditto.
	($(objdir)/m2/gm2-ppg-boot): Ditto.
	($(objdir)/m2/gm2-pg-boot): Ditto.
	($(objdir)/m2/gm2-pge-boot): Ditto.
	(m2/mc-boot-gen): Ditto.
	(m2/m2obj3): Ditto.
	(m2/gm2-libs-paranoid): Ditto.
	(m2/gm2-compiler-paranoid): Ditto.
	(m2/gm2-libs-paranoid): Ditto.
	(m2/gm2-compiler-paranoid): Ditto.
	(m2/gm2-libs-paranoid): Ditto.
	(m2/gm2-compiler-paranoid): Ditto.
	* config-lang.in (m2/gm2-compiler-boot): Remove mkdir.
	(m2/gm2-libs-boot): Ditto.
	(m2/gm2-ici-boot): Ditto.
	(m2/gm2-libiberty): Ditto.
	(m2/gm2-gcc): Ditto.
	(m2/gm2-compiler): Ditto.
	(m2/gm2-libs): Ditto.
	(m2/gm2-libs-iso): Ditto.
	(m2/gm2-compiler-paranoid): Ditto.
	(m2/gm2-libs-paranoid): Ditto.
	(m2/gm2-compiler-verify): Ditto.
	(m2/boot-bin): Ditto.
	(m2/gm2-libs-pim): Ditto.
	(m2/gm2-libs-coroutines): Ditto.
	(m2/gm2-libs-min): Ditto.
	(m2/pge-boot): Ditto.
	(plugin): Ditto.
	(stage1/m2): Ditto.
	(stage2/m2): Ditto.
	(stage3/m2): Ditto.
	(stage4/m2): Ditto.
	(m2/gm2-auto): Ditto.
	(m2/gm2-pg-boot): Ditto.
	(m2/gm2-pge-boot): Ditto.
	(m2/gm2-ppg-boot): Ditto.
	(m2/mc-boot): Ditto.
	(m2/mc-boot-ch): Ditto.
	(m2/mc-boot-gen): Ditto.

2023-01-09  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/pge-boot/%.o): Add m2/gm2config.h.
	* gm2-libs/config-host: Regenerate.

2023-01-07  Iain Sandoe  <iain@sandoe.co.uk>

	* gm2-libs-min/libc.c (abort): Update declaration to match the
	expected form, add no-return attribute.
	(exit): Add no-return attribute.

2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/107631
	* gm2-gcc/m2builtins.cc: Remove scalb, scalbf, scalbl,
	significand, significandf, significandl.
	* gm2-libs/Builtins.def (significand): Likewise.
	* gm2-libs/Builtins.mod: Likewise.
	* target-independent/Builtins.texi: Likewise.
	* gm2-libs-iso/LowLong.mod: Implement fraction with scalbn*() and
	ilogb*().
	* gm2-libs-iso/LowReal.mod: Likewise.
	* gm2-libs-iso/LowShort.mod: Likewise.

2023-01-05  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs-min/M2RTS.def (ConstructModules): New procedure
	declaration.
	(DeconstructModules): New procedure declaration.
	* gm2-libs-min/M2RTS.mod (ConstructModules): New procedure
	dummy implementation.
	(DeconstructModules): New procedure dummy implementation.

2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>

	* gm2spec.cc (lang_specific_driver): Handle static-libgm2.
	* lang.opt: Add static-libgm2.

2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>

	* gm2spec.cc (lang_specific_driver): Pass -static-libstdc++ on to
	the target driver if the linker does not support Bstatic/dynamic.

2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108183
	* gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Rework to use
	an extern "C" function with 'constructor' attribute.
	* gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Likewise.
	* gm2-libs-ch/ldtoa.cc (_M2_ldtoa_ctor): Likewise.

2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108259
	* gm2-gcc/m2decl.cc (m2decl_DeclareModuleCtor): Make module
	registration constructors visible.

2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>

	* Make-lang.in (dvi, ps, pdf): Build in the gcc/doc directory, also
	use the configured tools for texi -> dvi and texi -> pdf.

2023-01-01  Iain Sandoe  <iain@sandoe.co.uk>
	    Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108183
	* gm2-compiler/M2GCCDeclare.mod: Module registration constructors are
	externs to the builder of m2_link.

2022-12-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/107612
	* Make-lang.in (soext): Use .dylib for Darwin.
	(PLUGINLDFLAGS): Use dynmic lookup, set the plugin name, and append
	-nodefaultlibs to suppress the linking of libstdc++.
	Use INCINTL in compile lines for the plugin.

2022-12-21  Jakub Jelinek  <jakub@redhat.com>

	PR modula2/108153
	* gm2-gcc/m2linemap.def (location_t): Use CARDINAL instead of INTEGER.

2022-12-19  Jakub Jelinek  <jakub@redhat.com>

	* gm2-gcc/m2linemap.cc (m2linemap_ErrorAt, m2linemap_ErrorAtf,
	m2linemap_WarningAtf, m2linemap_NoteAtf, m2linemap_internal_error):
	Call functions with "%s", message rather than just message, so that
	% chars in message aren't treated as format specifiers.

2022-12-19  Jakub Jelinek  <jakub@redhat.com>

	PR modula2/108147
	* gm2-gcc/m2linemap.def (ErrorAtf, WarningAtf, NoteAtf):
	Comment out prototypes with varargs.
	* gm2-gcc/m2linemap.h (m2linemap_ErrorAtf, m2linemap_WarningAtf,
	m2linemap_NoteAtf): No longer varargs.
	* gm2-gcc/m2linemap.cc (m2linemap_ErrorAtf): Turned into a
	non-varargs wrapper around ...
	(m2linemap_ErrorAtf_1): ... this.  New static function.
	(m2linemap_WarningAtf): Turned into a non-varargs wrapper around ...
	(m2linemap_WarningAtf_1): ... this.  New static function.
	(m2linemap_NoteAtf): Turned into a non-varargs wrapper around ...
	(m2linemap_NoteAtf_1): ... this.  New static function.

2022-12-15  Gaius Mulley  <gaiusmod2@gmail.com>

	* configure.ac: Stop probing for realpath.
	* tools-src/calcpath: Break dependency on realpath, cut
	and echo.
	* configure: Rebuilt.

2022-12-15  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2config.h.in: Rebuilt.

2022-12-14  Gaius Mulley  <gaiusmod2@gmail.com>

	* COPYING.FDL: New file.
	* COPYING.RUNTIME: New file.
	* COPYING3: New file.
	* COPYING3.LIB: New file.
	* Make-lang.in: New file.
	* Make-maintainer.in: New file.
	* NEWS: New file.
	* README: New file.
	* config-lang.in: New file.
	* config-make.in: New file.
	* configure.ac: New file.
	* gm2-compiler/CLexBuf.def: New file.
	* gm2-compiler/CLexBuf.mod: New file.
	* gm2-compiler/FifoQueue.def: New file.
	* gm2-compiler/FifoQueue.mod: New file.
	* gm2-compiler/Lists.def: New file.
	* gm2-compiler/Lists.mod: New file.
	* gm2-compiler/M2ALU.def: New file.
	* gm2-compiler/M2ALU.mod: New file.
	* gm2-compiler/M2AsmUtil.def: New file.
	* gm2-compiler/M2AsmUtil.mod: New file.
	* gm2-compiler/M2Base.def: New file.
	* gm2-compiler/M2Base.mod: New file.
	* gm2-compiler/M2BasicBlock.def: New file.
	* gm2-compiler/M2BasicBlock.mod: New file.
	* gm2-compiler/M2Batch.def: New file.
	* gm2-compiler/M2Batch.mod: New file.
	* gm2-compiler/M2Bitset.def: New file.
	* gm2-compiler/M2Bitset.mod: New file.
	* gm2-compiler/M2CaseList.def: New file.
	* gm2-compiler/M2CaseList.mod: New file.
	* gm2-compiler/M2Check.def: New file.
	* gm2-compiler/M2Check.mod: New file.
	* gm2-compiler/M2Code.def: New file.
	* gm2-compiler/M2Code.mod: New file.
	* gm2-compiler/M2ColorString.def: New file.
	* gm2-compiler/M2ColorString.mod: New file.
	* gm2-compiler/M2Comp.def: New file.
	* gm2-compiler/M2Comp.mod: New file.
	* gm2-compiler/M2Const.def: New file.
	* gm2-compiler/M2Const.mod: New file.
	* gm2-compiler/M2Debug.def: New file.
	* gm2-compiler/M2Debug.mod: New file.
	* gm2-compiler/M2DebugStack.def: New file.
	* gm2-compiler/M2DebugStack.mod: New file.
	* gm2-compiler/M2Defaults.def: New file.
	* gm2-compiler/M2Defaults.mod: New file.
	* gm2-compiler/M2DriverOptions.def: New file.
	* gm2-compiler/M2DriverOptions.mod: New file.
	* gm2-compiler/M2Emit.def: New file.
	* gm2-compiler/M2Emit.mod: New file.
	* gm2-compiler/M2Error.def: New file.
	* gm2-compiler/M2Error.mod: New file.
	* gm2-compiler/M2EvalSym.def: New file.
	* gm2-compiler/M2FileName.def: New file.
	* gm2-compiler/M2FileName.mod: New file.
	* gm2-compiler/M2GCCDeclare.def: New file.
	* gm2-compiler/M2GCCDeclare.mod: New file.
	* gm2-compiler/M2GenGCC.def: New file.
	* gm2-compiler/M2GenGCC.mod: New file.
	* gm2-compiler/M2Graph.def: New file.
	* gm2-compiler/M2Graph.mod: New file.
	* gm2-compiler/M2Lex.def: New file.
	* gm2-compiler/M2Lex.mod: New file.
	* gm2-compiler/M2LexBuf.def: New file.
	* gm2-compiler/M2LexBuf.mod: New file.
	* gm2-compiler/M2MetaError.def: New file.
	* gm2-compiler/M2MetaError.mod: New file.
	* gm2-compiler/M2Optimize.def: New file.
	* gm2-compiler/M2Optimize.mod: New file.
	* gm2-compiler/M2Options.def: New file.
	* gm2-compiler/M2Options.mod: New file.
	* gm2-compiler/M2Pass.def: New file.
	* gm2-compiler/M2Pass.mod: New file.
	* gm2-compiler/M2Preprocess.def: New file.
	* gm2-compiler/M2Preprocess.mod: New file.
	* gm2-compiler/M2Printf.def: New file.
	* gm2-compiler/M2Printf.mod: New file.
	* gm2-compiler/M2Quads.def: New file.
	* gm2-compiler/M2Quads.mod: New file.
	* gm2-compiler/M2Quiet.def: New file.
	* gm2-compiler/M2Quiet.mod: New file.
	* gm2-compiler/M2Range.def: New file.
	* gm2-compiler/M2Range.mod: New file.
	* gm2-compiler/M2Reserved.def: New file.
	* gm2-compiler/M2Reserved.mod: New file.
	* gm2-compiler/M2SSA.def: New file.
	* gm2-compiler/M2SSA.mod: New file.
	* gm2-compiler/M2Scaffold.def: New file.
	* gm2-compiler/M2Scaffold.mod: New file.
	* gm2-compiler/M2Scope.def: New file.
	* gm2-compiler/M2Scope.mod: New file.
	* gm2-compiler/M2Search.def: New file.
	* gm2-compiler/M2Search.mod: New file.
	* gm2-compiler/M2Size.def: New file.
	* gm2-compiler/M2Size.mod: New file.
	* gm2-compiler/M2StackAddress.def: New file.
	* gm2-compiler/M2StackAddress.mod: New file.
	* gm2-compiler/M2StackWord.def: New file.
	* gm2-compiler/M2StackWord.mod: New file.
	* gm2-compiler/M2Students.def: New file.
	* gm2-compiler/M2Students.mod: New file.
	* gm2-compiler/M2Swig.def: New file.
	* gm2-compiler/M2Swig.mod: New file.
	* gm2-compiler/M2System.def: New file.
	* gm2-compiler/M2System.mod: New file.
	* gm2-compiler/M2Version.def: New file.
	* gm2-compiler/NameKey.def: New file.
	* gm2-compiler/NameKey.mod: New file.
	* gm2-compiler/ObjectFiles.def: New file.
	* gm2-compiler/ObjectFiles.mod: New file.
	* gm2-compiler/Output.def: New file.
	* gm2-compiler/Output.mod: New file.
	* gm2-compiler/P0SymBuild.def: New file.
	* gm2-compiler/P0SymBuild.mod: New file.
	* gm2-compiler/P0SyntaxCheck.bnf: New file.
	* gm2-compiler/P0SyntaxCheck.def: New file.
	* gm2-compiler/P1Build.bnf: New file.
	* gm2-compiler/P1Build.def: New file.
	* gm2-compiler/P1SymBuild.def: New file.
	* gm2-compiler/P1SymBuild.mod: New file.
	* gm2-compiler/P2Build.bnf: New file.
	* gm2-compiler/P2Build.def: New file.
	* gm2-compiler/P2SymBuild.def: New file.
	* gm2-compiler/P2SymBuild.mod: New file.
	* gm2-compiler/P3Build.bnf: New file.
	* gm2-compiler/P3Build.def: New file.
	* gm2-compiler/P3SymBuild.def: New file.
	* gm2-compiler/P3SymBuild.mod: New file.
	* gm2-compiler/PCBuild.bnf: New file.
	* gm2-compiler/PCBuild.def: New file.
	* gm2-compiler/PCSymBuild.def: New file.
	* gm2-compiler/PCSymBuild.mod: New file.
	* gm2-compiler/PHBuild.bnf: New file.
	* gm2-compiler/PHBuild.def: New file.
	* gm2-compiler/README: New file.
	* gm2-compiler/Sets.def: New file.
	* gm2-compiler/Sets.mod: New file.
	* gm2-compiler/SymbolConversion.def: New file.
	* gm2-compiler/SymbolConversion.mod: New file.
	* gm2-compiler/SymbolKey.def: New file.
	* gm2-compiler/SymbolKey.mod: New file.
	* gm2-compiler/SymbolTable.def: New file.
	* gm2-compiler/SymbolTable.mod: New file.
	* gm2-compiler/bnflex.def: New file.
	* gm2-compiler/bnflex.mod: New file.
	* gm2-compiler/cflex.def: New file.
	* gm2-compiler/gm2.mod: New file.
	* gm2-compiler/gm2lcc.mod: New file.
	* gm2-compiler/gm2lgen.mod: New file.
	* gm2-compiler/gm2lorder.mod: New file.
	* gm2-compiler/m2flex.def: New file.
	* gm2-compiler/ppg.mod: New file.
	* gm2-gcc/README: New file.
	* gm2-gcc/dynamicstrings.h: New file.
	* gm2-gcc/gcc-consolidation.h: New file.
	* gm2-gcc/init.cc: New file.
	* gm2-gcc/init.def: New file.
	* gm2-gcc/init.h: New file.
	* gm2-gcc/m2assert.cc: New file.
	* gm2-gcc/m2assert.h: New file.
	* gm2-gcc/m2block.cc: New file.
	* gm2-gcc/m2block.def: New file.
	* gm2-gcc/m2block.h: New file.
	* gm2-gcc/m2builtins.cc: New file.
	* gm2-gcc/m2builtins.def: New file.
	* gm2-gcc/m2builtins.h: New file.
	* gm2-gcc/m2color.cc: New file.
	* gm2-gcc/m2color.def: New file.
	* gm2-gcc/m2color.h: New file.
	* gm2-gcc/m2configure.cc: New file.
	* gm2-gcc/m2configure.def: New file.
	* gm2-gcc/m2configure.h: New file.
	* gm2-gcc/m2convert.cc: New file.
	* gm2-gcc/m2convert.def: New file.
	* gm2-gcc/m2convert.h: New file.
	* gm2-gcc/m2decl.cc: New file.
	* gm2-gcc/m2decl.def: New file.
	* gm2-gcc/m2decl.h: New file.
	* gm2-gcc/m2except.cc: New file.
	* gm2-gcc/m2except.def: New file.
	* gm2-gcc/m2except.h: New file.
	* gm2-gcc/m2expr.cc: New file.
	* gm2-gcc/m2expr.def: New file.
	* gm2-gcc/m2expr.h: New file.
	* gm2-gcc/m2linemap.cc: New file.
	* gm2-gcc/m2linemap.def: New file.
	* gm2-gcc/m2linemap.h: New file.
	* gm2-gcc/m2misc.cc: New file.
	* gm2-gcc/m2misc.def: New file.
	* gm2-gcc/m2misc.h: New file.
	* gm2-gcc/m2options.h: New file.
	* gm2-gcc/m2range.h: New file.
	* gm2-gcc/m2search.h: New file.
	* gm2-gcc/m2statement.cc: New file.
	* gm2-gcc/m2statement.def: New file.
	* gm2-gcc/m2statement.h: New file.
	* gm2-gcc/m2top.cc: New file.
	* gm2-gcc/m2top.def: New file.
	* gm2-gcc/m2top.h: New file.
	* gm2-gcc/m2tree.cc: New file.
	* gm2-gcc/m2tree.def: New file.
	* gm2-gcc/m2tree.h: New file.
	* gm2-gcc/m2treelib.cc: New file.
	* gm2-gcc/m2treelib.def: New file.
	* gm2-gcc/m2treelib.h: New file.
	* gm2-gcc/m2type.cc: New file.
	* gm2-gcc/m2type.def: New file.
	* gm2-gcc/m2type.h: New file.
	* gm2-gcc/rtegraph.cc: New file.
	* gm2-gcc/rtegraph.h: New file.
	* gm2-ici/M2Emit.mod: New file.
	* gm2-ici/README: New file.
	* gm2-ici/m2linemap.c: New file.
	* gm2-internals.texi: New file.
	* gm2-lang.cc: New file.
	* gm2-lang.h: New file.
	* gm2-libiberty/README: New file.
	* gm2-libiberty/choosetemp.def: New file.
	* gm2-libiberty/pexecute.def: New file.
	* gm2-libs-ch/M2LINK.c: New file.
	* gm2-libs-ch/README: New file.
	* gm2-libs-ch/RTcodummy.c: New file.
	* gm2-libs-ch/RTintdummy.c: New file.
	* gm2-libs-ch/Selective.c: New file.
	* gm2-libs-ch/SysExceptions.c: New file.
	* gm2-libs-ch/UnixArgs.cc: New file.
	* gm2-libs-ch/cgetopt.c: New file.
	* gm2-libs-ch/choosetemp.c: New file.
	* gm2-libs-ch/dtoa.cc: New file.
	* gm2-libs-ch/errno.c: New file.
	* gm2-libs-ch/host.c: New file.
	* gm2-libs-ch/ldtoa.cc: New file.
	* gm2-libs-ch/m2rts.h: New file.
	* gm2-libs-ch/termios.c: New file.
	* gm2-libs-ch/tools.c: New file.
	* gm2-libs-ch/wrapc.c: New file.
	* gm2-libs-ch/xlibc.c: New file.
	* gm2-libs-coroutines/Debug.def: New file.
	* gm2-libs-coroutines/Debug.mod: New file.
	* gm2-libs-coroutines/Executive.def: New file.
	* gm2-libs-coroutines/Executive.mod: New file.
	* gm2-libs-coroutines/KeyBoardLEDs.def: New file.
	* gm2-libs-coroutines/README.texi: New file.
	* gm2-libs-coroutines/SYSTEM.def: New file.
	* gm2-libs-coroutines/SYSTEM.mod: New file.
	* gm2-libs-coroutines/TimerHandler.def: New file.
	* gm2-libs-coroutines/TimerHandler.mod: New file.
	* gm2-libs-iso/COROUTINES.def: New file.
	* gm2-libs-iso/COROUTINES.mod: New file.
	* gm2-libs-iso/ChanConsts.def: New file.
	* gm2-libs-iso/ChanConsts.h: New file.
	* gm2-libs-iso/ChanConsts.mod: New file.
	* gm2-libs-iso/CharClass.def: New file.
	* gm2-libs-iso/CharClass.mod: New file.
	* gm2-libs-iso/ClientSocket.def: New file.
	* gm2-libs-iso/ClientSocket.mod: New file.
	* gm2-libs-iso/ComplexMath.def: New file.
	* gm2-libs-iso/ComplexMath.mod: New file.
	* gm2-libs-iso/ConvStringLong.def: New file.
	* gm2-libs-iso/ConvStringLong.mod: New file.
	* gm2-libs-iso/ConvStringReal.def: New file.
	* gm2-libs-iso/ConvStringReal.mod: New file.
	* gm2-libs-iso/ConvTypes.def: New file.
	* gm2-libs-iso/ConvTypes.mod: New file.
	* gm2-libs-iso/EXCEPTIONS.def: New file.
	* gm2-libs-iso/EXCEPTIONS.mod: New file.
	* gm2-libs-iso/ErrnoCategory.def: New file.
	* gm2-libs-iso/GeneralUserExceptions.def: New file.
	* gm2-libs-iso/GeneralUserExceptions.mod: New file.
	* gm2-libs-iso/IOChan.def: New file.
	* gm2-libs-iso/IOChan.mod: New file.
	* gm2-libs-iso/IOConsts.def: New file.
	* gm2-libs-iso/IOConsts.mod: New file.
	* gm2-libs-iso/IOLink.def: New file.
	* gm2-libs-iso/IOLink.mod: New file.
	* gm2-libs-iso/IOResult.def: New file.
	* gm2-libs-iso/IOResult.mod: New file.
	* gm2-libs-iso/LongComplexMath.def: New file.
	* gm2-libs-iso/LongComplexMath.mod: New file.
	* gm2-libs-iso/LongConv.def: New file.
	* gm2-libs-iso/LongConv.mod: New file.
	* gm2-libs-iso/LongIO.def: New file.
	* gm2-libs-iso/LongIO.mod: New file.
	* gm2-libs-iso/LongMath.def: New file.
	* gm2-libs-iso/LongMath.mod: New file.
	* gm2-libs-iso/LongStr.def: New file.
	* gm2-libs-iso/LongStr.mod: New file.
	* gm2-libs-iso/LongWholeIO.def: New file.
	* gm2-libs-iso/LongWholeIO.mod: New file.
	* gm2-libs-iso/LowLong.def: New file.
	* gm2-libs-iso/LowLong.mod: New file.
	* gm2-libs-iso/LowReal.def: New file.
	* gm2-libs-iso/LowReal.mod: New file.
	* gm2-libs-iso/LowShort.def: New file.
	* gm2-libs-iso/LowShort.mod: New file.
	* gm2-libs-iso/M2EXCEPTION.def: New file.
	* gm2-libs-iso/M2EXCEPTION.mod: New file.
	* gm2-libs-iso/M2RTS.def: New file.
	* gm2-libs-iso/M2RTS.mod: New file.
	* gm2-libs-iso/MemStream.def: New file.
	* gm2-libs-iso/MemStream.mod: New file.
	* gm2-libs-iso/Preemptive.def: New file.
	* gm2-libs-iso/Preemptive.mod: New file.
	* gm2-libs-iso/Processes.def: New file.
	* gm2-libs-iso/Processes.mod: New file.
	* gm2-libs-iso/ProgramArgs.def: New file.
	* gm2-libs-iso/ProgramArgs.mod: New file.
	* gm2-libs-iso/README.texi: New file.
	* gm2-libs-iso/RTco.def: New file.
	* gm2-libs-iso/RTdata.def: New file.
	* gm2-libs-iso/RTdata.mod: New file.
	* gm2-libs-iso/RTentity.def: New file.
	* gm2-libs-iso/RTentity.mod: New file.
	* gm2-libs-iso/RTfio.def: New file.
	* gm2-libs-iso/RTfio.mod: New file.
	* gm2-libs-iso/RTgen.def: New file.
	* gm2-libs-iso/RTgen.mod: New file.
	* gm2-libs-iso/RTgenif.def: New file.
	* gm2-libs-iso/RTgenif.mod: New file.
	* gm2-libs-iso/RTio.def: New file.
	* gm2-libs-iso/RTio.mod: New file.
	* gm2-libs-iso/RandomNumber.def: New file.
	* gm2-libs-iso/RandomNumber.mod: New file.
	* gm2-libs-iso/RawIO.def: New file.
	* gm2-libs-iso/RawIO.mod: New file.
	* gm2-libs-iso/RealConv.def: New file.
	* gm2-libs-iso/RealConv.mod: New file.
	* gm2-libs-iso/RealIO.def: New file.
	* gm2-libs-iso/RealIO.mod: New file.
	* gm2-libs-iso/RealMath.def: New file.
	* gm2-libs-iso/RealMath.mod: New file.
	* gm2-libs-iso/RealStr.def: New file.
	* gm2-libs-iso/RealStr.mod: New file.
	* gm2-libs-iso/RndFile.def: New file.
	* gm2-libs-iso/RndFile.mod: New file.
	* gm2-libs-iso/SIOResult.def: New file.
	* gm2-libs-iso/SIOResult.mod: New file.
	* gm2-libs-iso/SLongIO.def: New file.
	* gm2-libs-iso/SLongIO.mod: New file.
	* gm2-libs-iso/SLongWholeIO.def: New file.
	* gm2-libs-iso/SLongWholeIO.mod: New file.
	* gm2-libs-iso/SRawIO.def: New file.
	* gm2-libs-iso/SRawIO.mod: New file.
	* gm2-libs-iso/SRealIO.def: New file.
	* gm2-libs-iso/SRealIO.mod: New file.
	* gm2-libs-iso/SShortIO.def: New file.
	* gm2-libs-iso/SShortIO.mod: New file.
	* gm2-libs-iso/SShortWholeIO.def: New file.
	* gm2-libs-iso/SShortWholeIO.mod: New file.
	* gm2-libs-iso/STextIO.def: New file.
	* gm2-libs-iso/STextIO.mod: New file.
	* gm2-libs-iso/SWholeIO.def: New file.
	* gm2-libs-iso/SWholeIO.mod: New file.
	* gm2-libs-iso/SYSTEM.def: New file.
	* gm2-libs-iso/SYSTEM.mod: New file.
	* gm2-libs-iso/Semaphores.def: New file.
	* gm2-libs-iso/Semaphores.mod: New file.
	* gm2-libs-iso/SeqFile.def: New file.
	* gm2-libs-iso/SeqFile.mod: New file.
	* gm2-libs-iso/ShortComplexMath.def: New file.
	* gm2-libs-iso/ShortComplexMath.mod: New file.
	* gm2-libs-iso/ShortIO.def: New file.
	* gm2-libs-iso/ShortIO.mod: New file.
	* gm2-libs-iso/ShortWholeIO.def: New file.
	* gm2-libs-iso/ShortWholeIO.mod: New file.
	* gm2-libs-iso/SimpleCipher.def: New file.
	* gm2-libs-iso/SimpleCipher.mod: New file.
	* gm2-libs-iso/StdChans.def: New file.
	* gm2-libs-iso/StdChans.mod: New file.
	* gm2-libs-iso/Storage.def: New file.
	* gm2-libs-iso/Storage.mod: New file.
	* gm2-libs-iso/StreamFile.def: New file.
	* gm2-libs-iso/StreamFile.mod: New file.
	* gm2-libs-iso/StringChan.def: New file.
	* gm2-libs-iso/StringChan.mod: New file.
	* gm2-libs-iso/Strings.def: New file.
	* gm2-libs-iso/Strings.mod: New file.
	* gm2-libs-iso/SysClock.def: New file.
	* gm2-libs-iso/SysClock.mod: New file.
	* gm2-libs-iso/TERMINATION.def: New file.
	* gm2-libs-iso/TERMINATION.mod: New file.
	* gm2-libs-iso/TermFile.def: New file.
	* gm2-libs-iso/TermFile.mod: New file.
	* gm2-libs-iso/TextIO.def: New file.
	* gm2-libs-iso/TextIO.mod: New file.
	* gm2-libs-iso/WholeConv.def: New file.
	* gm2-libs-iso/WholeConv.mod: New file.
	* gm2-libs-iso/WholeIO.def: New file.
	* gm2-libs-iso/WholeIO.mod: New file.
	* gm2-libs-iso/WholeStr.def: New file.
	* gm2-libs-iso/WholeStr.mod: New file.
	* gm2-libs-iso/wrapsock.c: New file.
	* gm2-libs-iso/wrapsock.def: New file.
	* gm2-libs-iso/wraptime.c: New file.
	* gm2-libs-iso/wraptime.def: New file.
	* gm2-libs-min/M2RTS.def: New file.
	* gm2-libs-min/M2RTS.mod: New file.
	* gm2-libs-min/SYSTEM.def: New file.
	* gm2-libs-min/SYSTEM.mod: New file.
	* gm2-libs-min/libc.c: New file.
	* gm2-libs-min/libc.def: New file.
	* gm2-libs-pim/BitBlockOps.def: New file.
	* gm2-libs-pim/BitBlockOps.mod: New file.
	* gm2-libs-pim/BitByteOps.def: New file.
	* gm2-libs-pim/BitByteOps.mod: New file.
	* gm2-libs-pim/BitWordOps.def: New file.
	* gm2-libs-pim/BitWordOps.mod: New file.
	* gm2-libs-pim/BlockOps.def: New file.
	* gm2-libs-pim/BlockOps.mod: New file.
	* gm2-libs-pim/Break.c: New file.
	* gm2-libs-pim/Break.def: New file.
	* gm2-libs-pim/CardinalIO.def: New file.
	* gm2-libs-pim/CardinalIO.mod: New file.
	* gm2-libs-pim/Conversions.def: New file.
	* gm2-libs-pim/Conversions.mod: New file.
	* gm2-libs-pim/DebugPMD.def: New file.
	* gm2-libs-pim/DebugPMD.mod: New file.
	* gm2-libs-pim/DebugTrace.def: New file.
	* gm2-libs-pim/DebugTrace.mod: New file.
	* gm2-libs-pim/Delay.def: New file.
	* gm2-libs-pim/Delay.mod: New file.
	* gm2-libs-pim/Display.def: New file.
	* gm2-libs-pim/Display.mod: New file.
	* gm2-libs-pim/ErrorCode.def: New file.
	* gm2-libs-pim/ErrorCode.mod: New file.
	* gm2-libs-pim/FileSystem.def: New file.
	* gm2-libs-pim/FileSystem.mod: New file.
	* gm2-libs-pim/FloatingUtilities.def: New file.
	* gm2-libs-pim/FloatingUtilities.mod: New file.
	* gm2-libs-pim/InOut.def: New file.
	* gm2-libs-pim/InOut.mod: New file.
	* gm2-libs-pim/Keyboard.def: New file.
	* gm2-libs-pim/Keyboard.mod: New file.
	* gm2-libs-pim/LongIO.def: New file.
	* gm2-libs-pim/LongIO.mod: New file.
	* gm2-libs-pim/NumberConversion.def: New file.
	* gm2-libs-pim/NumberConversion.mod: New file.
	* gm2-libs-pim/README.texi: New file.
	* gm2-libs-pim/Random.def: New file.
	* gm2-libs-pim/Random.mod: New file.
	* gm2-libs-pim/RealConversions.def: New file.
	* gm2-libs-pim/RealConversions.mod: New file.
	* gm2-libs-pim/RealInOut.def: New file.
	* gm2-libs-pim/RealInOut.mod: New file.
	* gm2-libs-pim/Strings.def: New file.
	* gm2-libs-pim/Strings.mod: New file.
	* gm2-libs-pim/Termbase.def: New file.
	* gm2-libs-pim/Termbase.mod: New file.
	* gm2-libs-pim/Terminal.def: New file.
	* gm2-libs-pim/Terminal.mod: New file.
	* gm2-libs-pim/TimeDate.def: New file.
	* gm2-libs-pim/TimeDate.mod: New file.
	* gm2-libs/ASCII.def: New file.
	* gm2-libs/ASCII.mod: New file.
	* gm2-libs/Args.def: New file.
	* gm2-libs/Args.mod: New file.
	* gm2-libs/Assertion.def: New file.
	* gm2-libs/Assertion.mod: New file.
	* gm2-libs/Break.def: New file.
	* gm2-libs/Break.mod: New file.
	* gm2-libs/Builtins.def: New file.
	* gm2-libs/Builtins.mod: New file.
	* gm2-libs/COROUTINES.def: New file.
	* gm2-libs/COROUTINES.mod: New file.
	* gm2-libs/CmdArgs.def: New file.
	* gm2-libs/CmdArgs.mod: New file.
	* gm2-libs/Debug.def: New file.
	* gm2-libs/Debug.mod: New file.
	* gm2-libs/DynamicStrings.def: New file.
	* gm2-libs/DynamicStrings.mod: New file.
	* gm2-libs/Environment.def: New file.
	* gm2-libs/Environment.mod: New file.
	* gm2-libs/FIO.def: New file.
	* gm2-libs/FIO.mod: New file.
	* gm2-libs/FormatStrings.def: New file.
	* gm2-libs/FormatStrings.mod: New file.
	* gm2-libs/FpuIO.def: New file.
	* gm2-libs/FpuIO.mod: New file.
	* gm2-libs/GetOpt.def: New file.
	* gm2-libs/GetOpt.mod: New file.
	* gm2-libs/IO.def: New file.
	* gm2-libs/IO.mod: New file.
	* gm2-libs/Indexing.def: New file.
	* gm2-libs/Indexing.mod: New file.
	* gm2-libs/LMathLib0.def: New file.
	* gm2-libs/LMathLib0.mod: New file.
	* gm2-libs/LegacyReal.def: New file.
	* gm2-libs/LegacyReal.mod: New file.
	* gm2-libs/M2Dependent.def: New file.
	* gm2-libs/M2Dependent.mod: New file.
	* gm2-libs/M2EXCEPTION.def: New file.
	* gm2-libs/M2EXCEPTION.mod: New file.
	* gm2-libs/M2LINK.def: New file.
	* gm2-libs/M2RTS.def: New file.
	* gm2-libs/M2RTS.mod: New file.
	* gm2-libs/MathLib0.def: New file.
	* gm2-libs/MathLib0.mod: New file.
	* gm2-libs/MemUtils.def: New file.
	* gm2-libs/MemUtils.mod: New file.
	* gm2-libs/NumberIO.def: New file.
	* gm2-libs/NumberIO.mod: New file.
	* gm2-libs/OptLib.def: New file.
	* gm2-libs/OptLib.mod: New file.
	* gm2-libs/PushBackInput.def: New file.
	* gm2-libs/PushBackInput.mod: New file.
	* gm2-libs/README.texi: New file.
	* gm2-libs/RTExceptions.def: New file.
	* gm2-libs/RTExceptions.mod: New file.
	* gm2-libs/RTint.def: New file.
	* gm2-libs/RTint.mod: New file.
	* gm2-libs/SArgs.def: New file.
	* gm2-libs/SArgs.mod: New file.
	* gm2-libs/SCmdArgs.def: New file.
	* gm2-libs/SCmdArgs.mod: New file.
	* gm2-libs/SEnvironment.def: New file.
	* gm2-libs/SEnvironment.mod: New file.
	* gm2-libs/SFIO.def: New file.
	* gm2-libs/SFIO.mod: New file.
	* gm2-libs/SMathLib0.def: New file.
	* gm2-libs/SMathLib0.mod: New file.
	* gm2-libs/SYSTEM.def: New file.
	* gm2-libs/SYSTEM.mod: New file.
	* gm2-libs/Scan.def: New file.
	* gm2-libs/Scan.mod: New file.
	* gm2-libs/Selective.def: New file.
	* gm2-libs/StdIO.def: New file.
	* gm2-libs/StdIO.mod: New file.
	* gm2-libs/Storage.def: New file.
	* gm2-libs/Storage.mod: New file.
	* gm2-libs/StrCase.def: New file.
	* gm2-libs/StrCase.mod: New file.
	* gm2-libs/StrIO.def: New file.
	* gm2-libs/StrIO.mod: New file.
	* gm2-libs/StrLib.def: New file.
	* gm2-libs/StrLib.mod: New file.
	* gm2-libs/StringConvert.def: New file.
	* gm2-libs/StringConvert.mod: New file.
	* gm2-libs/SysExceptions.def: New file.
	* gm2-libs/SysStorage.def: New file.
	* gm2-libs/SysStorage.mod: New file.
	* gm2-libs/TimeString.def: New file.
	* gm2-libs/TimeString.mod: New file.
	* gm2-libs/UnixArgs.def: New file.
	* gm2-libs/cbuiltin.def: New file.
	* gm2-libs/cgetopt.def: New file.
	* gm2-libs/config-host: New file.
	* gm2-libs/config-host.in: New file.
	* gm2-libs/cxxabi.def: New file.
	* gm2-libs/dtoa.def: New file.
	* gm2-libs/errno.def: New file.
	* gm2-libs/gdbif.def: New file.
	* gm2-libs/gdbif.mod: New file.
	* gm2-libs/gm2-libs-host.h.in: New file.
	* gm2-libs/ldtoa.def: New file.
	* gm2-libs/libc.def: New file.
	* gm2-libs/libm.def: New file.
	* gm2-libs/sckt.def: New file.
	* gm2-libs/termios.def: New file.
	* gm2-libs/wrapc.def: New file.
	* gm2config.h.in: New file.
	* gm2spec.cc: New file.
	* gm2version.h: New file.
	* init/README: New file.
	* init/mcinit: New file.
	* init/ppginit: New file.
	* lang-specs.h: New file.
	* lang.opt: New file.
	* m2-tree.def: New file.
	* m2-tree.h: New file.
	* m2.flex: New file.
	* m2pp.cc: New file.
	* m2pp.h: New file.
	* mc-boot-ch/GBuiltins.c: New file.
	* mc-boot-ch/GM2LINK.c: New file.
	* mc-boot-ch/GRTco.c: New file.
	* mc-boot-ch/GSYSTEM.c: New file.
	* mc-boot-ch/GSelective.c: New file.
	* mc-boot-ch/GSysExceptions.c: New file.
	* mc-boot-ch/GUnixArgs.cc: New file.
	* mc-boot-ch/Gabort.c: New file.
	* mc-boot-ch/Gcbuiltin.c: New file.
	* mc-boot-ch/Gdtoa.c: New file.
	* mc-boot-ch/Gerrno.c: New file.
	* mc-boot-ch/Gldtoa.c: New file.
	* mc-boot-ch/Glibc.c: New file.
	* mc-boot-ch/Glibm.c: New file.
	* mc-boot-ch/Gmcrts.c: New file.
	* mc-boot-ch/Gmcrts.h: New file.
	* mc-boot-ch/Gnetwork.h: New file.
	* mc-boot-ch/Gtermios.cc: New file.
	* mc-boot-ch/Gwrapc.c: New file.
	* mc-boot-ch/README: New file.
	* mc-boot-ch/m2rts.h: New file.
	* mc-boot-ch/network.c: New file.
	* mc-boot/GASCII.c: New file.
	* mc-boot/GASCII.h: New file.
	* mc-boot/GArgs.c: New file.
	* mc-boot/GArgs.h: New file.
	* mc-boot/GAssertion.c: New file.
	* mc-boot/GAssertion.h: New file.
	* mc-boot/GBreak.c: New file.
	* mc-boot/GBreak.h: New file.
	* mc-boot/GCOROUTINES.h: New file.
	* mc-boot/GCmdArgs.c: New file.
	* mc-boot/GCmdArgs.h: New file.
	* mc-boot/GDebug.c: New file.
	* mc-boot/GDebug.h: New file.
	* mc-boot/GDynamicStrings.c: New file.
	* mc-boot/GDynamicStrings.h: New file.
	* mc-boot/GEnvironment.c: New file.
	* mc-boot/GEnvironment.h: New file.
	* mc-boot/GFIO.c: New file.
	* mc-boot/GFIO.h: New file.
	* mc-boot/GFormatStrings.c: New file.
	* mc-boot/GFormatStrings.h: New file.
	* mc-boot/GFpuIO.c: New file.
	* mc-boot/GFpuIO.h: New file.
	* mc-boot/GIO.c: New file.
	* mc-boot/GIO.h: New file.
	* mc-boot/GIndexing.c: New file.
	* mc-boot/GIndexing.h: New file.
	* mc-boot/GM2Dependent.c: New file.
	* mc-boot/GM2Dependent.h: New file.
	* mc-boot/GM2EXCEPTION.c: New file.
	* mc-boot/GM2EXCEPTION.h: New file.
	* mc-boot/GM2LINK.h: New file.
	* mc-boot/GM2RTS.c: New file.
	* mc-boot/GM2RTS.h: New file.
	* mc-boot/GMemUtils.c: New file.
	* mc-boot/GMemUtils.h: New file.
	* mc-boot/GNumberIO.c: New file.
	* mc-boot/GNumberIO.h: New file.
	* mc-boot/GPushBackInput.c: New file.
	* mc-boot/GPushBackInput.h: New file.
	* mc-boot/GRTExceptions.c: New file.
	* mc-boot/GRTExceptions.h: New file.
	* mc-boot/GRTco.h: New file.
	* mc-boot/GRTint.c: New file.
	* mc-boot/GRTint.h: New file.
	* mc-boot/GSArgs.c: New file.
	* mc-boot/GSArgs.h: New file.
	* mc-boot/GSFIO.c: New file.
	* mc-boot/GSFIO.h: New file.
	* mc-boot/GSYSTEM.h: New file.
	* mc-boot/GSelective.h: New file.
	* mc-boot/GStdIO.c: New file.
	* mc-boot/GStdIO.h: New file.
	* mc-boot/GStorage.c: New file.
	* mc-boot/GStorage.h: New file.
	* mc-boot/GStrCase.c: New file.
	* mc-boot/GStrCase.h: New file.
	* mc-boot/GStrIO.c: New file.
	* mc-boot/GStrIO.h: New file.
	* mc-boot/GStrLib.c: New file.
	* mc-boot/GStrLib.h: New file.
	* mc-boot/GStringConvert.c: New file.
	* mc-boot/GStringConvert.h: New file.
	* mc-boot/GSysExceptions.h: New file.
	* mc-boot/GSysStorage.c: New file.
	* mc-boot/GSysStorage.h: New file.
	* mc-boot/GTimeString.c: New file.
	* mc-boot/GTimeString.h: New file.
	* mc-boot/GUnixArgs.h: New file.
	* mc-boot/Galists.c: New file.
	* mc-boot/Galists.h: New file.
	* mc-boot/Gdecl.c: New file.
	* mc-boot/Gdecl.h: New file.
	* mc-boot/Gdtoa.h: New file.
	* mc-boot/Gerrno.h: New file.
	* mc-boot/Gkeyc.c: New file.
	* mc-boot/Gkeyc.h: New file.
	* mc-boot/Gldtoa.h: New file.
	* mc-boot/Glibc.h: New file.
	* mc-boot/Glibm.h: New file.
	* mc-boot/Glists.c: New file.
	* mc-boot/Glists.h: New file.
	* mc-boot/GmcComment.c: New file.
	* mc-boot/GmcComment.h: New file.
	* mc-boot/GmcComp.c: New file.
	* mc-boot/GmcComp.h: New file.
	* mc-boot/GmcDebug.c: New file.
	* mc-boot/GmcDebug.h: New file.
	* mc-boot/GmcError.c: New file.
	* mc-boot/GmcError.h: New file.
	* mc-boot/GmcFileName.c: New file.
	* mc-boot/GmcFileName.h: New file.
	* mc-boot/GmcLexBuf.c: New file.
	* mc-boot/GmcLexBuf.h: New file.
	* mc-boot/GmcMetaError.c: New file.
	* mc-boot/GmcMetaError.h: New file.
	* mc-boot/GmcOptions.c: New file.
	* mc-boot/GmcOptions.h: New file.
	* mc-boot/GmcPreprocess.c: New file.
	* mc-boot/GmcPreprocess.h: New file.
	* mc-boot/GmcPretty.c: New file.
	* mc-boot/GmcPretty.h: New file.
	* mc-boot/GmcPrintf.c: New file.
	* mc-boot/GmcPrintf.h: New file.
	* mc-boot/GmcQuiet.c: New file.
	* mc-boot/GmcQuiet.h: New file.
	* mc-boot/GmcReserved.c: New file.
	* mc-boot/GmcReserved.h: New file.
	* mc-boot/GmcSearch.c: New file.
	* mc-boot/GmcSearch.h: New file.
	* mc-boot/GmcStack.c: New file.
	* mc-boot/GmcStack.h: New file.
	* mc-boot/GmcStream.c: New file.
	* mc-boot/GmcStream.h: New file.
	* mc-boot/Gmcflex.h: New file.
	* mc-boot/Gmcp1.c: New file.
	* mc-boot/Gmcp1.h: New file.
	* mc-boot/Gmcp2.c: New file.
	* mc-boot/Gmcp2.h: New file.
	* mc-boot/Gmcp3.c: New file.
	* mc-boot/Gmcp3.h: New file.
	* mc-boot/Gmcp4.c: New file.
	* mc-boot/Gmcp4.h: New file.
	* mc-boot/Gmcp5.c: New file.
	* mc-boot/Gmcp5.h: New file.
	* mc-boot/GnameKey.c: New file.
	* mc-boot/GnameKey.h: New file.
	* mc-boot/Gpth.h: New file.
	* mc-boot/GsymbolKey.c: New file.
	* mc-boot/GsymbolKey.h: New file.
	* mc-boot/Gtermios.h: New file.
	* mc-boot/Gtop.c: New file.
	* mc-boot/Gvarargs.c: New file.
	* mc-boot/Gvarargs.h: New file.
	* mc-boot/Gwlists.c: New file.
	* mc-boot/Gwlists.h: New file.
	* mc-boot/Gwrapc.h: New file.
	* mc-boot/README: New file.
	* mc/Indexing.def: New file.
	* mc/Indexing.mod: New file.
	* mc/README: New file.
	* mc/alists.def: New file.
	* mc/alists.mod: New file.
	* mc/decl.def: New file.
	* mc/decl.mod: New file.
	* mc/decl.mod-extra: New file.
	* mc/keyc.def: New file.
	* mc/keyc.mod: New file.
	* mc/lists.def: New file.
	* mc/lists.mod: New file.
	* mc/m2flex.def: New file.
	* mc/mc.flex: New file.
	* mc/mcComment.def: New file.
	* mc/mcComment.h: New file.
	* mc/mcComment.mod: New file.
	* mc/mcComp.def: New file.
	* mc/mcComp.mod: New file.
	* mc/mcDebug.def: New file.
	* mc/mcDebug.mod: New file.
	* mc/mcError.def: New file.
	* mc/mcError.mod: New file.
	* mc/mcFileName.def: New file.
	* mc/mcFileName.mod: New file.
	* mc/mcLexBuf.def: New file.
	* mc/mcLexBuf.h: New file.
	* mc/mcLexBuf.mod: New file.
	* mc/mcMetaError.def: New file.
	* mc/mcMetaError.mod: New file.
	* mc/mcOptions.def: New file.
	* mc/mcOptions.mod: New file.
	* mc/mcPreprocess.def: New file.
	* mc/mcPreprocess.mod: New file.
	* mc/mcPretty.def: New file.
	* mc/mcPretty.mod: New file.
	* mc/mcPrintf.def: New file.
	* mc/mcPrintf.mod: New file.
	* mc/mcQuiet.def: New file.
	* mc/mcQuiet.mod: New file.
	* mc/mcReserved.def: New file.
	* mc/mcReserved.h: New file.
	* mc/mcReserved.mod: New file.
	* mc/mcSearch.def: New file.
	* mc/mcSearch.mod: New file.
	* mc/mcStack.def: New file.
	* mc/mcStack.mod: New file.
	* mc/mcStream.def: New file.
	* mc/mcStream.mod: New file.
	* mc/mcflex.def: New file.
	* mc/mcp1.bnf: New file.
	* mc/mcp1.def: New file.
	* mc/mcp2.bnf: New file.
	* mc/mcp2.def: New file.
	* mc/mcp3.bnf: New file.
	* mc/mcp3.def: New file.
	* mc/mcp4.bnf: New file.
	* mc/mcp4.def: New file.
	* mc/mcp5.bnf: New file.
	* mc/mcp5.def: New file.
	* mc/nameKey.def: New file.
	* mc/nameKey.mod: New file.
	* mc/symbolKey.def: New file.
	* mc/symbolKey.mod: New file.
	* mc/top.mod: New file.
	* mc/varargs.def: New file.
	* mc/varargs.mod: New file.
	* mc/wlists.def: New file.
	* mc/wlists.mod: New file.
	* pge-boot/GASCII.c: New file.
	* pge-boot/GASCII.h: New file.
	* pge-boot/GArgs.c: New file.
	* pge-boot/GArgs.h: New file.
	* pge-boot/GAssertion.c: New file.
	* pge-boot/GAssertion.h: New file.
	* pge-boot/GBreak.h: New file.
	* pge-boot/GBuiltins.c: New file.
	* pge-boot/GCmdArgs.h: New file.
	* pge-boot/GDebug.c: New file.
	* pge-boot/GDebug.h: New file.
	* pge-boot/GDynamicStrings.c: New file.
	* pge-boot/GDynamicStrings.h: New file.
	* pge-boot/GEnvironment.h: New file.
	* pge-boot/GFIO.c: New file.
	* pge-boot/GFIO.h: New file.
	* pge-boot/GFormatStrings.h: New file.
	* pge-boot/GFpuIO.h: New file.
	* pge-boot/GIO.c: New file.
	* pge-boot/GIO.h: New file.
	* pge-boot/GIndexing.c: New file.
	* pge-boot/GIndexing.h: New file.
	* pge-boot/GLists.c: New file.
	* pge-boot/GLists.h: New file.
	* pge-boot/GM2Dependent.c: New file.
	* pge-boot/GM2Dependent.h: New file.
	* pge-boot/GM2EXCEPTION.c: New file.
	* pge-boot/GM2EXCEPTION.h: New file.
	* pge-boot/GM2LINK.c: New file.
	* pge-boot/GM2LINK.h: New file.
	* pge-boot/GM2RTS.c: New file.
	* pge-boot/GM2RTS.h: New file.
	* pge-boot/GNameKey.c: New file.
	* pge-boot/GNameKey.h: New file.
	* pge-boot/GNumberIO.c: New file.
	* pge-boot/GNumberIO.h: New file.
	* pge-boot/GOutput.c: New file.
	* pge-boot/GOutput.h: New file.
	* pge-boot/GPushBackInput.c: New file.
	* pge-boot/GPushBackInput.h: New file.
	* pge-boot/GRTExceptions.c: New file.
	* pge-boot/GRTExceptions.h: New file.
	* pge-boot/GRTco.c: New file.
	* pge-boot/GSArgs.h: New file.
	* pge-boot/GSEnvironment.h: New file.
	* pge-boot/GSFIO.c: New file.
	* pge-boot/GSFIO.h: New file.
	* pge-boot/GSYSTEM.c: New file.
	* pge-boot/GSYSTEM.h: New file.
	* pge-boot/GScan.h: New file.
	* pge-boot/GSelective.c: New file.
	* pge-boot/GStdIO.c: New file.
	* pge-boot/GStdIO.h: New file.
	* pge-boot/GStorage.c: New file.
	* pge-boot/GStorage.h: New file.
	* pge-boot/GStrCase.c: New file.
	* pge-boot/GStrCase.h: New file.
	* pge-boot/GStrIO.c: New file.
	* pge-boot/GStrIO.h: New file.
	* pge-boot/GStrLib.c: New file.
	* pge-boot/GStrLib.h: New file.
	* pge-boot/GStringConvert.h: New file.
	* pge-boot/GSymbolKey.c: New file.
	* pge-boot/GSymbolKey.h: New file.
	* pge-boot/GSysExceptions.c: New file.
	* pge-boot/GSysExceptions.h: New file.
	* pge-boot/GSysStorage.c: New file.
	* pge-boot/GSysStorage.h: New file.
	* pge-boot/GTimeString.h: New file.
	* pge-boot/GUnixArgs.cc: New file.
	* pge-boot/GUnixArgs.h: New file.
	* pge-boot/Gabort.c: New file.
	* pge-boot/Gbnflex.c: New file.
	* pge-boot/Gbnflex.h: New file.
	* pge-boot/Gcbuiltin.c: New file.
	* pge-boot/Gdtoa.c: New file.
	* pge-boot/Gdtoa.h: New file.
	* pge-boot/Gerrno.c: New file.
	* pge-boot/Gerrno.h: New file.
	* pge-boot/Gldtoa.c: New file.
	* pge-boot/Gldtoa.h: New file.
	* pge-boot/Glibc.c: New file.
	* pge-boot/Glibc.h: New file.
	* pge-boot/Glibm.c: New file.
	* pge-boot/Glibm.h: New file.
	* pge-boot/Gmcrts.c: New file.
	* pge-boot/Gmcrts.h: New file.
	* pge-boot/Gnetwork.h: New file.
	* pge-boot/Gpge.c: New file.
	* pge-boot/Gtermios.cc: New file.
	* pge-boot/Gtermios.h: New file.
	* pge-boot/Gwrapc.c: New file.
	* pge-boot/Gwrapc.h: New file.
	* pge-boot/README: New file.
	* pge-boot/m2rts.h: New file.
	* pge-boot/main.c: New file.
	* pge-boot/network.c: New file.
	* plugin/README: New file.
	* plugin/m2rte.cc: New file.
	* tools-src/README: New file.
	* tools-src/boilerplate.py: New file.
	* tools-src/buildpg: New file.
	* tools-src/calcpath: New file.
	* tools-src/def2doc.py: New file.
	* tools-src/makeSystem: New file.
	* tools-src/mklink.c: New file.
	* tools-src/tidydates.py: New file.
	* images/LICENSE.IMG: New file.
	* images/gnupng: New file.
	* images/gnu.eps: New file.
	* version.c: New file.
	* configure: Rebuilt.
	* target-independent/Builtins.texi: New file.
	* target-independent/SYSTEM-iso.texi: New file.
	* target-independent/SYSTEM-pim.texi: New file.
	* target-independent/gm2-libs.texi: New file.
	* target-independent/readme.txt: New file.
