doxygen hangs when many call graphs are generated.

Takashi Yano takashi.yano@nifty.ne.jp
Wed Jul 16 12:13:59 GMT 2025


On Tue, 17 Jun 2025 21:46:47 +0900
Takashi Yano wrote:
> I encountered a problem of doxygen when many call graphs are generated.
> 
> How to reproduce:
> 1) Make a empty directory.
> 2) Place two files (Doxyfile, x.c) attached in the directory.
> 3) Run doxygen in the directory.
> 
> It seems that this is a bug of cygwin1.dll and the cause is
> a deadlock in newlib/libc/stdio/findfp.c:__fp_lock_all().
> 
> The following patch solves the issue, however, I am not sure
> this is the right thing at all.
> 
> diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c
> index 2cc549537..3de6b33fd 100644
> --- a/newlib/libc/stdio/findfp.c
> +++ b/newlib/libc/stdio/findfp.c
> @@ -298,7 +298,9 @@ __fp_unlock (struct _reent * ptr __unused, FILE * fp)
>  void
>  __fp_lock_all (void)
>  {
> +#ifndef __CYGWIN__
>    __sfp_lock_acquire ();
> +#endif
>    (void) _fwalk_sglue (NULL, __fp_lock, &__sglue);
>  }
>  
> @@ -306,6 +308,8 @@ void
>  __fp_unlock_all (void)
>  {
>    (void) _fwalk_sglue (NULL, __fp_unlock, &__sglue);
> +#ifndef __CYGWIN__
>    __sfp_lock_release ();
> +#endif
>  }
>  #endif
> 
> Any suggenstions?

The same hang happened while building aom package with doxygen.
Above patch also solves the issue.

Any idea?

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>


More information about the Cygwin mailing list