configure: Set the correct lib target for arm/wince dlltool

Message ID 1300798147-45262-1-git-send-email-martin@martin.st
State Committed
Commit 15c5156d245af4c16ac4b1895495818ecdda2e41
Headers show

Commit Message

Martin Storsjö March 22, 2011, 12:49 p.m.
When linking to the .lib files created by dlltool for wince,
the linker optimization option should be set to
"References: Keep Unreferenced Data (/OPT:NOREF)", otherwise
the resulting binaries will fail during runtime. This wasn't
required when using .lib files generated by lib.exe.
---
 configure |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Mans Rullgard March 22, 2011, 12:51 p.m. | #1
Martin Storsjö <martin@martin.st> writes:

> When linking to the .lib files created by dlltool for wince,
> the linker optimization option should be set to
> "References: Keep Unreferenced Data (/OPT:NOREF)", otherwise
> the resulting binaries will fail during runtime. This wasn't
> required when using .lib files generated by lib.exe.
> ---
>  configure |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/configure b/configure
> index e38f20b..6ae5ebc 100755
> --- a/configure
> +++ b/configure
> @@ -2407,7 +2407,7 @@ case $target_os in
>              enable malloc_aligned
>              LIBTARGET="i386:x86-64"
>          elif enabled arm; then
> -            LIBTARGET=arm
> +            LIBTARGET=arm-wince
>          fi
>          shlibdir_default="$bindir_default"
>          disable ffserver

I don't see the connection between the description and the patch.
Martin Storsjö March 22, 2011, 1:06 p.m. | #2
On Tue, 22 Mar 2011, Måns Rullgård wrote:

> Martin Storsjö <martin@martin.st> writes:
> 
> > When linking to the .lib files created by dlltool for wince,
> > the linker optimization option should be set to
> > "References: Keep Unreferenced Data (/OPT:NOREF)", otherwise
> > the resulting binaries will fail during runtime. This wasn't
> > required when using .lib files generated by lib.exe.
> > ---
> >  configure |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/configure b/configure
> > index e38f20b..6ae5ebc 100755
> > --- a/configure
> > +++ b/configure
> > @@ -2407,7 +2407,7 @@ case $target_os in
> >              enable malloc_aligned
> >              LIBTARGET="i386:x86-64"
> >          elif enabled arm; then
> > -            LIBTARGET=arm
> > +            LIBTARGET=arm-wince
> >          fi
> >          shlibdir_default="$bindir_default"
> >          disable ffserver
> 
> I don't see the connection between the description and the patch.

When using dlltool instead of lib.exe for creating MSVC import libraries, 
the architecture names accepted by the tool changed, so what was "arm" 
needs to be changed into "arm-wince", just as x64 was changed to 
i386:x86-64 a few commits earlier.

The rest of the commit description is a note to anyone using these import 
libraries, saying what the user of the import libraries has to change in 
his MSVC environment in order to use them, since they aren't a total 
drop-in replacement for what. That comment is general to the the whole 
lib.exe -> dlltool switch though (it initially seemed to be needed only on 
arm, but I hadn't tested the desktop windows variant fully, it is needed 
there, too).

Since it appears to be a general issue though not limited to wince, I'll 
move it to the docs. New patches coming up.

// Martin
Luca Barbato March 23, 2011, 12:23 a.m. | #3
On 03/22/2011 02:06 PM, Martin Storsjö wrote:
> On Tue, 22 Mar 2011, Måns Rullgård wrote:
> 
>> Martin Storsjö <martin@martin.st> writes:
>>
>>> When linking to the .lib files created by dlltool for wince,
>>> the linker optimization option should be set to
>>> "References: Keep Unreferenced Data (/OPT:NOREF)", otherwise
>>> the resulting binaries will fail during runtime. This wasn't
>>> required when using .lib files generated by lib.exe.
>>> ---
>>>  configure |    2 +-
>>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/configure b/configure
>>> index e38f20b..6ae5ebc 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -2407,7 +2407,7 @@ case $target_os in
>>>              enable malloc_aligned
>>>              LIBTARGET="i386:x86-64"
>>>          elif enabled arm; then
>>> -            LIBTARGET=arm
>>> +            LIBTARGET=arm-wince
>>>          fi
>>>          shlibdir_default="$bindir_default"
>>>          disable ffserver
>>
>> I don't see the connection between the description and the patch.
> 
> When using dlltool instead of lib.exe for creating MSVC import libraries, 
> the architecture names accepted by the tool changed, so what was "arm" 
> needs to be changed into "arm-wince", just as x64 was changed to 
> i386:x86-64 a few commits earlier.
> 
> The rest of the commit description is a note to anyone using these import 
> libraries, saying what the user of the import libraries has to change in 
> his MSVC environment in order to use them, since they aren't a total 
> drop-in replacement for what. That comment is general to the the whole 
> lib.exe -> dlltool switch though (it initially seemed to be needed only on 
> arm, but I hadn't tested the desktop windows variant fully, it is needed 
> there, too).
> 
> Since it appears to be a general issue though not limited to wince, I'll 
> move it to the docs. New patches coming up.

Both queued, will be pushed within the day.

lu

Patch

diff --git a/configure b/configure
index e38f20b..6ae5ebc 100755
--- a/configure
+++ b/configure
@@ -2407,7 +2407,7 @@  case $target_os in
             enable malloc_aligned
             LIBTARGET="i386:x86-64"
         elif enabled arm; then
-            LIBTARGET=arm
+            LIBTARGET=arm-wince
         fi
         shlibdir_default="$bindir_default"
         disable ffserver