On 2021-08-23 14:31, Bart via fpc-devel wrote:
On Mon, Aug 23, 2021 at 1:36 PM Werner Pamler via fpc-devel
<fpc-devel@lists.freepascal.org> wrote:

> Does anybody have a common.dll in \windows\system32 at all?

I don't have it, neither in system32 nor in SysWOW64.

OK.

Just pulled the current revision of fpc-trunk, and did not observe this
error (Win 10, fpc3.2.2 32-bit bootstrap compiler)

I expected as much, since nobody else complained about this error.
AFAIK the syswow64 directory is not in my %PATH%.

The problem is that MS Windows employs a special trickery by which the path to c:\windows\system32 (almost surely in your PATH) translates to c:\windows\SysWOW64 _for_32-bit_binaries_ (only!). So in reality, that directory _is_ in your PATH.


Unfortunately the "OPT=-vut" does not work (no output whatsoever) when
this package is built, so no way to determine where it searches (and
does not find: the errormessage is wrong w.r.t. that) and fails for
32-bit, not where it finds and succeeds for 64-bit and arm-wince.

It doesn't need to find it for 64-bit or arm-wince. As far as I know, it works like this: If the referenced DLL is found, the compiler builds the import library by scanning the found DLL, thus creating a complete and validated file guaranteed to work (on your machine). If the DLL is found, but it is not correct (either because it is somehow invalid, or because it doesn't contain the symbols / functions etc.), the compiler tells you about this issue, because it means that an attempt to run the compiled binary would fail with possibly obscure errors (compared to an error message stating that a required DLL is missing). If the referenced DLL is not found during compilation, the compiler tries to build the import library "blindly", just based on assumptions formulated in the source code.

Tomas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to