public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* mingw cross tests missing DLLs - CROSS_BINDIR not in PATH
@ 2024-03-03 16:48 Brian Inglis
  2024-03-03 21:39 ` Jon Turney
  0 siblings, 1 reply; 6+ messages in thread
From: Brian Inglis @ 2024-03-03 16:48 UTC (permalink / raw)
  To: Cygwin Apps

Hi folks,

I am finding mingw package cross tests fail with missing DLLs - CROSS_BINDIR is 
not in the PATH.

I now have to define src_test to run cygtest adding CROSS_BINDIR in the PATH.

Is this likely to be upstream (e.g. gnulib) changes or cygport changes?

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mingw cross tests missing DLLs - CROSS_BINDIR not in PATH
  2024-03-03 16:48 mingw cross tests missing DLLs - CROSS_BINDIR not in PATH Brian Inglis
@ 2024-03-03 21:39 ` Jon Turney
  2024-03-03 22:29   ` Brian Inglis
  0 siblings, 1 reply; 6+ messages in thread
From: Jon Turney @ 2024-03-03 21:39 UTC (permalink / raw)
  To: Brian Inglis; +Cc: cygwin-apps

On 03/03/2024 16:48, Brian Inglis via Cygwin-apps wrote:
> Hi folks,
> 
> I am finding mingw package cross tests fail with missing DLLs - 
> CROSS_BINDIR is not in the PATH.
> 
> I now have to define src_test to run cygtest adding CROSS_BINDIR in the 
> PATH.
> 
> Is this likely to be upstream (e.g. gnulib) changes or cygport changes?

This is a shortcoming of cygport, in that you cannot just write "do the 
standard src_(compile|install|test), but do this extra thing first (like 
modifying PATH as you need in this case).

(One approach to this I've though about would be to have a hook function 
(or set of functions) which are called before each phase of operation, 
to allow this)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mingw cross tests missing DLLs - CROSS_BINDIR not in PATH
  2024-03-03 21:39 ` Jon Turney
@ 2024-03-03 22:29   ` Brian Inglis
  2024-03-04 20:00     ` Jon Turney
  0 siblings, 1 reply; 6+ messages in thread
From: Brian Inglis @ 2024-03-03 22:29 UTC (permalink / raw)
  To: cygwin-apps

On 2024-03-03 14:39, Jon Turney via Cygwin-apps wrote:
> On 03/03/2024 16:48, Brian Inglis via Cygwin-apps wrote:
>> I am finding mingw package cross tests fail with missing DLLs - CROSS_BINDIR 
>> is not in the PATH.
>>
>> I now have to define src_test to run cygtest adding CROSS_BINDIR in the PATH.
>>
>> Is this likely to be upstream (e.g. gnulib) changes or cygport changes?

> This is a shortcoming of cygport, in that you cannot just write "do the standard 
> src_(compile|install|test), but do this extra thing first (like modifying PATH 
> as you need in this case).
> 
> (One approach to this I've though about would be to have a hook function (or set 
> of functions) which are called before each phase of operation, to allow this)

These test failures have been only in the latest upstream releases.
Previously no PATH fiddling was required.
For mingw64-x86_64-nghttp2 that was 2024-01-21.

Why I asked if anyone noticed any cross build changes as for example in 
autotools, gnulib, or cygport?

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mingw cross tests missing DLLs - CROSS_BINDIR not in PATH
  2024-03-03 22:29   ` Brian Inglis
@ 2024-03-04 20:00     ` Jon Turney
  2024-03-04 21:20       ` Brian Inglis
  0 siblings, 1 reply; 6+ messages in thread
From: Jon Turney @ 2024-03-04 20:00 UTC (permalink / raw)
  To: Brian Inglis; +Cc: cygwin-apps

On 03/03/2024 22:29, Brian Inglis via Cygwin-apps wrote:
> On 2024-03-03 14:39, Jon Turney via Cygwin-apps wrote:
>> On 03/03/2024 16:48, Brian Inglis via Cygwin-apps wrote:
>>> I am finding mingw package cross tests fail with missing DLLs - 
>>> CROSS_BINDIR is not in the PATH.
>>>
>>> I now have to define src_test to run cygtest adding CROSS_BINDIR in 
>>> the PATH.
>>>
>>> Is this likely to be upstream (e.g. gnulib) changes or cygport changes?
> 
>> This is a shortcoming of cygport, in that you cannot just write "do 
>> the standard src_(compile|install|test), but do this extra thing first 
>> (like modifying PATH as you need in this case).
>>
>> (One approach to this I've though about would be to have a hook 
>> function (or set of functions) which are called before each phase of 
>> operation, to allow this)
> 
> These test failures have been only in the latest upstream releases.
> Previously no PATH fiddling was required.
> For mingw64-x86_64-nghttp2 that was 2024-01-21.
> 
> Why I asked if anyone noticed any cross build changes as for example in 
> autotools, gnulib, or cygport?

I assumed that you were talking about "PATH needs to be set so that 
dependencies of the built DLL can be loaded"

But, now I look, mingw64-x86_64-nghttp2 doesn't have any dependencies.

So, I'm not so sure. Maybe you just mean that the test harness can't 
locate the just built DLL? That could well be an upstream change.

Maybe you could show the actual error?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mingw cross tests missing DLLs - CROSS_BINDIR not in PATH
  2024-03-04 20:00     ` Jon Turney
