Cygport and auto-manifestize compatibility manifest
Corinna Vinschen
corinna-cygwin@cygwin.com
Wed Nov 20 16:06:00 GMT 2013
On Nov 20 10:43, Christopher Faylor wrote:
> On Wed, Nov 20, 2013 at 04:01:01PM +0100, Corinna Vinschen wrote:
> >On Nov 20 09:47, Charles Wilson wrote:
> >> On 11/20/2013 8:28 AM, Corinna Vinschen wrote:
> >> >Apart from the fact that it would be nice if our linker would do this
> >> >automatically and transparently,
> >>
> >> Or libtool, if you use it to link your exe? PTC...since
> >> $new-libtool is pretty high on my to-do list.
> >>
> >> It'd be better if there was an option to ld/gcc, of course -- but
> >> the details would be rather complicated. You wouldn't want to
> >> invoke a separate executable like windres b/c then your build
> >> recipe/makefile would have to change. Best if $LD_FLAGS could be
> >> used... maybe something hideously ugly like -w32-manifest-compat
> >> <file> [1] where <file> is not a full XML manifest, but rather
> >> contains a list of GUIDs [2], and ld/gcc autogenerates the manifest
> >> with just that stuff.
> >>
> >> That way, if you manually create a manifest (for other purposes),
> >> you could just /not/ use the new flag.
> >
> >The other way around. If your project does not link in a resource
> >anyway, which means that your project is WIn32 aware, then ld should
> >add the manifest resource by default. Everything else means that
> >you have to tweak all project configury, which is only barely descibed
> >by a can of worms...
> >
> >A simple windres call in cygport would be nice, but unfortunately windres
> >does not yet have this capability to add a resource to an existing exe.
> >
> >> I know, SHTDI...
> >
> >Yes, that's pretty much the problem. Even my ugly workaround is bad,
> >because it only works on Windows. No more cross-building on Linux :-P
>
> Some more ugly hacks: Could cygwin itself create the manifests when it
> runs a program iff they don't exist? Or, alternately, setup.exe? Or
> rebase?
Cygwin itself, never I guess. See my other mail I just sent.
As I said, *extremly* sensitive. Rinse and repeat.
Setup could do it, but the problem is the existence of sections with
long section names, especially debug sections and the .gnu_debuglink
section. It's quite the mess and rather complicated to perform since
you need to be sure to filter out the problematic sections, or better,
to perform the action *after* strip, and *before* adding the
.gnu_debuginfo section.
rebase is the wrong tool for this. It handles DLLs, not executables.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20131120/41ba428c/attachment.sig>
More information about the Cygwin-apps
mailing list