2
0
Эх сурвалжийг харах

Merged revisions 7518,7556,7572 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r7518 | yury | 2007-05-29 20:04:53 +0300 (Вт, 29 май 2007) | 1 line

* Added FlushOutput after "Linking..." message by internal linker. Now this message is visible in Lazarus during linking.
........
r7556 | yury | 2007-06-03 01:14:35 +0300 (Вс, 03 июн 2007) | 1 line

* fixed linking with eVC++ object files (bug #8542).
........
r7572 | yury | 2007-06-04 02:01:49 +0300 (Пн, 04 июн 2007) | 1 line

* fixed declaration of TWIN32FINDDATA.
........

git-svn-id: branches/fixes_2_2@7575 -

yury 18 жил өмнө
parent
commit
b12c2096d0

+ 1 - 0
compiler/link.pas

@@ -954,6 +954,7 @@ Implementation
         result:=false;
 
         Message1(exec_i_linking,outputname);
+        FlushOutput;
 
 {$warning TODO Load custom linker script}
         DefaultLinkScript;

+ 8 - 2
compiler/ogcoff.pas

@@ -125,6 +125,9 @@ interface
        TCoffObjData = class(TObjData)
        private
          win32      : boolean;
+{$ifdef arm}
+         eVCobj     : boolean;
+{$endif arm}
        public
          constructor createcoff(const n:string;awin32:boolean;acObjSection:TObjSectionClass);
          destructor  destroy;override;
@@ -817,7 +820,7 @@ const pemagic : array[0..3] of byte = (
                   if (relocsec.objdata=objdata) then
                     dec(address,TCoffObjSection(relocsec).orgmempos);
 {$ifdef arm}
-                  if (relocsec.objdata=objdata) then
+                  if (relocsec.objdata=objdata) and not TCoffObjData(objdata).eVCobj then
                     inc(address, relocsec.MemPos)
                   else
 {$endif arm}
@@ -880,7 +883,7 @@ const pemagic : array[0..3] of byte = (
                         dec(address,TCoffObjSection(relocsec).orgmempos);
                     end;
 {$ifdef arm}
-                  if (relocsec.objdata=objdata) then
+                  if (relocsec.objdata=objdata) and not TCoffObjData(objdata).eVCobj then
                     inc(address, relocsec.MemPos)
                   else
 {$endif arm}
@@ -1763,6 +1766,9 @@ const pemagic : array[0..3] of byte = (
                InputError('Illegal COFF Magic');
                exit;
              end;
+{$ifdef arm}
+           eVCobj:=header.flag=$100;
+{$endif arm}
            { Strings }
            AReader.Seek(header.sympos+header.syms*sizeof(CoffSymbol));
            if not AReader.Read(strsize,4) then

+ 9 - 20
rtl/wince/wininc/struct.inc

@@ -7127,7 +7127,7 @@
      TVSFIXEDFILEINFO = VS_FIXEDFILEINFO;
      PVSFIXEDFILEINFO = ^VS_FIXEDFILEINFO;
 
-     WIN32_FIND_DATA = record
+     WIN32_FIND_DATAW = record
           dwFileAttributes : DWORD;
           ftCreationTime : FILETIME;
           ftLastAccessTime : FILETIME;
@@ -7135,33 +7135,22 @@
           nFileSizeHigh : DWORD;
           nFileSizeLow : DWORD;
           dwOID: DWORD;
-          cFileName : array[0..MAX_PATH] of TCHAR;
+          cFileName : array[0..MAX_PATH] of WCHAR;
        end;
-     LPWIN32_FIND_DATA = ^WIN32_FIND_DATA;
-     PWIN32_FIND_DATA = ^WIN32_FIND_DATA;
-     _WIN32_FIND_DATA = WIN32_FIND_DATA;
-     TWIN32FINDDATA = WIN32_FIND_DATA;
-     TWIN32FINDDATAA = WIN32_FIND_DATA;
-     PWIN32FINDDATA = ^WIN32_FIND_DATA;
 
-     WIN32_FIND_DATAW = record
-          dwFileAttributes : DWORD;
-          ftCreationTime : FILETIME;
-          ftLastAccessTime : FILETIME;
-          ftLastWriteTime : FILETIME;
-          nFileSizeHigh : DWORD;
-          nFileSizeLow : DWORD;
-          dwReserved0 : DWORD;
-          dwReserved1 : DWORD;
-          cFileName : array[0..(MAX_PATH)-1] of WCHAR;
-          cAlternateFileName : array[0..13] of WCHAR;
-       end;
      LPWIN32_FIND_DATAW = ^WIN32_FIND_DATAW;
      PWIN32_FIND_DATAW = ^WIN32_FIND_DATAW;
      _WIN32_FIND_DATAW = WIN32_FIND_DATAW;
      TWIN32FINDDATAW = WIN32_FIND_DATAW;
      PWIN32FINDDATAW = ^WIN32_FIND_DATAW;
 
+     WIN32_FIND_DATA = WIN32_FIND_DATAW;
+     LPWIN32_FIND_DATA = ^WIN32_FIND_DATAW;
+     PWIN32_FIND_DATA = ^WIN32_FIND_DATAW;
+     _WIN32_FIND_DATA = WIN32_FIND_DATAW;
+     TWIN32FINDDATA = WIN32_FIND_DATAW;
+     PWIN32FINDDATA = ^WIN32_FIND_DATAW;
+
      WIN32_STREAM_ID = record
           dwStreamId : DWORD;
           dwStreamAttributes : DWORD;