@ 2024-03-04 21:20       ` Brian Inglis
  2024-03-05 15:32         ` Jon Turney
  0 siblings, 1 reply; 6+ messages in thread
From: Brian Inglis @ 2024-03-04 21:20 UTC (permalink / raw)
  To: cygwin-apps

On 2024-03-04 13:00, Jon Turney wrote:
> On 03/03/2024 22:29, Brian Inglis via Cygwin-apps wrote:
>> On 2024-03-03 14:39, Jon Turney via Cygwin-apps wrote:
>>> On 03/03/2024 16:48, Brian Inglis via Cygwin-apps wrote:
>>>> I am finding mingw package cross tests fail with missing DLLs - CROSS_BINDIR 
>>>> is not in the PATH.
>>>>
>>>> I now have to define src_test to run cygtest adding CROSS_BINDIR in the PATH.
>>>>
>>>> Is this likely to be upstream (e.g. gnulib) changes or cygport changes?
>>
>>> This is a shortcoming of cygport, in that you cannot just write "do the 
>>> standard src_(compile|install|test), but do this extra thing first (like 
>>> modifying PATH as you need in this case).
>>>
>>> (One approach to this I've though about would be to have a hook function (or 
>>> set of functions) which are called before each phase of operation, to allow 
>>> this)
>>
>> These test failures have been only in the latest upstream releases.
>> Previously no PATH fiddling was required.
>> For mingw64-x86_64-nghttp2 that was 2024-01-21.
>>
>> Why I asked if anyone noticed any cross build changes as for example in 
>> autotools, gnulib, or cygport?
> 
> I assumed that you were talking about "PATH needs to be set so that dependencies 
> of the built DLL can be loaded"
> 
> But, now I look, mingw64-x86_64-nghttp2 doesn't have any dependencies.
> 
> So, I'm not so sure. Maybe you just mean that the test harness can't locate the 
> just built DLL? That could well be an upstream change.
> 
> Maybe you could show the actual error?

Sorry I was not clearer.
In previous release build checks there were no issues.
In the latest release the test programs have a dependency on winpthreads and 
failed with popup dialogues:

main.exe - System Error ...
ALSO
failmalloc.exe - System Error
X
The code execution cannot proceed because
libwinpthread-1.dll was not found.
Reinstalling the program may fix this problem.

$ cygcheck -f /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll
mingw64-x86_64-winpthreads-11.0.1-1

Similar result as:

$ cygcheck mingw64-x86_64-nghttp2-1.60.0-1.noarch/build/tests/{main,failmalloc}
cygcheck: track_down: could not find libwinpthread-1.dll

C:/.../usr/src/nghttp2/mingw64-x86_64-nghttp2/mingw64-x86_64-nghttp2-1.60.0-1.noarch/build/tests/main.exe
   C:/WINDOWS/system32/KERNEL32.dll
     C:/WINDOWS/system32/ntdll.dll
     C:/WINDOWS/system32/KERNELBASE.dll
   C:/WINDOWS/system32/msvcrt.dll

cygcheck: track_down: could not find libwinpthread-1.dll

C:/.../usr/src/nghttp2/mingw64-x86_64-nghttp2/mingw64-x86_64-nghttp2-1.60.0-1.noarch/build/tests/failmalloc.exe
   C:/WINDOWS/system32/KERNEL32.dll
     C:/WINDOWS/system32/ntdll.dll
     C:/WINDOWS/system32/KERNELBASE.dll
   C:/WINDOWS/system32/msvcrt.dll
