diff --git a/src/ce_main.pas b/src/ce_main.pas index 765efa26..f31e4151 100644 --- a/src/ce_main.pas +++ b/src/ce_main.pas @@ -2847,6 +2847,7 @@ var fname: string; dmdproc: TCEProcess; lst: TStringList = nil; + srt: TStringList; firstLineFlags: string = ''; asObj: boolean = false; hasMain: THasMain; @@ -2953,8 +2954,14 @@ begin LibMan.getLibsForSource(fDoc.Lines, dmdproc.Parameters, dmdproc.Parameters) else begin - LibMan.getLibFiles(nil, dmdproc.Parameters); - LibMan.getLibSourcePath(nil, dmdproc.Parameters); + srt := TStringList.Create; + srt.Sorted:=true; + //NOTE: when not sorted linking can fail. This is a recent regression (~2.078) + //when detectLibraries is true, sorting is automatic *.a, -Ipath, *.a, -Ipath etc + srt.Duplicates := TDuplicates.dupIgnore; + LibMan.getLibFiles(nil, srt); + LibMan.getLibSourcePath(nil, srt); + dmdproc.Parameters.AddStrings(srt); end; deleteDups(dmdproc.Parameters); dmdproc.Execute;