Cygport and auto-manifestize compatibility manifest
Corinna Vinschen
corinna-cygwin@cygwin.com
Thu Nov 21 11:48:00 GMT 2013
On Nov 21 11:58, Peter Rosin wrote:
> On 2013-11-20 17:06, Corinna Vinschen wrote:
> > 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:
> >>>> 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.
>
> One snag with having setup do it, is that package maintainers running
> 'make check' will not test what is actually deployed (unless jumping
> through hoops).
>
> The behavior of the exes did change with the manifest after all, which
> was the whole point with all this manifest crap, right?
Absolutely.
But tweaking the existing executables is just some desperate short-term
method. What we really need is a linker which adds a default manifest
if the project does not provide its own.
I talked to collegues, and we're going to work on a patch to ld at some
point not too far in the distance. For the time being, we created a
workaround for ld using just a an additional cygwin-default-manifest.o
file in /usr/$(target)/lib, and a linker script tweak:
@@ -143,7 +143,8 @@ SECTIONS
}
.rsrc BLOCK(__section_alignment__) :
{
- *(.rsrc)
+ *(EXCLUDE_FILE (cygwin-default-manifest.o) .rsrc)
+ KEEP (cygwin-default-manifest.o(.rsrc))
*(SORT(.rsrc$*))
}
.reloc BLOCK(__section_alignment__) :
Chris, any problem to release a new binutils with this local patch,
for now?
Thanks,
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/20131121/c63d8404/attachment.sig>
More information about the Cygwin-apps
mailing list