$ PATH="/usr/x86_64-w64-mingw32/sys-root/mingw/bin/:$PATH"	\
cygcheck mingw64-x86_64-nghttp2-1.60.0-1.noarch/build/tests/{main,failmalloc}
C:/.../usr/src/nghttp2/mingw64-x86_64-nghttp2/mingw64-x86_64-nghttp2-1.60.0-1.noarch/build/tests/main.exe
   C:/WINDOWS/system32/KERNEL32.dll
     C:/WINDOWS/system32/ntdll.dll
     C:/WINDOWS/system32/KERNELBASE.dll
   C:/WINDOWS/system32/msvcrt.dll
   C:/.../usr/x86_64-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll

C:/.../usr/src/nghttp2/mingw64-x86_64-nghttp2/mingw64-x86_64-nghttp2-1.60.0-1.noarch/build/tests/failmalloc.exe
   C:/WINDOWS/system32/KERNEL32.dll
     C:/WINDOWS/system32/ntdll.dll
     C:/WINDOWS/system32/KERNELBASE.dll
   C:/WINDOWS/system32/msvcrt.dll
   C:/.../usr/x86_64-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: mingw cross tests missing DLLs - CROSS_BINDIR not in PATH
  2024-03-04 21:20       ` Brian Inglis
@ 2024-03-05 15:32         ` Jon Turney
  0 siblings, 0 replies; 6+ messages in thread
From: Jon Turney @ 2024-03-05 15:32 UTC (permalink / raw)
  To: Brian Inglis; +Cc: cygwin-apps

On 04/03/2024 21:20, Brian Inglis via Cygwin-apps wrote:
> On 2024-03-04 13:00, Jon Turney wrote:
>> On 03/03/2024 22:29, Brian Inglis via Cygwin-apps wrote:
>>> On 2024-03-03 14:39, Jon Turney via Cygwin-apps wrote:
>>>> On 03/03/2024 16:48, Brian Inglis via Cygwin-apps wrote:
>>>>> I am finding mingw package cross tests fail with missing DLLs - 
>>>>> CROSS_BINDIR is not in the PATH.
>>>>>
>>>>> I now have to define src_test to run cygtest adding CROSS_BINDIR in 
>>>>> the PATH.
>>>>>
>>>>> Is this likely to be upstream (e.g. gnulib) changes or cygport 
>>>>> changes?
>>>
>>>> This is a shortcoming of cygport, in that you cannot just write "do 
>>>> the standard src_(compile|install|test), but do this extra thing 
>>>> first (like modifying PATH as you need in this case).
>>>>
>>>> (One approach to this I've though about would be to have a hook 
>>>> function (or set of functions) which are called before each phase of 
>>>> operation, to allow this)
>>>
>>> These test failures have been only in the latest upstream releases.
>>> Previously no PATH fiddling was required.
>>> For mingw64-x86_64-nghttp2 that was 2024-01-21.
>>>
>>> Why I asked if anyone noticed any cross build changes as for example 
>>> in autotools, gnulib, or cygport?
>>
>> I assumed that you were talking about "PATH needs to be set so that 
>> dependencies of the built DLL can be loaded"
>>
>> But, now I look, mingw64-x86_64-nghttp2 doesn't have any dependencies.
>>
>> So, I'm not so sure. Maybe you just mean that the test harness can't 
>> locate the just built DLL? That could well be an upstream change.
>>
>> Maybe you could show the actual error?
> 
> Sorry I was not clearer.
> In previous release build checks there were no issues.

Have you tried rebuilding and running the tests for the previous release 
version of nghttp2? This might at least offer some clue as to if the 
change is in upstream, or in the toolchain or build environment?

> In the latest release the test programs have a dependency on winpthreads 
> and failed with popup dialogues:

I see.

Well, to reiterate, if the test genuinely depends on that DLL, this 
behavior is to be expected, because cygport (currently) lacks a feature 
to add CROSS_BINDIR to the PATH before running tests.


To me, the obvious theories to explore are that:

* the previous version of nghttp2 did not link it's tests with that DLL 
(e.g. an upstream change has been made to parallelize the tests, or add 
testing coverage for multithreaded use)

* the previous version of nghttp2 arranged to link it's tests statically 
with the required library, and no longer does so

* the MinGW cross winpthreads packages have stopped providing the static 
library (from a brief check, this does not seem to be the case)


Hope that's of some help.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-03-05 15:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-03 16:48 mingw cross tests missing DLLs - CROSS_BINDIR not in PATH Brian Inglis
2024-03-03 21:39 ` Jon Turney
2024-03-03 22:29   ` Brian Inglis
2024-03-04 20:00     ` Jon Turney
2024-03-04 21:20       ` Brian Inglis
2024-03-05 15:32         ` Jon Turney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).