peflags warning and tsaware flags

Corinna Vinschen
Thu Apr 26 19:58:00 GMT 2012

On Apr 26 15:16, Achim Gratz wrote:
> What is peflags trying to tell me with this warning, which is only present when
> the "-v" switch is in effect?
> > ash -c "PATH=/bin peflags -t -d -v  /usr/lib/zsh/4.3.12/zsh/zutil.dll"
> Warning: file is non-executable but has tsaware set
> (/usr/lib/zsh/4.3.12/zsh/zutil.dll).
> /usr/lib/zsh/4.3.12/zsh/zutil.dll:
> coff(0x230e[+executable_image,+line_nums_stripped,
> +local_syms_stripped,+32bit_machine,+sepdbg,+dll])
> pe(0x8000[-dynamicbase,+tsaware])
> > ash -c "PATH=/bin peflags -t -d  /usr/lib/zsh/4.3.12/zsh/zutil.dll"
> /usr/lib/zsh/4.3.12/zsh/zutil.dll: coff(0x230e) pe(0x8000[-dynamicbase,+tsaware])
> The file(s) in question are most certainly executable, POSIX file permissions
> and cacls are no different than hundreds of other DLL.  Also, I seem to have a
> wild mixture of "+tsaware" and "-tsaware".  Can I just set all of them to
> "+tsaware" or is that a Bad Idea(TM)?  (I do want to install Cygwin onto a
> Terminal Server.)

The warning might be a bit misleading.  What it really tries to tell you
is that the file in question is not an executable (*.exe).  The tsaware
flag has no meaning for DLLs, it's only evaluated in headers of

The reason that many DLLs in the distro have the tsaware flag set is
because gcc doesn't differ between creating executables or DLLs, it will
add the flag unconditionally.

So, nobody keeps you from adding the tsaware flag to all DLLs, but it
will neither help nor hurt.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list