Hello,

I filed a bug for this issue, to prevent cmake from stripping .dll.a files:
http://public.kitware.com/Bug/view.php?id=14123

Regards,
Gregoire

From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of 
Gregoire Aujay
Sent: jeudi 25 avril 2013 14:14
To: cmake@cmake.org
Subject: Re: [CMake] MINGW and strip .dll.a files

Hello,

I am just forwarding our discussion to the mailing list. We did not use reply 
to all.

Highligth:
So, I see no point in striping the .dll.a file. But, of course, I might be 
wrong. Please, anybody can check this?


Regards,
Gregoire

From: Daniel Franzini [mailto:daniel.franz...@gmail.com]
Sent: jeudi 25 avril 2013 13:30
To: Gregoire Aujay
Subject: Re: [CMake] MINGW and strip .dll.a files

The strip program just removes unused symbols from any object code.

This is Win32/Mingw specific stuff (MSVC have the same stuff but they use their 
own object format).

When you compile a DLL, you have two options:

1.) hand write your own LoadLibrary/FreeLibrary code and just distribute the 
DLL with your
exe (or other DLL)

2.) static-link your exe against the dll.a file which is generated by the 
linker and is win32 specific magic code that have stubs to the functions it 
will call from the DLL.

Either way you have to distribute the DLL with your exe.

The .dll.a (called import library) file is generated by the linker with 
appropriate options and it is reported to be buggy in the past. I'm not sure 
nowadays.

So, I see no point in striping the .dll.a file. But, of course, I might be 
wrong. Please, anybody can check this?
On Thu, Apr 25, 2013 at 4:42 AM, Gregoire Aujay 
<gau...@movea.com<mailto:gau...@movea.com>> wrote:
Hello ;

So you agree that CMake should not strip .dll.a files.

Currently that is what is done in the cmake_install.cmake files, e.g. I get 
(CMake 2.8.10.2):

IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL 
"Unspecified")
  FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/release/lib" TYPE 
STATIC_LIBRARY OPTIONAL FILES "XXXXXX/release/lib/libmyLib.dll.a")
  IF(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/release/lib/ libmyLib.dll.a" 
AND
     NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/release/lib/ 
libmyLib.dll.a")
    IF(CMAKE_INSTALL_DO_STRIP)
      EXECUTE_PROCESS(COMMAND "YYYYYY/bin/strip.exe" 
"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/release/lib/ libmyLib.dll.a")
    ENDIF(CMAKE_INSTALL_DO_STRIP)
  ENDIF()
ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL 
"Unspecified")


Unless someone tells me it is done intentionally I will file a bug.


Regards,
Gregoire

From: Daniel Franzini 
[mailto:daniel.franz...@gmail.com<mailto:daniel.franz...@gmail.com>]
Sent: mercredi 24 avril 2013 19:52
To: Gregoire Aujay
Subject: Re: [CMake] MINGW and strip .dll.a files

AFAIK, the dll.a file is a import library

It contains code that magically calls the DLL functions without having you to 
write LoadLibrary/FreeLibrary code.

Why are you stripping it anyway? The import libray should be linked as-is with 
your binary and them strip the binary.

NOTE: it does not contain the actual DLL code. It only have stubs that calls 
DLL functions.
On Wed, Apr 24, 2013 at 10:58 AM, Gregoire Aujay 
<gau...@movea.com<mailto:gau...@movea.com>> wrote:
Hello,

I am trying to package a stripped library built with MINGW.

When I activate strip during install or pack, I get link error (unresolved 
symbols) when using this library.
When I strip using "-s" option, everything is fine.

The difference is that my .dll.a is smaller when I use CMake strip feature. Gcc 
does not seem to strip the .dll.a file.

Is it a good approach to strip the .dll.a file ?

Regards,
Gregoire

--

Powered by www.kitware.com<http://www.kitware.com>

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake



--
Daniel

"Let us change our traditional attitude to the construction of programs. 
Instead of imagining that our main task is to instruct a computer what to do, 
let us concentrate rather on explaining to human beings what we want a computer 
to do." (Donald Knuth)

"Yes, technogeeks can be funny, even if only to each other." 
(http://www.boogieonline.com/revolution/science/humor/)"

"Man is driven to create; I know I really love to create things. And while I'm 
not good at painting, drawing, or music, I can write software." (Yukihiro 
Matsumoto, a.k.a. ``Matz'')



--
Daniel

"Let us change our traditional attitude to the construction of programs. 
Instead of imagining that our main task is to instruct a computer what to do, 
let us concentrate rather on explaining to human beings what we want a computer 
to do." (Donald Knuth)

"Yes, technogeeks can be funny, even if only to each other." 
(http://www.boogieonline.com/revolution/science/humor/)"

"Man is driven to create; I know I really love to create things. And while I'm 
not good at painting, drawing, or music, I can write software." (Yukihiro 
Matsumoto, a.k.a. ``Matz'')
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to