This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2


Yaakov (Cygwin Ports) wrote:
Charles Wilson wrote:
| Changes sine libtool2.2-2.2.2-1
| =================================
| o changed base package name from 'libtool2.2' to 'libtool'
| o Added patches from Yaakov Selkowitz
|   http://cygwin.com/ml/cygwin/2008-04/msg00378.html

Do you know why I'm getting this:

*** Warning: linker path does not have real file for library -lwinmm.

I think that libtool hasn't been told that LDFLAGS should include -L/usr/lib/w32api. I think this is something that should be passed on the invocation line in your makefile -- maybe AM_LDFLAGS needs to be set?


*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libwinmm but no candidates were found. (...for file magic test)

Is it the /usr/lib/w32api location that libtool is having a hard time
with, the .a extension, or something else?

No, it's not a file type or identification problem; libtool can't find libwinmm.a at all.


FWIW:

$ ./func_win32_libid.sh /usr/lib/w32api/libwinmm.a
x86 archive import

So that's ok. (func_win32_libid.sh is just func_win32_libid() from libtool-2.2.2-2, with the OBJDUMP/NM/etc variables set.

--
Chuck



#!/bin/bash

ECHO=echo
OBJDUMP=objdump
EGREP="grep -E"
SED=sed
NM=nm

func_win32_libid ()
{
  $opt_debug
  win32_libid_type="unknown"
  win32_fileres=`file -L $1 2>/dev/null`
  case $win32_fileres in
  *ar\ archive\ import\ library*) # definitely import
    win32_libid_type="x86 archive import"
    ;;
  *ar\ archive*) # could be an import, or static
    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
      win32_nmres=`eval $NM -f posix -A $1 |
        $SED -n -e '
            1,100{
                / I /{
                    s,.*,import,
                    p
                    q
                }
            }'`
      case $win32_nmres in
      import*)  win32_libid_type="x86 archive import";;
      *)        win32_libid_type="x86 archive static";;
      esac
    fi
    ;;
  *DLL*)
    win32_libid_type="x86 DLL"
    ;;
  *executable*) # but shell scripts are "executable" too...
    case $win32_fileres in
    *MS\ Windows\ PE\ Intel*)
      win32_libid_type="x86 DLL"
      ;;
    esac
    ;;
  esac
  $ECHO "$win32_libid_type"
}

for fn in "$@" ; do
  func_win32_libid "$fn"
done

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]